Como registrar todas as chamadas do sistema feitas por um processo e todos os seus descendentes com o auditd

12

Eu posso fazer

auditctl -a always,exit -S all -F pid=1234

Para registrar todas as chamadas do sistema feitas pelo pid 1234 e:

auditctl -a always,exit -S all -F ppid=1234

Para seus filhos, mas como faço para cobrir também os netos e seus filhos (atuais e futuros)?

Não posso confiar em (e) uid / (e) gid que mudam.

(observe que usar strace também não é uma opção)

    
por Stéphane Chazelas 30.10.2014 / 13:35

1 resposta

1

Apenas propondo algo sem ter qualquer forma de experimentá-lo agora ... mas apenas adivinhando a partir do próprio post

Aqui está uma proposta de solução:

Assumindo que o ID do processo mais alto está em $ pid, e que no linux também ps -T fornece a árvore de processos (eu não posso ter acesso ao linux no momento)

for eachpid in $(ps -T "$pid" | awk '{print $1}' | grep -v 'PID')
do
   auditctl -a always,exit -S all -F pid=$eachpid  >somelog_${eachpid}.log 2>&1
done

Claro, substitua ps -T "$pid" pelo equivalente para o linux, se esse não funcionar no linux (ou ache o awk-output "pstree -p", o pid estará entre parênteses)

    
por 30.10.2014 / 16:20