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 o uso strace
também não é uma opção)
um truque que você poderia usar (mais uma vez, não conheço detalhes específicos do auditd, nem posso tentar no momento): especificar uma variável de ambiente específica ao iniciar o pai superior e auditar todos os processos com essa variável definida?
—
Olivier Dulac
@OlivierDulac, marcar o processo de alguma forma (herdada por crianças) é uma coisa que tenho em mente. Mas a lista de coisas com as quais as regras de auditoria podem corresponder é bastante fina (nem mesmo sid, pgid ...). Talvez os do SELinux, mas não sei a primeira coisa sobre o SELinux. Talvez processar espaços de nome?
—
Stéphane Chazelas
talvez o pai mais alto possa estar em seu próprio grupo de processos? ( pt.wikipedia.org/wiki/Process_group )
—
Olivier Dulac 30/10
Eu pensei que talvez execute seu programa em um contêiner específico, se essa for uma opção para você. Se eu entendi corretamente esse tópico , isso deve funcionar com um kernel ≥3.13. Fora isso, não vejo outro método além do SELinux e do UID de auditoria . O AUID seria aplicável ao seu caso de uso?
—
Gilles 'SO- stop be evil'
strace -s
^^ mas depois vi quem estava perguntando e soube imediatamente "ele já sabia disso!") ... Stephane, você pode talvez: 1) crie a lista de pids usando a opção "tree" do ps, 2) execute auditctl (s) em todos os pids listados na árvore? (ou seja, você pode ter vários "pid = ...."? ou múltiplos auditctl, cada um em um?) ou a maneira "burra": auditctl tudo, e algum tipo de egrep no "pid | pid | pid" se eles aparecem em cada linha) (ressalva: eu não tenho acesso a linux atm, então eu não tenho idéia de como informações sobre aparecer)?