Go to main content
Oracle® Solaris 11.3 での監査の管理

印刷ビューの終了

更新: 2016 年 11 月
 
 

監査トレールデータの表示

デフォルトのプラグイン audit_binfile によって監査トレールが作成されます。このトレールには大量のデータが含まれる場合があります。次のセクションでは、このデータを操作する方法について説明します。

監査レコード定義の表示

監査レコード定義を表示するには、auditrecord コマンドを使用します。この定義によって、監査イベントの監査イベント番号、監査クラス、選択マスク、およびレコード書式が提供されます。

% auditrecord -options

コマンドで生成される画面出力は、使用するオプションによって異なります (次の部分的な一覧を参照)。

  • –p オプションは、プログラムの監査レコード定義を表示します。

  • –c オプションは、監査クラスの監査レコード定義を表示します。

  • –a オプションを指定すると、すべての監査イベント定義が一覧表示されます。

表示された出力をファイルに出力することもできます。

詳細は、auditrecord(1M) のマニュアルページを参照してください。

使用例 31  プログラムの監査レコード定義の表示

この例では、login プログラムによって生成されたすべての監査レコードの定義が表示されます。ログインプログラムには、rlogintelnetnewgrp、および Oracle Solaris の Secure Shell 機能が含まれています。

% auditrecord -p login
...
login: logout
program     various              See login(1)
event ID    6153                 AUE_logout
class       lo                  (0x0000000000001000)
...
newgrp
program     newgrp               See newgrp login
event ID    6212                 AUE_newgrp_login
class       lo                  (0x0000000000001000)
...
rlogin
program     /usr/sbin/login      See login(1) - rlogin
event ID    6155                 AUE_rlogin
class       lo                   (0x0000000000001000)
...
/usr/lib/ssh/sshd
program     /usr/lib/ssh/sshd    See login - ssh
event ID    6172                 AUE_ssh
class       lo                   (0x0000000000001000)
...
telnet login
program     /usr/sbin/login      See login(1) - telnet
event ID    6154                 AUE_telnet
class       lo                   (0x0000000000001000)
…
使用例 32  監査クラスの監査レコード定義の表示

この例では、使用例 15で作成された pf クラス内のすべての監査レコードの定義が表示されます。

% auditrecord -c pf
pfexec
system call pfexec               See execve(2) with pfexec enabled
event ID    116                  AUE_PFEXEC
class       pf                   (0x0100000000000000)
header
path                    pathname of the executable
path                    pathname of working directory
[privileges]            privileges if the limit or inheritable set are changed
[privileges]            privileges if the limit or inheritable set are changed
[process]               process if ruid, euid, rgid or egid is changed
exec_arguments
[exec_environment]      output if arge policy is set
subject
[use_of_privilege]
return

use_of_privilege トークンは、特権が使用されている場合は常に記録されます。privileges トークンは、制限または継承可能セットが変更された場合に記録されます。process トークンは、ID が変更された場合に記録されます。これらのトークンをレコードに含めるために、ポリシーオプションは必要ありません。

使用例 33  監査レコード定義をファイルに出力する

この例では、すべての監査レコード定義を HTML 形式のファイルに出力するために、–h オプションが追加されています。この HTML ファイルをブラウザで表示する場合は、ブラウザの検索ツールを使用して特定の監査レコード定義を検索します。

% auditrecord -ah > audit.events.html

表示する監査イベントの選択

Audit Review 権利プロファイルが割り当てられている管理者として、auditreduce を使用すると、調査対象の監査レコードをフィルタリングできます。このコマンドは、入力ファイルを結合するときに、関連性の少ないレコードを除外できます。

auditreduce -option argument [optional-file]

ここで、argument はオプションで必要な特定の引数です。

次の一覧に、レコード選択オプションとそれに対応する引数の一部を示します。

–c

argument が監査クラス (ua など) である場合に、監査クラスを選択します。

–d

