我将我的 auditd 配置为使用以下规则记录所有 execve 系统调用:
-a exit,always -F arch=b32 -S execve
-a exit,always -F arch=b64 -S execve
虽然这完美地捕获了系统上任何用户的所有活动,但显然也有很多噪音。我添加了一些例外,例如:
-a exit,never -F arch=b32 -S execve -F exe=/bin/date
-a exit,never -F arch=b64 -S execve -F exe=/bin/date
现在剩下的唯一噪音,我仍然想排除的是通过/bin/sh 执行一些脚本。这些的auserach
输出如下所示:
type=PROCTITLE msg=audit(03/21/19 13:35:01.579:7561) : proctitle=/bin/sh /usr/lib/sysstat/debian-sa1 1 1
type=PATH msg=audit(03/21/19 13:35:01.579:7561) : item=2 name=/lib64/ld-linux-x86-64.so.2 inode=2228626 dev=fc:01 mode=file,755 ouid=root ogid=root rdev=00:00 nametype=NORMAL cap_fp=none cap_fi=none cap_fe=0 cap_fver=0
type=PATH msg=audit(03/21/19 13:35:01.579:7561) : item=1 name=/bin/sh inode=1572884 dev=fc:01 mode=file,755 ouid=root ogid=root rdev=00:00 nametype=NORMAL cap_fp=none cap_fi=none cap_fe=0 cap_fver=0
type=PATH msg=audit(03/21/19 13:35:01.579:7561) : item=0 name=/usr/lib/sysstat/debian-sa1 inode=1968913 dev=fc:01 mode=file,755 ouid=root ogid=root rdev=00:00 nametype=NORMAL cap_fp=none cap_fi=none cap_fe=0 cap_fver=0
type=EXECVE msg=audit(03/21/19 13:35:01.579:7561) : argc=4 a0=/bin/sh a1=/usr/lib/sysstat/debian-sa1 a2=1 a3=1
type=SYSCALL msg=audit(03/21/19 13:35:01.579:7561) : arch=x86_64 syscall=execve success=yes exit=0 a0=0x561ccb6c2510 a1=0x561ccb6c24b0 a2=0x561ccb6c24d0 a3=0x7fc8166fd810 items=3 ppid=16157 pid=16158 auid=root uid=root gid=root euid=root suid=root fsuid=root egid=root sgid=root fsgid=root tty=(none) ses=52 comm=debian-sa1 exe=/bin/dash key=exec
因此/usr/lib/sysstat/debian-sa1
使用/bin/sh
(在本例中是指向 的链接/bin/dash
)执行。在这里,我显然不想排除/bin/sh
or的所有执行/bin/dash
,而只排除我允许的少数脚本的执行。
有没有办法指定这样的例外?我试过这样的事情:
-a exit,never -F arch=b32 -S execve -F exe=/bin/dash -F path=/usr/lib/sysstat/debian-sa1
-a exit,never -F arch=b64 -S execve -F exe=/bin/dash -F path=/usr/lib/sysstat/debian-sa1
-a exit,never -F arch=b32 -S execve -F exe=/usr/lib/sysstat/debian-sa1
-a exit,never -F arch=b64 -S execve -F exe=/usr/lib/sysstat/debian-sa1
但这没有用。
根据man auditctl(8)
它也无法检查a0,a1,...
字符串,因为在那里使用了指针。我在这里遗漏了什么,或者这根本不可能?