---- type=PROCTITLE msg=audit(2017 年 9 月 3 日星期日 ^E.370:2020074) : proctitle=/usr/bin/xterm -fg White -bg black type=SOCKETCALL msg=audit(2017 年 9 月 3 日星期日 ^E .370:2020074) : nargs=3 a0=0x3 a1=0xbf9a8274 a2=0x0 type=SYSCALL msg=audit(2017 年 9 月 3 日星期日 ^E.370:2020074) : arch=i386系统调用=套接字调用(recvmsg) 成功=不退出=EAGAIN(资源暂时不可用)a0=recvmsg a1=0xbf9a81f4 a2=0x0 a3=0x0items=0 ppid=16776 pid=16777 auid=unset uid=root gid=root euid=root suid=root fsuid=root egid=root sgid=root fsgid=root tty=(无) ses=unsetcomm=xterm exe=/usr/bin/xterm 关键=混蛋
---- type=PROCTITLE msg=audit(2017年9月3日星期日^E.638:2020105) : proctitle=/usr/local/firefox/firefox type=SOCKETCALL msg=audit(2017年9月3日星期日^E.638:2020105 ) : nargs=3 a0=0x4 a1=0xbfaf8854 a2=0x0 type=SYSCALL msg=audit(2017 年 9 月 3 日星期日 ^E.638:2020105) : arch=i386系统调用=套接字调用(recvmsg)成功=不退出=EAGAIN(资源暂时不可用)a0=recvmsg a1=0xbfaf87d4 a2=0x0 a3=0xb771f000items=0 ppid=22804 pid=22815 auid=unset uid=geek gid=geek euid=geek suid=geek fsuid=geek egid=geek sgid=geek fsgid=geek tty=(无) ses=unset comm=firefoxexe=/usr/local/firefox/firefox 关键=混蛋
我在用:
auditctl -a 退出,始终 -F arch=i686 -S socketcall -k jackass
我发现这很有帮助,但在上面的示例中似乎不起作用。 Suse 审计文档例子-F a0=1
可以过滤,但由于两个调用都使用接收消息这没有用。我需要一些方法来区分使用a1 a2 a3。 SUSE 文档说:
-F a1=10 过滤器将匹配范围缩小到携带 IPv6 协议族域参数 (PF_INET6) 的套接字系统调用。
然而,在这些调用中,a1=0xb5d12130 是不可读的胡言乱语。它看起来是一个指向相应调用的参数数组的指针。x86 上的多路复用系统调用
int socketcall(int call, unsigned long *args);
args points to a block containing the actual arguments, which are passed
through to the appropriate call.