特定の日付のイベントをすべて選択します。argument の日付の形式は、yyyymmdd です。その他の日付オプション (–b–a など) は、特定の日付の前と後のイベントを選択します。

–u

特定のユーザーのイベント属性をすべて選択します。このオプションには、ユーザー名を指定します。もう 1 つのユーザーオプション –e は、実効ユーザー ID のイベント属性をすべて選択します。

–g

特定のグループのイベント属性をすべて選択します。このオプションには、グループ名を指定します。

–m

特定の監査イベントのインスタンスをすべて選択します。

–o

オブジェクトタイプによって選択します。このオプションは、ファイル、グループ、ファイル所有者、FMRI、PID、およびその他のオブジェクトタイプによって選択するために使用します。

optional-file

監査ファイルの名前。

このコマンドでは、すべて大文字のファイル選択オプションも使用されます (次の例を参照)。オプションの完全な一覧については、auditreduce(1M) のマニュアルページを参照してください。

使用例 34  監査ファイルを結合して削減する

この例では、1 か月間のログインおよびログアウトのレコードのみが監査ファイルに保持されています。この例では、現在の日付が 9 月 27 日になっています。監査トレール全体が必要になった場合は、バックアップメディアから監査トレールを復元します。–O オプションを付けると、コマンドの出力が lo.summary という名前のファイルに書き込まれます。

# cd /var/audit/audit_summary
# auditreduce -O lo.summary -b 20100827 -c lo; compress *lo.summary
使用例 35  ユーザー監査レコードをサマリーファイルにコピーする

この例では、特定のユーザーの名前を含む監査トレール内のレコードがマージされます。–e オプションを指定すると実効ユーザーが検索されます。–u オプションを指定すると、ログインユーザーが検索されます。–O オプションを付けると、出力が tamiko ファイルに書き込まれます。

# cd /var/audit/audit_summary
# auditreduce -e tamiko -O tamiko

表示する情報をさらに絞り込むことができます。次の例では、次のようにフィルタリングされ、tamikolo というファイルに出力されます。

  • ユーザーのログイン時間およびログアウト時間 (–c オプションで指定)。

  • 2013 年 9 月 7 日 (–d オプションで指定)。日付の短い形式は、yyyymmdd です。

  • ユーザー名 tamiko (–u オプションで指定)。

  • 物理マシンの名前 (–M オプションで指定)。

# auditreduce -M tamiko -O tamikolo -d 20130907 -u tamiko -c lo
使用例 36  選択したレコードを単一のファイルにマージする

この例では、特定の日のログインおよびログアウトレコードが監査トレールから選択されます。これらのレコードは、ターゲットファイルにマージされます。ターゲットファイルは、監査ルートディレクトリを含むファイルシステム以外のファイルシステムに書き込まれます。

# auditreduce -c lo -d 20130827 -O /var/audit/audit_summary/logins

# ls /var/audit/audit_summary/*logins
/var/audit/audit_summary/20130827183936.20130827232326.logins

バイナリ監査ファイルの内容の表示

Audit Review 権利プロファイルが割り当てられている管理者として、praudit コマンドを使用すると、バイナリ形式の監査ファイルの内容を表示できます。

# praudit options

次の一覧に、オプションの一部を示します。これらのオプションのいずれかを –l オプションと組み合わせると、各レコードを 1 行で表示できます。

–s

監査レコードを短い形式 (1 行ごとに 1 トークン) で表示します。

–r

監査レコードを RAW 形式 (1 行ごとに 1 トークン) で表示します。

–x

監査レコードを XML 形式 (1 行ごとに 1 トークン) で表示します。このオプションは、さらに処理する場合に役立ちます。

auditreduce コマンドから praudit 出力をパイプして、auditreduce コマンドと praudit コマンドを同時に使用することもできます。

使用例 37  監査レコードを短い形式で表示する

この例では、auditreduce コマンドで抽出されたログインおよびログアウトのイベントが短い形式で表示されています。

# auditreduce -c lo | praudit -s

