7.6. Audit ログファイルについて
				デフォルトでは、Audit システムはログエントリーを 
/var/log/audit/audit.log ファイルに保存します。ログローテーションが有効な場合は、ローテーションされた audit.log ファイルは同じディレクトリーに保存されます。
			
				以下の Audit ルールは、
/etc/ssh/sshd_config ファイルの読み取りまたは変更の試行をすべてログに記録します。
			-w /etc/ssh/sshd_config -p warx -k sshd_config
-w /etc/ssh/sshd_config -p warx -k sshd_config
auditd デーモンが実行している場合は、たとえば以下のコマンドを使用して、Audit ログファイルに新しいイベントを作成します。
			cat /etc/ssh/sshd_config
~]$ cat /etc/ssh/sshd_config
				このイベントは、
audit.log ファイルでは以下のようになります。
			type=SYSCALL msg=audit(1364481363.243:24287): arch=c000003e syscall=2 success=no exit=-13 a0=7fffd19c5592 a1=0 a2=7fffd19c4b50 a3=a items=1 ppid=2686 pid=3538 auid=1000 uid=1000 gid=1000 euid=1000 suid=1000 fsuid=1000 egid=1000 sgid=1000 fsgid=1000 tty=pts0 ses=1 comm="cat" exe="/bin/cat" subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key="sshd_config" type=CWD msg=audit(1364481363.243:24287): cwd="/home/shadowman" type=PATH msg=audit(1364481363.243:24287): item=0 name="/etc/ssh/sshd_config" inode=409248 dev=fd:00 mode=0100600 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:etc_t:s0 objtype=NORMAL cap_fp=none cap_fi=none cap_fe=0 cap_fver=0 type=PROCTITLE msg=audit(1364481363.243:24287) : proctitle=636174002F6574632F7373682F737368645F636F6E666967
type=SYSCALL msg=audit(1364481363.243:24287): arch=c000003e syscall=2 success=no exit=-13 a0=7fffd19c5592 a1=0 a2=7fffd19c4b50 a3=a items=1 ppid=2686 pid=3538 auid=1000 uid=1000 gid=1000 euid=1000 suid=1000 fsuid=1000 egid=1000 sgid=1000 fsgid=1000 tty=pts0 ses=1 comm="cat" exe="/bin/cat" subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key="sshd_config"
type=CWD msg=audit(1364481363.243:24287):  cwd="/home/shadowman"
type=PATH msg=audit(1364481363.243:24287): item=0 name="/etc/ssh/sshd_config" inode=409248 dev=fd:00 mode=0100600 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:etc_t:s0  objtype=NORMAL cap_fp=none cap_fi=none cap_fe=0 cap_fver=0
type=PROCTITLE msg=audit(1364481363.243:24287) : proctitle=636174002F6574632F7373682F737368645F636F6E666967
				上記のイベントは 4 つのレコードで設定されており、タイムスタンプとシリアル番号を共有します。レコードは、常に 
type= キーワードで始まります。各レコードは、空白またはコンマで区切られた複数の name=value ペアで設定されます。上記のイベントの詳細な分析は以下のようになります。
			1 つ目のレコード
