audit による情報採取
1.特定のシステムコールの追跡
以下は、kill 関連の追跡の場合。
まずは、システムコール番号の確認を行う。
これがわからないと audit のログに記録されたシステムコールが何かわからない。
# ausyscall i386 kill kill 37 tkill 238 tgkill 270 # ausyscall x86_64 kill kill 62 tkill 200 tgkill 234
参考資料
http://qiita.com/h2suzuki/items/c2b0b51abb252155db2f
そして、以下のように、/etc/audit/audit.rules に追跡用のルールを設定する。
-a exit,always -F arch=b64 -S kill -k teste_kill ^^^^^^^^^^^^^★ログの検索用に設定
auditd を再起動して、以下のようにルールが設定されたことを確認する。
# auditctl -l LIST_RULES: exit,always arch=3221225534 (0xc000003e) key=teste_kill syscall=kill
システムコールが発行されると以下のように記録される。
# ausearch -if /var/log/audit/audit.log -k teste_kill ---- time->Mon Mar 16 02:26:42 2015 type=OBJ_PID msg=audit(1426440402.942:284): opid=2193 oauid=0 ouid=0 oses=42 ocomm="tail" type=SYSCALL msg=audit(1426440402.942:284): arch=c000003e syscall=62 success=yes exit=0 a0=891 a1=9 a2=0 a3=891 items=0 ppid=1516 pid=1518 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=3 comm="bash" exe="/bin/bash" key="teste_kill"
上記のログから、以下の情報などが読み取れる。
arch=c000003e : 64 bit syscall=62 : kill a0=891 : 対象の PID が 2193 a1=9 : シグナル値が 9 から SIGKILL が発行
参考情報Security Guide
2.デバイスファイルへのアクセスの追跡
以下は、/dev/sdf への追跡の場合。
まずは、デバイスファイルのメジャー番号、マイナー番号を確認する。
# ll /dev/sdf brw-rw---- 1 root disk 8, 80 3月 17 19:16 2015 /dev/sdf
上記の情報をもとにルールを設定する。
# auditctl -a exit,always -F arch=b64 -F devmajor=8 -F devminor=80 -S all -k teste_kill # auditctl -l LIST_RULES: exit,always arch=3221225534 (0xc000003e) devmajor=8 (0x8) devminor=80 (0x50) key=teste_kill syscall=all
以下は、/dev/sdf に ls した場合の出力。
# ausearch -if /var/log/audit/audit.log -k teste_kill ---- time->Tue Mar 17 20:35:28 2015 type=CONFIG_CHANGE msg=audit(1426592128.816:11926): auid=0 ses=19 op="add rule" key="teste_kill" list=4 res=1 ---- time->Tue Mar 17 20:35:38 2015 type=PATH msg=audit(1426592138.127:11928): item=0 name="/dev/sdf" inode=6111 dev=00:05 mode=060660 ouid=0 ogid=6 rdev=08:50 type=CWD msg=audit(1426592138.127:11928): cwd="/etc/audit" type=SYSCALL msg=audit(1426592138.127:11928): arch=c000003e syscall=192 success=no exit=-95 a0=7fff9045890c a1=7f5d5c3a0319 a2=2390980 a3=ff items=1 ppid=1476 pid=3195 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=1 comm="ls" exe="/bin/ls" key="teste_kill" ---- time->Tue Mar 17 20:35:38 2015 type=PATH msg=audit(1426592138.127:11927): item=0 name="/dev/sdf" inode=6111 dev=00:05 mode=060660 ouid=0 ogid=6 rdev=08:50 type=CWD msg=audit(1426592138.127:11927): cwd="/etc/audit" type=SYSCALL msg=audit(1426592138.127:11927): arch=c000003e syscall=6 success=yes exit=0 a0=7fff9045890c a1=238be80 a2=238be80 a3=7fff90457990 items=1 ppid=1476 pid=3195 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=1 comm="ls" exe="/bin/ls" key="teste_kill" ---- time->Tue Mar 17 20:35:38 2015 type=PATH msg=audit(1426592138.127:11929): item=0 name="/dev/sdf" inode=6111 dev=00:05 mode=060660 ouid=0 ogid=6 rdev=08:50 type=CWD msg=audit(1426592138.127:11929): cwd="/etc/audit" type=SYSCALL msg=audit(1426592138.127:11929): arch=c000003e syscall=6 success=yes exit=0 a0=7fff9045890c a1=7fff90457b70 a2=7fff90457b70 a3=7fff90457900 items=1 ppid=1476 pid=3195 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=1 comm="ls" exe="/bin/ls" key="teste_kill" ---- time->Tue Mar 17 20:35:38 2015 type=PATH msg=audit(1426592138.127:11930): item=0 name="/dev/sdf" inode=6111 dev=00:05 mode=060660 ouid=0 ogid=6 rdev=08:50 type=CWD msg=audit(1426592138.127:11930): cwd="/etc/audit" type=SYSCALL msg=audit(1426592138.127:11930): arch=c000003e syscall=192 success=no exit=-61 a0=7fff9045890c a1=7f5d5bd7bdb7 a2=0 a3=0 items=1 ppid=1476 pid=3195 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=1 comm="ls" exe="/bin/ls" key="teste_kill" ---- time->Tue Mar 17 20:35:38 2015 type=PATH msg=audit(1426592138.127:11931): item=0 name="/dev/sdf" inode=6111 dev=00:05 mode=060660 ouid=0 ogid=6 rdev=08:50 type=CWD msg=audit(1426592138.127:11931): cwd="/etc/audit" type=SYSCALL msg=audit(1426592138.127:11931): arch=c000003e syscall=192 success=no exit=-61 a0=7fff9045890c a1=7f5d5bd7bd88 a2=0 a3=0 items=1 ppid=1476 pid=3195 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=1 comm="ls" exe="/bin/ls" key="teste_kill"
参考資料
https://access.redhat.com/ja/solutions/786713
http://eng-manima.blogspot.jp/2014/10/linux-auditd.html
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html-single/Security_Guide/index.html#chap-system_auditing
http://www.secureos.jp/index.php?plugin=attach&refer=events%2Fjsosjk06&openfile=jsosjk06-linux-audit.pdf
http://www.usupi.org/sysad/222.html
https://www.nsa.gov/ia/_files/os/redhat/rhel5-guide-i731.pdf
http://a4dosanddos.hatenablog.com/entry/2013/07/10/230710
https://www.suse.com/documentation/sled10/pdfdoc/auditqs_sp2/auditqs_sp2.pdf
http://people.redhat.com/sgrubb/audit/audit-parse.txt