header,69,2,AUE_screenlock,,mach1,2010-10-14 08:02:56.348 -07:00
subject,jdoe,root,staff,jdoe,staff,856,50036632,82 0 mach1
return,success,0
sequence,1298
使用例 38  監査レコードを RAW 形式で表示する

この例では、auditreduce コマンドで抽出されたログインおよびログアウトのイベントが RAW 形式で表示されています。

# auditreduce -c lo | praudit -r

21,69,2,6222,0x0000,10.132.136.45,1287070091,698391050
36,26700,0,10,26700,10,856,50036632,82 0 10.132.136.45
39,0,0
47,1298
使用例 39  監査レコードを XML 形式に変換する

この例では、監査レコードを XML 形式に変換します。

# praudit -x 20100827183214.20100827215318.logins > 20100827.logins.xml

同様に、auditreduce コマンドでフィルタリングされた監査レコードを XML 形式で表示できます。

# auditreduce -c lo | praudit -x
<record version="2" event="screenlock - unlock" host="mach1"
iso8601="2010-10-14 08:28:11.698 -07:00">
<subject audit-uid="jdoe" uid="root" gid="staff" ruid="jdoe
rgid="staff" pid="856" sid="50036632" tid="82 0 mach1"/>
<return errval="success" retval="0"/>
<sequence seq-num="1298"/>
</record>

スクリプトを使えば、XML ファイルの内容を操作して目的の情報を抽出できます。

使用例 40  XML 形式の監査レコードをブラウザで読み取り可能にする

xsltproc ツールを使用して XML ファイルのレコードを再フォーマットすると、任意のブラウザで読み取り可能にすることができます。このツールを使用すると、スタイルシートの定義がファイルの内容に適用されます。再フォーマットされた内容を別のファイルに挿入するには、次のように入力します。

# auditreduce -c lo | praudit -x | xsltproc - > logins.html

ブラウザでは、logins.html の内容が次のような形式で表示されます。

                     Audit Trail Data

File: time: 2013-11-04 12:54:28.000 -08:00

Event: login - local
time: 2013-11-04 12:54:28.418 -08:00 vers: 2 mod: host: host 
SUBJECT audit-uid: jdoe uid: jdoe gid: staff ruid: jdoe rgid: staff
      pid: 1534 sid: 3583012893 tid: 0 0 host 
RETURN errval: success retval: 0 

Event: connect to RAD
time: 2013-11-04 12:54:52.029 -08:00 vers: 2 mod: host: host 
SUBJECT audit-uid: jdoe uid: jdoe gid: staff ruid: jdoe rgid: staff
      pid: 1835 sid: 3583012893 tid: 0 0 host 
RETURN errval: success retval: 0 

Event: role login
time: 2013-11-08 08:42:52.286 -08:00 vers: 2 mod: host: host 
SUBJECT audit-uid: jdoe uid: root gid: root ruid: root rgid: root
      pid: 4265 sid: 3583012893 tid: 0 0 host 
RETURN errval: success retval: 0 

Event: role logout
time: 2013-11-08 08:43:37.125 -08:00 vers: 2 mod: host: host 
SUBJECT audit-uid: jdoe uid: root gid: root ruid: root rgid: root
      pid: 4265 sid: 3583012893 tid: 0 0 host 
RETURN errval: success retval: 0 

Event: login - ssh
time: 2013-12-23 12:24:37.292 -08:00 vers: 2 mod: host: host 
SUBJECT audit-uid: jsmith uid: jsmith gid: staff ruid: jsmith rgid: staff
      pid: 2002 sid: 39351741 tid: 14632 202240 host.example.com 
RETURN errval: success retval: 0 

Event: role login
time: 2013-12-23 12:25:07.345 -08:00 vers: 2 mod: fe host: host 
SUBJECT audit-uid: jsmith uid: root gid: root ruid: root rgid: root
      pid: 2023 sid: 39351741 tid: 14632 202240 host.example.com 
RETURN errval: failure retval: Permission denied 