type=SYSCALLtypeフィールドには、レコードのタイプが含まれます。この例では、SYSCALL値は、このレコードがカーネルへのシステムコールによってトリガーされることを指定しています。利用可能なすべてのタイプ値のリストとその説明については、Audit Record Types を参照してください。msg=audit(1364481363.243:24287):msgフィールドは以下を記録します。audit (time_stamp: ID)形式のレコードのタイムスタンプと一意のID。複数のレコードが同じ Audit イベントの一部として生成されている場合は、同じタイムスタンプおよび ID を共有できます。タイムスタンプは Unix の時間形式です (1970 年 1 月 1 日 00:00:00 UTC からの秒数)。- カーネルまたはユーザー空間のアプリケーションが提供するさまざまなイベント固有の
name=valueペア。 
arch=c000003earchフィールドには、システムの CPU アーキテクチャーに関する情報が含まれます。c000003eの値は 16 進数表記でエンコードされます。ausearch コマンドで Audit レコードを検索する場合は、-iオプションまたは--interpretオプションを使用して、16 進数の値を人間が判読できる値に自動的に変換します。c000003e値はx86_64として解釈されます。syscall=2syscallフィールドは、カーネルに送信されたシステムコールのタイプを記録します。値2は、/usr/include/asm/unistd_64.hファイルで人間が判読できる値と一致します。この場合、2はオープンシステムコールです。ausyscall ユーティリティーを使用すると、システムコール番号を、人間が判読できるものに変換できます。ausyscall --dump コマンドを使用して、すべてのシステムコールの一覧とその数字を表示します。詳細は、ausyscall(8) の man ページを参照してください。success=nosuccessフィールドは、その特定のイベントで記録されたシステムコールが成功したか失敗したかを記録します。この例では、呼び出しが成功しませんでした。exit=-13exitフィールドには、システムコールによって返される終了コードを指定する値が含まれます。この値は、システムコールにより異なります。次のコマンドを実行すると、この値を人間が判読可能なものに変換できます。ausearch --interpret --exit -13
~]# ausearch --interpret --exit -13Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上記の例では、監査ログに終了コード-13で失敗したイベントが含まれていることを前提としています。a0=7fffd19c5592,a1=0,a2=7fffd19c5592,a3=aa0toa3フィールドは、このイベントにおけるシステムコールの最初の 4 つの引数を 16 進数表記で記録します。これらの引数は、使用されるシステムコールによって異なります。ausearch ユーティリティーで解釈できます。items=1itemsフィールドには、syscall レコードに続く PATH 補助レコードの数が含まれます。ppid=2686ppidフィールドは、親プロセス ID (PPID)を記録します。この場合、2686はbashなどの親プロセスの PPID です。pid=3538pidフィールドは、プロセス ID (PID)を記録します。この場合、3538はcatプロセスの PID です。auid=1000auidフィールドは、loginuid である Audit ユーザー ID を記録します。この ID は、ログイン時にユーザーに割り当てられ、ユーザーの ID が変更された場合でもすべてのプロセスに継承されます(例: su - john コマンドでユーザーアカウントの切り替え)。uid=1000uidフィールドは、解析しているプロセスを開始したユーザーのユーザー ID を記録します。ユーザー ID は、ausearch -i --uid UID のコマンドを使用してユーザー名に解釈できます。gid=1000gidフィールドは、解析しているプロセスを開始したユーザーのグループ ID を記録します。euid=1000euidフィールドは、解析しているプロセスを開始したユーザーの実効ユーザー ID を記録します。suid=1000suidフィールドは、解析しているプロセスを開始したユーザーの設定ユーザー ID を記録します。fsuid=1000fsuidフィールドは、解析しているプロセスを開始したユーザーのファイルシステムユーザー ID を記録します。egid=1000egidフィールドは、解析しているプロセスを開始したユーザーの実効グループ ID を記録します。sgid=1000sgidフィールドは、解析しているプロセスを開始したユーザーのセットグループ ID を記録します。fsgid=1000fsgidフィールドは、解析しているプロセスを開始したユーザーのファイルシステムグループ ID を記録します。tty=pts0ttyフィールドは、解析しているプロセスが呼び出された端末を記録します。ses=1sesフィールドは、解析しているプロセスが呼び出されたセッションのセッション ID を記録します。comm="cat"commフィールドは、解析しているプロセスを開始するために使用したコマンドのコマンドライン名を記録します。この場合、この Audit イベントをトリガーするために cat コマンドを使用します。exe="/bin/cat"exeフィールドは、解析しているプロセスを呼び出すために使用された実行可能ファイルへのパスを記録します。subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023subjフィールドは、解析しているプロセスが実行時にラベル付けされた SELinux コンテキストを記録します。key="sshd_config"keyフィールドは、Audit ログでこのイベントを生成したルールに関連付けられた管理者定義の文字列を記録します。
2 つ目のレコード
type=CWD- 2 つ目のレコードでは、
typeフィールドの値はCWD- 現在の作業ディレクトリーです。このタイプは、最初のレコードで指定されたシステムコールを開始したプロセスの作業ディレクトリーを記録するために使用されます。この記録の目的は、相対パスが関連する PATH 記録に保存された場合に、現行プロセスの位置を記録することにあります。これにより、絶対パスを再構築できます。 msg=audit(1364481363.243:24287)msgフィールドは、最初のレコードと同じタイムスタンプと ID 値を保持します。タイムスタンプは Unix の時間形式です (1970 年 1 月 1 日 00:00:00 UTC からの秒数)。cwd="/home/user_name"cwdフィールドには、システムコールが呼び出されたディレクトリーへのパスが含まれます。
3 つ目のレコード
type=PATH- 3 つ目のレコードでは、
typeフィールドの値はPATHです。Audit イベントには、システムコールに引数として渡されるすべてのパスのPATH-type レコードが含まれます。この Audit イベントでは、1 つのパス(/etc/ssh/sshd_config)を引数として使用されました。 msg=audit(1364481363.243:24287):msgフィールドは、1 番目と 2 番目のレコードと同じタイムスタンプと ID 値を保持します。item=0itemフィールドは、SYSCALLタイプレコードで参照されているアイテムの合計数のうち、現在のレコードがどのアイテムであるかを示します。この数はゼロベースで、値0は最初の項目であることを示します。name="/etc/ssh/sshd_config"nameフィールドは、システムコールに引数として渡されたファイルまたはディレクトリーのパスを記録します。ここでは、/etc/ssh/sshd_configファイルです。inode=409248inodeフィールドには、このイベントで記録されたファイルまたはディレクトリーに関連付けられた inode 番号が含まれます。以下のコマンドは、inode 番号409248に関連するファイルまたはディレクトリーを表示します。find / -inum 409248 -print
~]# find / -inum 409248 -print /etc/ssh/sshd_configCopy to Clipboard Copied! Toggle word wrap Toggle overflow dev=fd:00devフィールドは、このイベントで記録されたファイルまたはディレクトリーを含むデバイスのマイナーおよびメジャー ID を指定します。この場合、値は/dev/fd/0デバイスを表します。mode=0100600modeフィールドは、ファイルまたはディレクトリーのパーミッションを記録します。これは、st_modeフィールドの stat コマンドで返される数値表記でエンコードされます。詳細は、stat (2)の man ページを参照してください。この場合、0100600は-rw-------として解釈できます。つまり、root ユーザーのみが/etc/ssh/sshd_configファイルへの読み取りおよび書き込みパーミッションを持ちます。ouid=0ouidフィールドは、オブジェクトの所有者のユーザー ID を記録します。ogid=0ogidフィールドは、オブジェクトの所有者のグループ ID を記録します。rdev=00:00rdevフィールドには、特別なファイルに対してのみ記録されたデバイス識別子が含まれます。ここでは、記録されたファイルは通常のファイルであるため、このフィールドは使用されません。obj=system_u:object_r:etc_t:s0objフィールドは、実行時に記録されたファイルまたはディレクトリーにラベル付けされた SELinux コンテキストを記録します。objtype=NORMALobjtypeフィールドは、指定したシステムコールのコンテキストで各パスレコード操作の意図を記録します。cap_fp=nonecap_fpフィールドは、ファイルまたはディレクトリーオブジェクトで許可されたファイルシステムベースの機能の設定に関連するデータを記録します。cap_fi=nonecap_fiフィールドは、ファイルまたはディレクトリーオブジェクトの継承されたファイルシステムベースの機能の設定に関連するデータを記録します。cap_fe=0cap_feフィールドは、ファイルまたはディレクトリーオブジェクトのファイルシステムベースの機能の有効ビットの設定を記録します。cap_fver=0cap_fverフィールドは、ファイルまたはディレクトリーオブジェクトのファイルシステムベースの機能のバージョンを記録します。
4 つ目のレコード
type=PROCTITLEtypeフィールドには、レコードのタイプが含まれます。この例では、PROCTITLE値は、このレコードがカーネルへのシステムコールによってトリガーされたこの Audit イベントをトリガーした完全なコマンドラインを提供することを指定しています。proctitle=636174002F6574632F7373682F737368645F636F6E666967proctitleフィールドは、解析しているプロセスを開始するために使用したコマンドのコマンドラインを記録します。このフィールドは 16 進数の表記で記録され、Audit ログパーサーに影響が及ばないようにします。このテキストは、この Audit イベントを開始したコマンドに復号します。ausearch コマンドで Audit レコードを検索する場合は、-iオプションまたは--interpretオプションを使用して、16 進数の値を人間が判読できる値に自動的に変換します。636174002F6574632F7373682F737368645F636F6E666967値はcat /etc/ssh/sshd_configとして解釈されます。
				上記で分析した Audit イベントには、イベントに含めることができるすべての可能なフィールドのサブセットのみが含まれています。すべてのイベントフィールドのリストとその説明については、Audit Event Fields を参照してください。すべてのイベントタイプのリストとその説明については、Audit Record Types を参照してください。
			
