名前 | 形式 | 機能説明 | オプション | 使用例 | ファイル | 属性 | Trusted Solars での変更点 | 関連項目 | 診断 | 使用上の留意点
auditreduce は、監査トレールファイルのレコードを選択またはマージします。監査ファイルは 1 つまたは複数のマシンのものです。
マージ機能では、 1 つまたは複数の入力監査トレールファイルのレコードを 1 つの出力ファイルにマージします。監査トレールファイルのレコードは作成順 (最も古いものが最初) にソートされているものとみなされ、出力ファイルではこの順序が維持されます。
特に指定がなければ、auditreduce は、ディレクトリ構造 audit_root_dir/*/files にあるすべての監査トレールファイルをマージします (監査ルートの構造については audit_control(4) のマニュアルページを参照)。-R や -S オプションの指定がないと、audit_root_dir には /etc/security/audit が使用されます。ファイル選択オプションによって、audit_root_dir/*/files に該当するファイルのサブセット、別のディレクトリのファイル、またはコマンド行に明示的に指定したファイルを使用できます。
選択機能では、レコードの内容に関連するさまざまな条件に基づいて監査レコードを選択できます (レコード内容の詳細は audit.log(4) のマニュアルページを参照)。record-selection-option の条件に合致するレコードだけが選択されます。
コマンド行に指定する場合を除き、監査トレールファイルは、次に示す監査トレールファイル名形式に従っていなければなりません。監査システムから出力されるファイルや auditreduce から出力されるファイルはすでにこの形式になっています。
start-time. end-time. suffix
start-time はファイルが開かれた時刻を示す 14 文字のタイムスタンプです。end-time はファイルが閉じられた時刻を示す 14 文字のタイムスタンプです。suffix は、この監査トレールファイルを生成したマシンの名前かその他の意味をもつ接尾辞です。たとえば、このファイルが多数のマシンのレコードを結合したものであることを示す all などです。監査システムによるファイルへの書き込みがまた行われている場合は、end-time はリテラル文字 not_terminated になります。タイムスタンプの形式は yyyymmddhhmmss (年月日時分秒) です。時刻はグリニッジ標準時です。
ファイル選択オプションでは、処理するファイルと特別処理を指定します。
入力ファイルのすべてのレコードがタイムスタンプに関係なく選択されます。このオプションは実質的に -a、-b、-d オプションを無効にします。このオプションを使用すると、-D オプションを指定して処理後に入力ファイルを削除しても、レコードを失ってしまわずにすみます。別のオプションの指定が原因でレコードが選択「されていない」ときは、-A を指定してもレコードは選択されません。
完了したファイルだけを処理します。end-time のタイムスタンプが not_terminated であるファイルは処理されません。このタイムスタンプは、監査システムがまだファイルに書き込んでいることを示しています。このオプションを使用すると、-D オプションを指定して処理後に入力ファイルを削除しても、レコードを失ってしまわずにすみます。このオプションは、コマンド行に指定されたファイルには適用されません。
入力ファイルを処理後に削除します。ファイルは、処理全体が正常に終ったときだけ削除されます。ファイルの読み取りでエラーが検出された場合には、このファイルは削除されません。-D を指定すると、-A、-C、-O オプションが暗黙的に使用されます。suffix は -O オプションに渡されます。これによって、すべてのレコードが書き込まれ、完了したファイルだけが処理され、削除前にレコードが書き込まれるため、監査レコードを失ってしまうことがありません。コマンド行に -D と -O を指定する場合は、指定順序に意味があります。後で指定されたオプションの suffix が有効になります。
ファイル名接尾辞が machine であるファイルのレコードを選択します。-M を指定しないと、すべてのファイルが接尾辞に関係なく処理されます。-M を使えば、多数のマシンからのレコードを結合し、all などの共通接尾辞をもつファイルのレコードを選択できます。
出力ストリームを現在の audit_root_dir に suffix という名前のファイルとして書き込みます。suffix には完全指定のパス名を指定することもできます。この場合には、最後の構成要素が接尾辞として使用されます。このパス名の接尾辞と残りの部分の間には、タイムスタンプが入れられます。-O オプションを指定しないと、出力は標準出力に送られます。auditreduce がファイル名にタイムスタンプを挿入する場合は、マージ結果の中の最初と最後のレコードの時間を start-time と end-time として使用します。
抑制モード。入力ファイルのエラーを通知しません。
監査ルートディレクトリ audit_root_dir の代替パス名として pathname を指定します。デフォルトで使用される /etc/security/audit/*/ にあるファイルの代わりに pathname/*/ にあるファイルが使用されます。
特定の場所 (サーバーディレクトリ) から監査トレールファイルを読み取ります。server は通常、監査ルートのサブディレクトリの名前と解釈されるため、auditreduce は、audit_root_dir/server/ にあるファイルを監査トレールファイルとして使用します。しかし、server に「/」文字が含まれている場合には、 server は特定のディレクトリ名を表すため、これが監査ルートに含まれているとは限りません。この場合は、server/ にあるファイルが使用されます。このオプションはアーカイブされたファイルを処理するときに便利です。このオプションを使えば、これらのファイルを /etc/security/audit のディレクトリ構造に物理的に置く必要がないためです。
冗長モード。ファイルを開くたびにその名前を表示します。さらに、出力ストリームに書き込んだレコードの合計数を表示します。
レコード選択オプションでは、auditreduce を使って生成する出力ファイルにどのレコードを書き込むかを指定します。
同じタイプの引数を複数指定することはできません。
date-time 以後に発生したレコードを選択します。date-time 引数については、この後の「オプション引数」に説明があります。date-time はローカル時間です。-a オプションと -b オプションを使って範囲を指定できます。
date-time より前に発生したレコードを選択します。
監査クラスを使ってレコードを選択します。audit-classes で指定した監査クラスに関連付けられているイベントをもつレコードが選択されます。監査クラスの名前は audit_class(4) に定義されています。audit-classes には、audit_control(4) のマニュアルページに説明されているような audit flags をコンマで区切って指定します。audit flags を使用すると、成功および失敗の条件に基づいてレコードを選択できます。
特定の日に発生したレコードを選択します。特定の日とは 00:00:00 から始まり 23:59:59 で終る 24 時間を指します。指定した日はローカル時間として扱われます。引数の時刻部分は指定しても無視されます。このオプションによって、タイムスタンプが指定した日に該当するレコードが選択されます。-d を -a または -b とともに使用することはできません。
effective-user をもつレコードを選択します。
effective-group をもつレコードを選択します。
real-group. をもつレコードを選択します。
subject-ID をもつレコードを選択します。subject-ID はプロセス ID です。
event をもつレコードを選択します。event はリテラル文字列かイベント番号です。
オブジェクトの型を使ってレコードを選択します。このオプションによって、object_type で表される情報が含まれ、objectID_value で指定された値に等しいオブジェクト ID をもつレコードが選択されます。指定できるオブジェクトの型と値は次のとおりです。
pathname をもつファイルシステムオブジェクトが含まれているレコードを選択します。pathname には正規表現をコンマで区切って指定します。正規表現の前にチルダ (‾) が付いていると、その表現に合致するファイルは出力から除外されます。たとえば、オプション file="‾/usr/openwin,/usr,/etc" では、/usr/openwin に含まれるファイルを除き、/usr か /etc に含まれるすべてのファイルが選択されます。正規表現の順序には意味があります。 auditreduce は正規表現を左から右に処理し、ファイルがすでに選択されているか除外されていることが判明した時点で処理を停止します。したがって、オプション file="/usr,/etc,‾/usr/openwin" では、/usr か /usr に含まれるすべてのファイルが選択されます。つまり、正規表現 /usr が最初に使用されるため、/usr/openwin のファイルは除外されません。pathname を囲む引用符は、シェルがチルダを展開することがないように正しく指定してください。
ID をもつメッセージ待ち行列オブジェクトが含まれているレコードを選択します。ID にはメッセージ待ち行列 ID を指定します。
ID をもつプロセスブジェクトが含まれているレコードを選択します。ID にはプロセス ID を指定します。注: プロセスがシグナルの受信側のときには、プロセスはオブジェクトです。
ID をもつセマフォオブジェクトが含まれているレコードを選択します。ID にはセマフォ ID を指定します。
ID をもつ共有メモリーオブジェクトが含まれているレコードを選択します。ID には共有メモリー ID を指定します。
port_number か machine をもつソケットオブジェクトが含まれているレコードを選択します。machine には hosts(4) に定義されているマシン名を指定します。
real-user をもつレコードを選択します。
sensitivity-label をもつレコードを選択します。sensitivity-label には範囲を指定できます (「オプション引数」の sensitivity-label を参照)。
audit-user をもつレコードを選択します。コマンド行に 1 つまたは複数の filename 引数を指定すると、それらのファイルだけが処理されます。このような方法で指定するファイルは、監査トレールファイル名の形式に合っていなくてもかまいません。ただし、この場合には -M、-S、-R は使用できません。filename に「-」を指定すると、入力には標準入力が使用されます。
audit.log(4) に定義されているの監査トレールファイルです。コマンド行に指定する場合を除き、監査トレールファイルは監査トレールファイル形式に合っていなければなりません。auditreduce から出力される監査トレールファイルもこの形式に従っています。形式は次のとおりです。
start-time . end-time . suffix
start-time はファイルが開かれた時間を示す 14 文字のタイムスタンプです。end-time はファイルが閉じられた時間を示す 14 文字のタイムスタンプです。end-time がリテラル文字 not_terminated の場合は、ファイルが監査デーモンによってまだ書き込まれているか、ファイルが適切に閉じられていないこと (システムクラッシュや突然の停止) を示します。suffix は、この監査トレールファイルを生成したマシンの名前かその他の意味をもつ接尾辞です。たとえば、このファイルが多数のマシンのレコードを結合したものであることを示す all などです。
-a、-b、-d の date-time 引数には 2 つの形式があります。絶対指定の date-time は次の形式をとります。
yyyymmdd [ hh [ mm [ ss ]]]
yyyy は年 (最も古い年は 1970)、mm は月 (01〜12)、dd は日 (01〜31)、hh は時間 (00〜23)、mm は分 (00〜59)、ss は秒 (00〜59) です。hh、mm、ss のデフォルトは 00 です。
もう 1 つの形式 +n d|h|m| s ではオフセットを指定します。n は単位の数です。d、h、m、s はそれぞれ単位が日時分秒のどれであるかを表します。オフセットは、起動時刻からの相対的な時間です。したがって、この形式を使用できるのは -b オプションだけです。
audit_event(4) に定義されているイベントのリテラル文字列または番号です。audit_event ファイルにない event は無効とみなされます。
group(4) に定義されているグループのリテラル文字列またはグループ ID 番号です。group ファイルにない group は無効とみなされます。group は負でもかまいません。
パス名を表す正規表現
有効な機密ラベルそのものを示すリテラル文字列、または有効な機密ラベルの範囲を表す 2 つのリテラル文字列です。範囲は [x]:[y] 形式で指定し、x と y には有効な機密ラベルを指定します。x から y までの機密ラベルをもつレコードだけが選択されます。x か y を省略すると、それぞれ ADMIN_LOW
か ADMIN_HIGH
が使用されます。
passwd(4) に定義されているユーザー名のリテラル文字列またはユーザー ID 番合です。passwd ファイルにないユーザー名は無効とみなされます。user は負でもかまいません。
praudit(1M) を指定すると、人が読み取れる形式で監査レコードが表示されます。
次の例では、監査トレール全体を人が読み取れる形式で表示します。
% auditreduce | praudit |
すべての監査トレールファイルを 1 つの大きなファイルに結合する場合は、レコードが重複することを避けるために、元のファイルを削除した方がよい場合があります。
% auditreduce -V -d /etc/security/audit/combined/all |
次の例では、ユーザー milner が 1998 年 4 月 13 日に何を行なったかを表示します。出力は、人が読み取れる形式で標準出力に表示されます。
% auditreduce -d 19880413 -u milner | praudit |
milner がこの日に忙しく働いていたら、上の例から大量のデータが生成されます。したがって、ログインとログアウトの時刻だけを見る方が簡単かもしれません。-c オプションを指定すれば、指定したクラスのレコードだけを選択できます。
% auditreduce -d 19880413 -u milner -c lo | praudit |
1998 年 4 月 13、14、15 日にユーザー milner がログインした時刻とログアウトした時刻を表示するには、次のように指定します。結果は現在の作業ディレクトリのファイルとして保存されます。出力ファイルの名前には、接尾辞として milnerlo が、接頭辞として適切なタイムスタンプが付けられます。-c オプションには、長い形式の名前を使用しています。
% auditreduce -a 19880413 -b +3d -u milner -c login_logout -O milnerlo |
1998 年 4 月 13、14、15 日にユーザー milner がファイルシステムをどのように使用したかを表示するには、chdir レコードタイプを調べます。上の例と同じ時間範囲を指定するために、この範囲の次の日として -b で時間を指定します。これは、19880416 がデフォルトでその日の真夜中を表すためです。これによって、それより前のレコードは範囲の終りの日である 0415 に含まれます。
% auditreduce -a 19880413 -b 19880416 -u milner -m AUE_CHDIR | praudit |
次の例では、監査レコードを要約形式で出力します (ログインとログアウトレコードのみ)。レコードは通常の監査ルートとは異なるディレクトリの要約ファイルに書き込まれるため、選択されたレコードが監査ルートディレクトリに重複して存在することはありません。
% auditreduce -d 19880330 -c lo -o /etc/security/audit_summary/logins |
システム管理者がユーザー ID 9944 の活動に気付いたが、システム管理者はこのユーザーを認知していないとします。次の例では、このユーザーが生成したレコードがないか監査トレール全体を検索します。auditreduce は ID 9944 が現在有効かどうかをシステムに照会し、有効でなければ、警告メッセージを出します。
% auditreduce -o /etc/security/audit_suspect/user9944 -u 9944 |
次の属性の説明については、attributes(5) のマニュアルページを参照してください。
属性タイプ | 属性値 |
---|---|
使用条件 | SUNWcsu |
このマニュアルページに記載されている機能を使用するには、監査機能が有効になっていなければなりません。Trusted Solaris 環境では、監査機能はデフォルトで有効になっています。
Trusted Solaris 環境では、このコマンドに -s sensitivity-label レコード選択オプションが追加されています。
praudit(1M), audit.log(4), audit_class(4), audit_control(4)
Trusted Solaris の監査管理
コマンド行にエラーがあると、auditreduce はエラーメッセージを出力し、終了します。実行中に致命的なエラーがあると、auditreduce はそれを示すメッセージを出力し、終了します。この場合には、出力ファイルが不完全な状態 (トレーラがなかったり、部分的に書き込まれたレコードなど) になっていることがあります。実際に成功した場合は 0 が、そうでない場合は 1 がそれぞれ返されます。
auditreduce は多数の入力ファイルを処理することがあるため、マシン全体で開かれているファイルの数が、マシンの制限を超えることがあります。この場合には、auditreduce はこれを示すメッセージを出力し、ファイルの数を知らせ、終了します。
診断メッセージにレコードのタイムスタンプが出力される場合には、ローカル時間が使用されます。しかし、ファイル名が表示される場合には、タイムスタンプとしてグリニッジ標準時が使用されます。
このコマンドを使用するには、レコード選択オプションの結合、分離、拒否、グループ化が許容されていなければなりません。
名前 | 形式 | 機能説明 | オプション | 使用例 | ファイル | 属性 | Trusted Solars での変更点 | 関連項目 | 診断 | 使用上の留意点