Event: su
time: 2013-12-23 17:19:24.031 -08:00 vers: 2 mod: na host: host 
RETURN errval: success retval: 0 

Event: su logout
time: 2013-12-23 17:19:24.362 -08:00 vers: 2 mod: na host: host 
RETURN errval: success retval: 0 

Event: login - ssh
time: 2013-12-23 17:27:21.306 -08:00 vers: 2 mod: host: host 
SUBJECT audit-uid: jsmith uid: jsmith gid: staff ruid: jsmith rgid: staff
      pid: 2583 sid: 3401970889 tid: 13861 5632 host.example.com 
RETURN errval: success retval: 0 

Event: role login
time: 2013-12-23 17:27:28.361 -08:00 vers: 2 mod: host: host 
SUBJECT audit-uid: jsmith uid: root gid: root ruid: root rgid: root 
      pid: 2593 sid: 3401970889 tid: 13861 5632 host.example.com 
RETURN errval: success retval: 0 

Event: role logout
time: 2013-12-23 17:30:39.029 -08:00 vers: 2 mod: host: host 
SUBJECT audit-uid: jsmith uid: root gid: root ruid: root rgid: root 
      pid: 2593 sid: 3401970889 tid: 13861 5632 host.example.com 
RETURN errval: success retval: 0 

そのほかのイベント 
使用例 41  pfedit レコードのみを表示する

フィルタを使用すると、監査トレールから特定のレコードのみを抽出して、表示できます。この例では、pfedit コマンドを使用して取得されたレコードがフィルタリングされています。サマリーファイルは 20130827183936.20130827232326.logins であるとします。pfedit コマンドを使用すると、AUE_admin_edit イベントが生成されます。したがって、pfedit レコードを抽出するには、次のコマンドを実行します。

auditreduce -m AUE_admin_edit 20130827183936.20130827232326.logins | praudit
使用例 42  監査トレール全体を印刷する

印刷コマンドへのパイプを使用すると、監査トレール全体の出力がプリンタに送られます。セキュリティー上の理由から、プリンタへのアクセスは制限されています。

# auditreduce | praudit | lp -d example.protected.printer
使用例 43  特定の監査ファイルを表示する

この例では、サマリーログインファイルを端末ウィンドウで調べます。

# cd /var/audit/audit_summary/logins

# praudit 20100827183936.20100827232326.logins | more
使用例 44  praudit 出力をスクリプトで処理する

praudit コマンドの出力は、必要に応じてテキストとして操作できます。たとえば、auditreduce コマンドでは選択できないレコードを選択することがあります。単純なシェルスクリプトを使用すると、praudit コマンドの出力を処理できます。次のサンプルスクリプトは、1 つの監査レコードを 1 行にまとめ、ユーザーが指定した文字列を検索したあと、監査ファイルを元の形式に戻します。

#!/bin/sh
#
## This script takes an argument of a user-specified string.
#  The sed command prefixes the header tokens with Control-A
#  The first tr command puts the audit tokens for one record
#  onto one line while preserving the line breaks as Control-A
#
praudit | sed -e '1,2d' -e '$s/^file.*$//' -e 's/^header/^aheader/' \\
| tr '\\012\\001' '\\002\\012' \\
| grep "$1" \\  ユーザーが指定した文字列を検索します

| tr '\\002' '\\012'  元の改行区切りを復元します

スクリプトの ^a は、^ と a という 2 つの文字ではなく、Control-A です。この接頭辞によって、header トークンが、テキストとして表示される header という文字列と区別されます。

次のようなメッセージは、praudit コマンドを使用するために必要な権限がないことを示しています。

praudit: Can't assign 20090408164827.20090408171614.sys1.1 to stdin.

プロファイルシェルで praudit コマンドを実行します。Audit Review 権利プロファイルが割り当てられている管理者になる必要があります。詳細は、Oracle Solaris 11.3 でのユーザーとプロセスのセキュリティー保護 の 割り当てられている管理権利の使用を参照してください。