例7.6 追加の audit.log イベント
					以下の Audit イベントは、
auditd デーモンが正常に起動したことを記録します。ver フィールドは、起動した Audit デーモンのバージョンを示します。
				type=DAEMON_START msg=audit(1363713609.192:5426): auditd start, ver=2.2 format=raw kernel=2.6.32-358.2.1.el6.x86_64 auid=1000 pid=4979 subj=unconfined_u:system_r:auditd_t:s0 res=success
type=DAEMON_START msg=audit(1363713609.192:5426): auditd start, ver=2.2 format=raw kernel=2.6.32-358.2.1.el6.x86_64 auid=1000 pid=4979 subj=unconfined_u:system_r:auditd_t:s0 res=success
					以下の Audit イベントは、UID が 1000 のユーザーが root ユーザーとしてログインしようとして失敗したことを記録します。
				
type=USER_AUTH msg=audit(1364475353.159:24270): user pid=3280 uid=1000 auid=1000 ses=1 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 msg='op=PAM:authentication acct="root" exe="/bin/su" hostname=? addr=? terminal=pts/0 res=failed'
type=USER_AUTH msg=audit(1364475353.159:24270): user pid=3280 uid=1000 auid=1000 ses=1 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 msg='op=PAM:authentication acct="root" exe="/bin/su" hostname=? addr=? terminal=pts/0 res=failed'