Go to main content

マニュアルページ セクション 8: システム管理コマンド

印刷ビューの終了

更新: 2022年7月27日
 
 

auditreduce(8)

名前

auditreduce - 監査トレールファイル内の監査レコードのマージと選択

形式

auditreduce [options] [
audit-trail-file]...

説明

auditreduce を使用して、監査トレールファイル内のレコードを選択したりマージしたりできます。監査ファイルは、1 つのマシンからでも複数のマシンからでもかまいません。

マージ機能では、1 つ以上の入力監査トレールファイル内の監査レコードが一緒に単一の出力ファイルにマージされます。監査トレールファイル内のレコードは時系列順 (古いものが最初) にソートされているものと仮定され、出力ファイル内でこの順序が auditreduce によって維持されます。

auditreduce は特に指示しないかぎり、ディレクトリ構造 audit_root_dir/* (監査ルートの構造の詳細については audit.log(5) を参照) 内のすべての監査トレールファイルから成る監査トレール全体をマージします。Unless specified with the -R or -S option, audit_root_dir defaults to /var/audit.ファイル選択オプションを使用することで、これらのファイルのサブセット、別のディレクトリ内のファイル、またはコマンド行で明示的に指定されたファイルを選択できます。

選択機能によって、監査レコードの内容 (レコード内容の詳細については audit.log(5) を参照) に関連するさまざまな条件に基づいてレコードを選択できます。レコードが選択されるには、レコード選択オプションの条件をすべて満たす必要があります。PRIV_FILE_DAC_READ 特権を持つユーザーだけが、auditreduce ユーティリティーを使用できます。この特権は、Audit Review 権利プロファイルに含まれています。

監査トレールファイル名の形式

コマンド行で指定されない監査トレールファイルは、監査トレールファイル名形式に準拠している必要があります。監査システムによって生成されたファイルはすでにこの形式になっています。auditreduce によって生成される出力ファイル名はこの形式です。It is:

start-time. end-time
. suffix

ここで、start-time はファイルが開かれた時間を表す 14 文字のタイムスタンプ、end-time はファイルが閉じられた時間を表す 14 文字のタイムスタンプ、suffix はその監査トレールファイルを生成したマシンの名前、またはその他意味のある接尾辞 (たとえば、ファイルに多数のマシンからのレコードが結合されたグループが含まれる場合は all など) です。end-time は、ファイルがまだ監査システムによって書き込まれていることを示すリテラル文字列 not_terminated の場合があります。タイムスタンプの形式は yyyymmddhhmmss (年、月、日、時、分、秒) です。タイムスタンプは UTC (Coordinated Universal Time) です。

オプション

ファイル選択オプション

ファイル選択オプションは、どのファイルを処理するかや特別な処理の種類を示します。

–A

入力ファイル内のすべてのレコードが、タイムスタンプにかかわらず選択されます。このオプションは実質的に、–a–b、および –d オプションを無効にします。これは、–D オプションを使って入力ファイルを処理後に削除する場合に、レコードが失われるのを防ぐのに役立ちます。ただし、レコードが別のオプションのために選択されなかった場合、–A はそれをオーバーライドしません。

–C

完全なファイルのみを処理します。ファイル名 end-time タイムスタンプが not_terminated であるファイルは処理されません (そのようなファイルは現在監査システムによって書き込まれている)。これは、–D を使って入力ファイルを処理後に削除する場合に、レコードが失われるのを防ぐのに役立ちます。コマンド行で指定されたファイルには適用されません。

–D suffix

入力ファイルを読み取ったあと、実行全体が成功した場合に削除します。ファイルの読み取り中に auditreduce によってエラーが検出された場合、そのファイルは削除されません。–D を指定すると、–A–C、および –O も指定されたものとみなされます。suffix–O オプションに渡されます。このため、すべてのレコードが書き込まれること、完全なファイルのみが処理されること、およびレコードは削除される前にファイルに書き込まれることが保証され、監査レコードが失われるのを防ぐのに役立ちます。コマンド行に –D–O の両方を指定する場合は、指定順序が重要になります。あとのほうで指定されたものに関連付けられた suffix が有効になります。

–M machine

machine をファイル名接尾辞として持つファイルからレコードを選択できます。–M を指定しない場合、すべてのファイルが接尾辞にかかわらず処理されます。–M を使用することで、多数のマシンからの結合されたレコードを含み、共通接尾辞 (all など) を持つファイルから、レコードを選択することもできます。

–N

新しいモードでオブジェクトを選択します。このフラグは、下位互換性を維持するため、デフォルトでオフになっています。既存の古いモード–e–f–g–r、または –u フラグを指定した場合、それらの ID で実行されたアクションが選択されるだけでなく、それらの ID が所有するオブジェクトも選択されます。新しいモードでの実行時はアクションのみが選択されます。オブジェクトを選択するには、–o オプションを使用する必要があります。

–O suffix

現在の audit_root_dir 内で、指定された接尾辞を持つファイルに出力ストリームを転送します。suffix には完全なパス名を含めることもできますが、その場合、末尾のコンポーネントが接尾辞と解釈され、その前にタイムスタンプが置かれ、その前にパス名の残りが置かれます。-O オプションを指定しなかった場合、出力は標準出力に送られます。auditreduce によってファイル名内にタイムスタンプが置かれる場合、マージ内の最初と最後のレコードの時間が start-timeend-time として使用されます。

–Q

非出力。入力ファイルのエラーに関する通知を抑制します。

–R pathname

代替監査ルートディレクトリ audit_root_dir のパス名として pathname を指定します。したがって、デフォルトで /var/audit が使用される代わりに、pathname/* が検査されます。


注 - いかなる非大域ゾーンのルートファイルシステムも –R で参照しないでください。この操作によって、大域ゾーンのファイルシステムを損傷したり、大域ゾーンのセキュリティを損ねたり、非大域ゾーンのファイルシステムを損傷する可能性があります。zones(7) を参照してください。
–S specific_directory

このオプションを使用すると、auditreduce は監査トレールファイルを特定の場所 (specific_directory) から読み取ります。specific_directory は通常は監査ルートのサブディレクトリの名前として解釈されるので、auditreduceaudit_root_dir/specific_directory 内で監査トレールファイルを検索します。But if specific_directory contains any forward slash characters (/), it is the name of a directory not necessarily contained in the audit root.この場合、specific_directory が調査されます。このオプションを使用することで、アーカイブファイルを /var/audit のようなディレクトリ構造内に物理的に置かなくても、それらのファイルを容易に操作できます。

–V

Verbose.各ファイルの名前を開くときに表示し、出力ストリームに書き込まれた合計レコード数を表示します。

Record Selection Options

次に一覧表示したレコード選択オプションは、auditreduce によって生成される出力ファイルにどのレコードを書き込むかを示すために使用します。

同じタイプの引数を複数指定することはできません。

–a date-time

date-time 以降に発生したレコードを選択します。date-time 引数については、後述の「オプション引数」を参照してください。date-time はローカル時間です。–a オプションと –b オプションを一緒に使用すれば範囲を指定できます。

–b date-time

date-time より前に発生したレコードを選択します。

–c audit-classes

監査クラスでレコードを選択します。audit-classes に指定された監査クラスにマップされたイベントを含むレコードが、選択されます。監査クラス名は audit_class(5) で定義されます。audit-classes は、audit_flags(7) で説明されている audit flags を含むコンマ区切りリストでもかまいません。audit flags を使用して、成功条件と失敗条件に基づいてレコードを選択できます。

–d date-time

特定の日 (指定された日の 00:00:00 から始まって 23:59:59 で終わる 24 時間の期間) に発生したレコードを選択します。指定する日はローカル時間です。引数の時間部分は、指定されていても無視されます。その日のタイムスタンプを持つレコードが選択されます。If any hours, minutes, or seconds are given in time, they are ignored. –d can not be used with –a or –b.

–e effective-user

指定された effective-user を含むレコードを選択します。

–f effective-group

指定された effective-group を含むレコードを選択します。

–g real-group

指定された real-group を含むレコードを選択します。

–j subject-ID

指定された subject-ID (subject-ID はプロセス ID) を含むレコードを選択します。

–L clearance

Select records with the specified process clearance (or clearance range), as explained under "Option Arguments" below.このオプションは、Trusted Extensions が有効になっている場合には利用できません。

–l label

指定された機密ラベル (またはラベル範囲) (後述の「オプション引数」を参照) を含むレコードを選択します。

–m audit-event[,audit-event,...]

示されたイベントのいずれかに一致するレコードを選択します。audit event は、リテラル文字列または event 番号です。監査イベントは audit_event で定義されます。複数の events はコンマで区切られます。詳細は、audit_event(5) のマニュアルページを参照してください。

When -m is specified with either -c audit-class and/or -t tagname audit records which meet any of these criteria are selected.

–o object_type=objectID_value

オブジェクトタイプによってレコードを選択します。一致が起こるのは、指定された object_type を記述する情報がレコードに含まれていて、オブジェクト ID が objectID_value で指定された値に等しい場合です。使用可能なオブジェクトタイプと値は次のとおりです。

annotation=text

テキストを含む annotation を含むレコードを選択します。テキストは正規表現であることがあります。たとえば、annotation='.*' は任意の注釈を含むすべての監査レコードを選択します。詳細は、regex(7) のマニュアルページを参照してください。

auth=authorization

使用済みの承認に関する情報を含むレコードを選択します。ワイルドカード承認は、承認名の末尾にピリオドまたはバックスラッシュを持ち、特定の使用済みの承認オブジェクトがあるレコード (ワイルドカードを含む) が選択されます。

cipher=name

暗号化の名前を含むレコードを選択します。次のコマンドは、監査レコードに表示できる暗号化の名前を出力するために使用できます。

# svccfg -s cryptosvc listprop -G policy
file=pathname

指定された pathname (pathname は正規表現のコンマ区切りリスト) を持つパストークンを含むレコードを選択します。正規表現の前にチルド (~) が付いている場合、正規表現に一致するファイルが出力から除外されます。たとえば、オプション file=~/usr/X11,/usr,/etc の場合、/usr または /etc に含まれるすべてのファイルから /usr/X11 内のファイルを除いたものが選択されます。auditreduce は正規表現を左から右に処理し、ファイルが選択されているまたは除外されているとわかった時点で停止するため、正規表現の順番が重要です。したがって、オプション file=/usr,/etc,~/usr/X11 の場合、/usr 内のすべてのファイルと /etc 内のすべてのファイルが選択されます。/usr/X11 内のファイルは、正規表現 /usr が先に一致するため、除外されません。シェルがチルドを展開しないように、pathname を引用符で囲むことに注意を払うべきです。

filegroup=group

所有するグループが group であるファイルシステムオブジェクトを含むレコードを選択します。

fileowner=user

所有するユーザーが user であるファイルシステムオブジェクトを含むレコードを選択します。

fmri=service_instance

指定された service instance の障害管理リソース識別子 (FMRI) オブジェクトを含むレコードを選択します。smf(7) を参照してください。

group=group name

指定された名前のグループオブジェクトを含むレコードを選択します。グループオブジェクトは一般に、グループに対する管理アクションで指定されます。

msgqid=ID

指定された ID (ID はメッセージキュー ID) を持つメッセージキューオブジェクトを含むレコードを選択します。

msgqgroup=group

所有するまたは作成するグループが group であるメッセージキューオブジェクトを含むレコードを選択します。

msgqowner=user

所有するまたは作成するユーザーが user であるメッセージキューオブジェクトを含むレコードを選択します。

path=pathname

指定された pathname (pathname は正規表現のコンマ区切りリスト) のパストークンを含むレコードを選択します。これは "file=pathname" と同等です。正規表現の意味については、前述の "file=pathname" を参照してください。

pid=ID

指定された ID (ID はプロセス ID) を持つプロセスオブジェクトを含むレコードを選択します。プロセスは、シグナルのレシーバであるときはオブジェクトです。

procgroup=group

実グループまたは実効グループが group であるプロセスオブジェクトを含むレコードを選択します。

procowner=user

実ユーザーまたは実効ユーザーが user であるプロセスオブジェクトを含むレコードを選択します。

semid=ID

指定された ID (ID はセマフォー ID) を持つセマフォーオブジェクトを含むレコードを選択します。

semgroup=group

所有するまたは作成するグループが group であるセマフォーオブジェクトを含むレコードを選択します。

semowner=user

所有するまたは作成するユーザーが user であるセマフォーオブジェクトを含むレコードを選択します。

shmid=ID

指定された ID (ID は共有メモリー ID) を持つ共有メモリーオブジェクトを含むレコードを選択します。

shmgroup=group

所有するまたは作成するグループが group である共有メモリーオブジェクトを含むレコードを選択します。

shmowner=user

所有するまたは作成するユーザーが user である共有メモリーオブジェクトを含むレコードを選択します。

sock=port_number|machine

指定された port_number または指定された machine (machinehosts(5) で定義されたマシン名) のソケットオブジェクトを含むレコードを選択します。

user=user

指定されたユーザーのユーザーオブジェクトを含むレコードを選択します。ユーザーオブジェクトは一般に、ユーザーに対する管理アクションで指定されます。

–r real-user

指定された real-user を含むレコードを選択します。

–s session-id

指定された session-id を含む監査レコードを選択します。

–t [tags-file:]tag[,tag ...]

1 つまたは複数の指定されたタグの定義に一致する監査レコードを選択します。タグは provider または tag-name として指定できます。プロバイダが指定されている場合、そのプロバイダからの対応するタグ定義だけが使用されます。

別の tags-file を指定することもできます。ファイルが指定されていない場合、システムタグの定義が使用されます。タグ名とタグファイル名に「:」を含めることはできません。

デフォルトのタグ名の情報を含めるための詳細は、audit_tags(5) を参照してください。

–u audit-user

指定された audit-user を含むレコードを選択します。

–z zone-name

指定されたゾーン名からのレコードを選択します。ゾーン名選択では大文字と小文字が区別されます。

コマンド行に 1 つ以上の filename 引数がある場合、指定されたファイルだけが処理されます。この方法で指定するファイルは、監査トレールファイル名形式に準拠する必要はありません。ただし、指定されたファイルの処理時に –M–S、および –R を使用してはいけません。If the filename is ‘-’ then the input is taken from the standard input.

Option Arguments

audit-trail-file

audit.log(5) で定義された監査トレールファイル。コマンド行で指定されない監査トレールファイルは、監査トレールファイル名形式に準拠している必要があります。auditreduce の出力として生成される監査トレールファイルもこの形式です。The format is:

start-time . end-time . suffix

start-time はファイルが開かれた時間を示す 14 文字のタイムスタンプ、end-time はファイルが閉じられた時間を示す 14 文字のタイムスタンプです。end-time は、ファイルが監査デーモンによってまだ書き込まれているか、ファイルが適切に閉じられなかった (システムクラッシュまたは突然の停止が発生した) ことを示すリテラル文字列 not_terminated でもかまいません。suffix は、監査トレールファイルを生成したマシンの名前 (またはその他の意味のある接尾辞。たとえば、多数のマシンからのレコードが結合されたグループが監査トレールファイルに含まれている場合、all が適切な接尾辞) です。

date-time

–a–b、および –ddate-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) です。hhmm、および ss のデフォルトは 00 です。

オフセットは +n d|h|m|s として指定できます (n は単位の数、タグ dhms はそれぞれ日、時、分、秒を表します)。オフセットは開始時間からの相対値です。したがって、この形式は –b オプションでのみ使用できます。

event

audit_event(5) に含まれるリテラル文字列またはイベント番号。audit_event ファイル内で見つからない event は無効とみなされます。

group

group(5) に含まれるリテラル文字列またはグループ ID 番号。group ファイル内で見つからない group は無効とみなされます。group は負でもかまいません。

label または clearance

1 つの MAC ラベルまたは 2 つの有効な MAC ラベルの範囲のリテラル文字列表現。範囲を指定するには、x;y (xy は有効な MAC ラベル) を使用します。xy に完全に含まれるレコードのみが選択されます。x または y が省略された場合は、それぞれ ADMIN_LOW または ADMIN_HIGH がデフォルトで使用されます。範囲を指定する際には引用符を使用する必要があります。

Trusted Extensions が有効になっていない場合は、ADMIN_LOW ラベルはファイル属性として記録されません。したがって、どのファイルアクセスイベントにも一致しません。

pathname

パス名を記述する正規表現。

user

passwd(5) に含まれるリテラルユーザー名または順序数ユーザー ID。passwd ファイル内で見つからないユーザー名は無効とみなされます。user は負でもかまいません。

使用例 1 auditreduce を使用する

praudit(8) は、監査レコードを人間が読める形式で表示するために利用できます。

これは、監査トレール全体を人間が読める形式で表示します。

% auditreduce | praudit

すべての監査トレールファイルを 1 つの大きなファイルに結合する場合、レコードが 2 回現れないように元のファイルを削除するのが望ましい場合があります。

% auditreduce -V -D /var/audit/combined/all

これは、1988 年 4 月 13 日にユーザー milner が行なったことを表示します。出力は、人間が読める形式で標準出力に表示されます。

% auditreduce -d 19880413 -u milner | praudit

前の例では、milner が忙しかった場合には、大きなサイズのデータが生成される可能性があります。おそらく、ログインとログアウトの回数だけを調べたほうが見やすくなります。–c オプションは、指定されたクラスからレコードを選択します。

% auditreduce -d 19880413 -u milner -c lo | praudit

4 月 13 日、14 日、および 15 日の milner のログイン/ログアウトアクティビティーを表示するには、次を使用します。結果は、現在の作業ディレクトリ内のファイルに保存されます。出力ファイルの名前の suffixmilnerlo、接頭辞は対応するタイムスタンプです。また、–c オプションで長形式の名前が使用されています。

% auditreduce -a 19880413 -b +3d -u milner -c login_logout -O milnerlo

4 月 13 日、14 日、および 15 日の milner のファイルシステムに関する動きをたどる場合は、chdir レコードタイプを表示できます。前の例と同じ時間範囲を得るには、その範囲のあとの日を –b 時間として指定する必要があります。これは、19880416 はデフォルトでその日の真夜中、それより前のレコードは範囲の最後の日 0415 に当たるからです。

% auditreduce -a 19880413 -b 19880416 -u milner -m AUE_CHDIR | praudit

次の例では、監査レコードがサマリー形式 (ログイン/ログアウトレコードのみ) で収集されます。レコードは、選択されたレコードが監査ルート内で 2 回存在しないようにするために、通常の監査ルートではなくディレクトリ内のサマリーファイルに書き込まれています。

% auditreduce -d 19880330 -c lo -O /var/audit/audit_summary/logins

ユーザー ID 9944 のアクティビティーが確認されたけれども、そのユーザーがシステム管理者に知られていない場合、次の例のコマンドを使って監査トレールの全体を検索し、そのユーザーによって生成されたレコードを見つけます。auditreduce は、ID 9944 の現在の有効性をシステムに問い合わせ、現在アクティブでない場合には警告メッセージを表示します。

% auditreduce -O /var/audit/audit_suspect/user9944 -u 9944

大域ゾーンのみの監査ログを取得するには:

% auditreduce -z global

file」および「user」タグだけに一致するアクティビティーを確認するには、次のように入力します。

% auditreduce -t file,user | praudit

Solaris の「net」タグだけに一致するアクティビティーを確認するには、次のように入力します。

% auditreduce -t solaris/net | praudit

ファイル

/var/audit/*

監査トレールを格納する際のデフォルトの場所

属性

属性についての詳細は、マニュアルページの attributes(7) を参照してください。

属性タイプ
属性値
使用条件
system/core-os
インタフェースの安定性
下記を参照

コマンドの呼び出しは「確実」です。バイナリファイル形式は「確実」です。バイナリファイルの内容は「不確実」です。

関連項目

praudit(8), audit.log(5), audit_class(5), audit_tags(5), group(5), hosts(5), passwd(5), attributes(7), audit_flags(7), privileges(7), smf(7)

Managing Auditing in Oracle Solaris 11.4

診断

auditreduce は、コマンド行エラーが発生した場合にエラーメッセージを表示してから終了します。auditreduce は、実行中に致命的エラーが発生した場合、それを説明するメッセージを表示してから終了します。この場合、出力ファイルが不整合な状態になっている (トレーラのない、または不完全に書き込まれたレコード) 可能性があるため、auditreduce は終了前に警告メッセージを表示します。呼び出しが成功すると 0 が返され、呼び出しが失敗すると 1 が返されます。

auditreduce は多数の入力ファイルを処理する可能性があるため、開いたファイルに関するマシン全体の制限を超過する可能性があります。これが起こった場合、auditreduce はその効果へのメッセージを表示し、どのくらいのファイルがあるかに関する情報を提供したあと終了します。

auditreduce の診断メッセージでレコードのタイムスタンプが表示される場合、その時間はローカル時間です。一方、ファイル名が表示される場合、そのタイムスタンプは UTC です。

バグ

レコード選択オプションの論理積、論理和、否定、およびグループ化を許可することをお勧めします。

–z オプションは、監査ポリシー zonename が設定されている場合にのみ使用するようにしてください。zonename のトークンがない場合、レコードは選択されません。

History

The auditreduce command was added in Solaris 2.3.