Eu trabalhei com ferramentas e descobri que, se eu usar success!=1
, então audit.log
exibirá as entradas que indicam success=no
. Isso parece contra-intuitivo para mim, pois um código de saída diferente de zero normalmente indica uma falha de algum tipo, mas !=1
poderia ser qualquer coisa, incluindo outros códigos de saída de falha, bem como um sucesso ( 0
). Curiosamente, porém, esses não aparecem.
Um problema adicional é que ele não indica qual arquivo teve o acesso com falha. Em vez disso, ele lista apenas o comando executado quando o código de saída com falha foi retornado. No meu caso, eu estava executando cat /etc/shadow
. Então, ao invés de ver
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
Eu só veria
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"
Em seguida, observei a% man_de% manpage. Eureka! A resposta estava lá o tempo todo:
-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
Essas duas regras combinadas resolvem o problema. Não só registrará o acesso a arquivos com falha, mas também registrará em qual arquivo o acesso foi tentado. Isso resulta nas três primeiras entradas de log acima, incluindo o nome do arquivo.