Linux での監査

Linux での監査

Centos 6.xのボックスに堅牢な監査メカニズムを設定しようとしています。次のようなさまざまな監査ツールを試してテストしました。

  • 監査された
  • 補佐官
  • psacct

しかし、どれも私の要件を完全に満たしていません。私の要件は非常に単純で、1つの監査システムですべてに対応できるわけではなく、異なる監査システムをすべて一緒に使用する必要があるかもしれないことはわかっています。

  • ユーザーが実行したすべてのコマンドを監視する

psacct はこれを完璧に実行しますが、ユーザーが実行したコマンドのみを伝え、コマンドに渡された引数は伝えません。つまり、ユーザーが実行した場合vim /erc/passwdlastcomm <username>vim コマンドが実行されたことのみが伝えられ、実際に編集されたファイルは伝えられません。

また、auditd は、たとえば vim コマンドが実行され、特定のファイルが編集されたことを通知しますが、誰がそのファイルを編集したかは通知しません。

たとえば、sudo ユーザーとしてコマンドを実行した場合、コマンドの出力では gid と uid がスーパーユーザーのものになるため、10 人の sudo ユーザーがいると、どのユーザーが特定のファイルを編集したかはわかりません。

time->Sat Jun 20 15:52:45 2015
type=PATH msg=audit(1434795765.057:54685): item=4 name="/etc/passwd" inode=152790 dev=fd:00 mode=0100644 ouid=0 ogid=0 rdev=00:00 nametype=CREATE
type=PATH msg=audit(1434795765.057:54685): item=3 name="/etc/passwd" inode=152786 dev=fd:00 mode=0100644 ouid=0 ogid=0 rdev=00:00 nametype=DELETE
type=PATH msg=audit(1434795765.057:54685): item=2 name="/etc/passwd+" inode=152790 dev=fd:00 mode=0100644 ouid=0 ogid=0 rdev=00:00 nametype=DELETE
type=PATH msg=audit(1434795765.057:54685): item=1 name="/etc/" inode=130562 dev=fd:00 mode=040755 ouid=0 ogid=0 rdev=00:00 nametype=PARENT
type=PATH msg=audit(1434795765.057:54685): item=0 name="/etc/" inode=130562 dev=fd:00 mode=040755 ouid=0 ogid=0 rdev=00:00 nametype=PARENT
type=CWD msg=audit(1434795765.057:54685):  cwd="/etc"
type=SYSCALL msg=audit(1434795765.057:54685): arch=c000003e syscall=82 success=yes exit=0 a0=7fffba897300 a1=7fd7cc94ece0 a2=7fffba8971c0 a3=0 items=5 ppid=14041 pid=14043 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts1 ses=8494 comm="useradd" exe="/usr/sbin/useradd" key=(null)
  • ファイルに加えられた実際の変更を追跡したい

補助ツールはファイルが変更されたことを通知しますが、実際に変更されたコンテンツの詳細と変更を行ったユーザーを取得するにはどうすればよいでしょうか?

答え1

pam_tty_auditこれを実装するには、auditdとpamモジュールを使用します。次のようにセッションの下にpamモジュールをロードする必要があります。

session required pam_tty_audit.so disable=testuser1 enable=testuser,root

/etc/pam.d/password-authおよびファイルの両方で/etc/pam.d/system-auth

有効にされたユーザーのキーストロークが監査ログに記録されます。

監査レポートを生成するときは、aureport で -i オプションを使用してユーザー名を正確に取得します。

例えば:aureport --tty -i -ts today

この方法の欠点の 1 つは、ターミナルに入力されたパスワードを含むすべてのキーストロークが記録されることです。

ファイルの変更を追跡するには、補助ツールを使用できます。これはチェックサム検証方法を使用します。ただし、ファイル内で変更された正確な行は追跡できません。

関連情報