FileBeats Auditd module

Audit log をいい感じにParseするやつとして、 FileBeatsに Auditd module あるし、今ならきっとそれ使ってると思う。

というような発表をBuildersCon 2017 で聞いてきたのですが、前に触ったとき、いい感じに扱えなかった記憶があったので、再度見てみました。

Auditd module

まずダッシュボードを見ると、SYSCALL PATH CWD EXECVE が分かれているパイチャートが見える、この時点で すでにつらそう。

実際にログ吐き出させてみると、やはり行指向に、audit.log 1行が1レコードとして吐き出されるので、 何か検索した後、 msg=audit(xxxx.xxx:yyyy) みたいなところのyyyyが一致するもの…… として調べて回らないといけない感じです。

{"@timestamp":"2017-08-06T05:18:54.062Z","beat":{"hostname":"localhost.localdomain","name":"localhost.localdomain","version":"5.5.1"},"input_type":"log","message":"type=SYSCALL msg=audit(1501996733.927:1232): arch=c000003e syscall=59 success=yes exit=0 0=26bcb40 a1=26b0220 a2=26afad0 a3=7fff295001e0 items=2 ppid=809 pid=68498 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 comm=\"sleep\" exe=\"/usr/bin/sleep\" ubj=system_u:system_r:ksmtuned_t:s0 key=(null)","offset":993081,"source":"/var/log/audit/audit.log","type":"log"}
{"@timestamp":"2017-08-06T05:18:54.062Z","beat":{"hostname":"localhost.localdomain","name":"localhost.localdomain","version":"5.5.1"},"input_type":"log","message":"type=EXECVE msg=audit(1501996733.927:1232): argc=2 a0=\"sleep\" a1=\"60\"","offset":993151,"source":"/var/log/audit/audit.log","type":"log"}
{"@timestamp":"2017-08-06T05:18:54.062Z","beat":{"hostname":"localhost.localdomain","name":"localhost.localdomain","version":"5.5.1"},"input_type":"log","message":"type=CWD msg=audit(1501996733.927:1232):  cwd=\"/\"","offset":993201,"source":"/var/log/audit/audit.log","type":"log"}
{"@timestamp":"2017-08-06T05:18:54.062Z","beat":{"hostname":"localhost.localdomain","name":"localhost.localdomain","version":"5.5.1"},"input_type":"log","message":"type=PATH msg=audit(1501996733.927:1232): item=0 name=\"/usr/bin/sleep\" inode=34113796 dev=08:03 mode=0100755 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:bin_t:s0 objtype=NORMAL","offset":993381,"source":"/var/log/audit/audit.log","type":"log"}

いや、それが面倒だから1レコードにしてほしいんだけど。。

状態です。

やっぱり OSQuery がよさげなんですかね