Oracle® Solaris 11.2 での監査の管理

印刷ビューの終了

更新: 2014 年 7 月
 
 

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

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

# praudit options

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

–s

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

–r

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

–x

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

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

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

この例では、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
使用例 5-8  監査レコードを 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
使用例 5-9  監査レコードを 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 ファイルの内容を操作して目的の情報を抽出できます。

使用例 5-10  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 

Other events 
使用例 5-11  pfedit レコードのみを表示する

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

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

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

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

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

# cd /var/audit/audit_summary/logins

# praudit 20100827183936.20100827232326.logins | more
使用例 5-14  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" \\ 
Finds the user-specified string

| tr '\\002' '\\012' 
Restores the original newline breaks

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

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

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

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