Show Table of Contents
5.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
auditd デーモンが実行中の場合、以下のコマンドが Audit ログファイルに新規イベントを作成します。
~]# 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
上記のイベントは、3 つの記録 (それぞれ
type= キーワードで開始) で構成されており、これらは同じタイムスタンプとシリアル番号を共有しています。各記録は、いくつかの name=value のペアで構成されており、これらは空白またはコンマ区切りとなっています。以下で上記のイベントを詳しく分析します。
最初の記録
type=SYSCALLtypeフィールドには、記録のタイプが記載されます。この例では、この記録がカーネルへのシステムコールで開始されたことをSYSCALLの値が示しています。タイプの値およびそれらの説明に関する全一覧は、「Audit 記録のタイプ」 を参照してください。msg=audit(1364481363.243:24287):msgフィールドでは以下を記録しています。audit(time_stamp:ID)の形式で、記録のタイムスタンプと一意の ID。複数の記録は、それらが同一の Audit イベントの一部として生成されている場合は、同じタイムスタンプと ID を共有できます。- 各種のイベント固有の
name=valueペア。これは、カーネルもしくはユーザースペースアプリケーションが提供します。
arch=c000003earchフィールドには、システムの CPU アーキテクチャーについての情報が含まれます。c000003eという値は、十六進法でエンコードされています。ausearchコマンドで Audit 記録を検索する際は、-iまたは--interpretオプションを使うと自動的に十六進法の値がヒューマンリーダブルなものに変換されます。c000003eの値は、x86_64として解釈されます。syscall=2- The
syscallfield records the type of the system call that was sent to the kernel. The value,2, can be matched with its human-readable equivalent in the/usr/include/asm/unistd_64.hfile. In this case,2is theopensystem call. Note that the ausyscall utility allows you to convert system call numbers to their human-readable equivalents. Use theausyscall --dumpcommand to display a listing of all system calls along with their numbers. For more information, refer to the ausyscall(8) man page. success=nosuccessフィールドは、その特定のイベントで記録されたシステムコールが成功したかどうかを記録します。このケースでは、コールは成功しませんでした。exit=-13exitフィールドには、システムコールが返した終了コードを指定する値が含まれています。この値は、システムコールによって異なります。以下のコマンドを使うと、この値をヒューマンリーダブルなものに変換できます。ausearch --interpret --exit -13(Audit ログに終了コード-13で失敗したイベントが含まれていることが前提)。a0=7fffd19c5592,a1=0,a2=7fffd19c5592,a3=aa0からa3までのフィールドは、このイベントにおけるシステムコールの最初の 4 つの引数を十六進法で記録します。これらの引数は、使用されているシステムコールによって異なります。ausearch ユーティリティーでこれらを変換できます。items=1itemsフィールドには、イベントのパス記録の数が含まれています。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。このケースでは、1000はshadowmanのユーザー ID です。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フィールドは、分析されているプロセスを開始するために使用されたコマンドのコマンドライン名を記録します。このケースでは、catコマンドを使ってこの Audit イベントが開始されました。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 の値になります。cwd="/home/shadowman"cwdフィールドは、システムコールが開始されたディレクトリーへのパスになります。
3 番目の記録
type=PATH- 3 番目の記録では、
typeフィールドの値はPATHになります。Audit イベントには、システムコールに引数として渡されたすべてのパスにPATHタイプの記録が含まれます。この Audit イベントでは、1 つのパス (/etc/ssh/sshd_config) のみが引数として使われています。 msg=audit(1364481363.243:24287):msgフィールドは、最初と 2 番目の記録と同じタイムスタンプと ID の値になります。item=0itemフィールドは、SYSCALLタイプの記録で参照されたアイテム総数のうち、どのアイテムが現行の記録かを示します。この数字はゼロベースで、0は最初のアイテムであることを示します。name="/etc/ssh/sshd_config"nameフィールドは、システムコールに引数として渡されたファイルまたはディレクトリーへの完全パスを記録します。このケースでは、/etc/ssh/sshd_configファイルとなります。inode=409248inodeフィールドには、このイベントで記録されたファイルまたはディレクトリーに関連する inode 番号が含まれます。以下のコマンドを実行すると、409248inode 番号に関連するファイルまたはディレクトリーが表示されます。~]#
find / -inum 409248 -print/etc/ssh/sshd_configdev=fd:00devフィールドは、このイベントで記録されたファイルまたはディレクトリーを含むデバイスのマイナーおよびメジャー ID を示します。このケースでは、値は/dev/fd/0デバイスを示しています。mode=0100600modeフィールドは、ファイルまたはディレクトリーパーミッションを数字表記でエンコードされた形で記録します。このケースでは、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 コンテキストを記録します。
上記で分析された Audit イベントには、イベントに含まれる可能性のあるフィールドのサブセットのみが含まれています。イベントフィールドおよびそれらの説明の全一覧は、「Audit イベントフィールド」 を参照してください。イベントのタイプおよびそれらの説明の全一覧は、「Audit 記録のタイプ」 を参照してください。
例5.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
以下の 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'

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.