auditd を使用した「権限の拒否」通知のキャプチャ

auditd を使用した「権限の拒否」通知のキャプチャ

Permission deniedユーザーがファイルにアクセスしようとした後に通知を受け取ったときにログ/追跡する方法を見つけようとします。ルールを追加すると、これを行うことができることがわかりました/etc/audit/audit.rules

私が見た唯一のアドバイス期待どおりに動作しないようです。それとも、少なくとも私が望む効果はありませんでした。おそらく書かれたように動作します。ルールは

-a always,exit -F arch=b64 -S open -F success!=0

実際、上記のリンクされた提案にはアーチオプションは含まれていません。何かを追加する必要があります。

前後に/var/log/audit/audit.log私は言ったすべてを見ましたsuccess=yes。これには、ウィンドウをクリックしたり、フォーカスを変更したり、ウィンドウの機能を変更したりするためにキーの組み合わせを入力することが含まれます。Permission deniedインクルード項目や開こうとしている特定のファイルに関する内容は何も表示されませんが、success=noそのファイルに対する権限がないことがわかります。

success=no私が明らかに言うことができるのは、inをgrepしても/var/log/audit/audit.log何も返されないということです。

ルールは何でなければなりませんか?それとも、より良いことはこれが実際に可能ですか?上記の回避策は間違っていますか?

ベストアンサー1

success!=1私はこのツールを使って結果が表示さaudit.logれることを発見しましたsuccess=no。ゼロ以外の終了コードは通常、エラーの種類を示しますが、他のエラー終了!=1コードも含めて何でも可能であるため、これは直感的ではないようです。そして成功( 0)。しかし興味深いことに、これらの内容は現れませんでした。

別の問題は、どのファイルアクセスが失敗したかを表示しないことです。代わりに、失敗した終了コードが返されたときに実行されたコマンドのみが一覧表示されます。私の場合は走っていたcat /etc/shadow。だから見るより

type=SYSCALL msg=audit(1438754257.463:11451): arch=c000003e syscall=2 success=no exit=-13 a0=7ffea511f35f a1=0 a2=1ffffffffffe0000 a3=0 items=1 ppid=1650 pid=5489 auid=1000 uid=1000 gid=100 euid=1000 suid=1000 fsuid=1000 egid=100 sgid=100 fsgid=100 tty=pts0 ses=1 comm="cat" exe="/usr/bin/cat" key="access"
type=CWD msg=audit(1438754257.463:11451):  cwd="/home/msnyder"
type=PATH msg=audit(1438754257.463:11451): item=0 name="/etc/shadow" inode=1131047 dev=00:20 mode=0100640 ouid=0 ogid=15 rdev=00:00 nametype=NORMAL

私だけを見る

type=SYSCALL msg=audit(1438752096.223:4952): arch=c000003e syscall=2 success=yes exit=3 a0=7f77d575c057 a1=80000 a2=1 a3=22 items=1 ppid=1650 pid=4873 auid=1000 uid=1000 gid=100 euid=1000 suid=1000 fsuid=1000 egid=100 sgid=100 fsgid=100 tty=pts0 ses=1 comm="cat" exe="/usr/bin/cat" key=(null)
type=CWD msg=audit(1438752096.223:4952):  cwd="/home/msnyder"

それからマンページを見ましたaudit.rulesユーレカ!答えはいつもそこにありました。

-a always,exit -F arch=b64 -S open,openat -F exit=-EACCES -F key=access
-a always,exit -F arch=b64 -S open,openat -F exit=-EPERM -F key=access

これら2つのルールを組み合わせることで問題は解決されます。失敗したファイルアクセスだけでなく、アクセスしようとしたファイルも記録します。これにより、ファイル名を含む上記の最初の3つのログエントリが生成されます。

おすすめ記事