Eu sei que posso visualizar os arquivos abertos de um processo usando lsof
naquele momento na minha máquina Linux. No entanto, um processo pode abrir, alterar e fechar um arquivo tão rapidamente que não poderei vê-lo ao monitorá-lo usando scripts de shell padrão (por exemplo, watch
como explicado em "monitorar arquivos de processos abertos no linux (tempo real)" .
Então, acho que estou procurando uma maneira simples de auditar um processo e ver o que ele fez ao longo do tempo. Seria ótimo se também fosse possível ver quais conexões de rede (tentou) fazer e iniciar a auditoria antes que o processo tivesse tempo de executar sem que a auditoria fosse iniciada.
Idealmente, eu gostaria de fazer isso:
sh $ audit-lsof /path/to/executable
4530.848254 OPEN read /etc/myconfig
4530.848260 OPEN write /var/log/mylog.log
4540.345986 OPEN read /home/gert/.ssh/id_rsa <-- suspicious
4540.650345 OPEN socket TCP ::1:34895 -> 1.2.3.4:80 |
[...]
4541.023485 CLOSE /home/gert/.ssh/id_rsa <-- would have missed
4541.023485 CLOSE socket TCP ::1:34895 -> 1.2.3.4:80 | this when polling
Isso seria possível usando strace
alguns sinalizadores para não ver todas as chamadas do sistema?