---- type = PROCTITLE msg = auditoria (domingo 03
Setembro de 2017 ^ E.370: 2020074): proctitle = / usr / bin / xterm -fg branco -bg
black type = SOCKETCALL msg = audit (domingo, 03 de setembro de 2017 ^ E.370: 2020074)
: nargs = 3 a0 = 0x3 a1 = 0xbf9a8274 a2 = 0 x 0 tipo = SYSCALL msg = auditoria (domingo 03
Setembro de 2017 ^ E.370: 2020074): arch = i386 syscall = socketcall (recvmsg)
sucesso = sem saída = EAGAIN (Recurso temporariamente indisponível) a0 = recvmsg
a1 = 0xbf9a81f4 a2 = 0x0 a3 = 0 x 0 itens = 0 ppid = 16776 pid = 16777 auid = unset
uid = raiz gid = raiz euid = raiz suid = raiz fsuid = raiz egid = raiz sgid = raiz
fsgid = raiz tty = (nenhum) ses = não definido comm = xterm exe = / usr / bin / xterm
chave = jackass
---- type = PROCTITLE msg = auditoria (domingo, 03 de setembro de 2017
^ E.638: 2020105): proctitle = / usr / local / firefox / tipo de firefox = SOCKETCALL
msg = auditoria (domingo 03 setembro 2017 ^ E.638: 2020105): nargs = 3 a0 = 0x4
a1 = 0xbfaf8854 a2 = 0x0 type = SYSCALL msg = auditoria (domingo, 03 de setembro de 2017
^ E.638: 2020105): arco = i386 syscall = socketcall (recvmsg) sucesso = não
exit = EAGAIN (Recurso temporariamente indisponível) a0 = recvmsg a1 = 0xbfaf87d4
a2 = 0x0 a3 = 0xb771f000 itens = 0 ppid = 22804 pid = 22815 auid = não configurado uid = geek
gid = geek euid = totó suid = geek fsuid = geek egid = geek sgid = geek fsgid = geek
tty = (nenhum) ses = não definido comm = firefox exe = / usr / local / firefox / firefox
chave = jackass
Estou usando:
auditctl -a exit,always -F arch=i686 -S socketcall -k jackass
Achei isso útil, mas não parece funcionar no exemplo acima.
SUSE Audit Docs Exemplo -F a0 = 1
pode filtrar, mas como as duas chamadas usam recvmsg , isso não é útil. Eu preciso de alguma maneira para diferenciar usando a1 a2 a3 . Os documentos do SUSE dizem:
-F a1=10 filter narrows the matches down to socket system calls carrying the IPv6 protocol family domain parameter (PF_INET6).
No entanto, nestas chamadas a1 = 0xb5d12130, que é ilegível mumbo-jumbo. Parece ser um ponteiro para uma matriz de parâmetros para a chamada correspondente. Chamadas de sistema multiplexadas em 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.