Sé que puedo ver los archivos abiertos de un proceso usando lsof
en ese momento en mi máquina Linux. Sin embargo, un proceso puede abrir, alterar y cerrar un archivo tan rápido que no podré verlo al monitorearlo utilizando scripts de shell estándar (por ejemplo watch
) como se explica en "monitorear archivos de proceso abiertos en Linux (en tiempo real)" .
Entonces, creo que estoy buscando una forma simple de auditar un proceso y ver qué ha hecho con el tiempo. Sería genial si también es posible ver qué conexiones de red hizo (intentó) y hacer que la auditoría comience antes de que el proceso tenga tiempo de ejecutarse sin que se inicie la auditoría.
Idealmente, me gustaría hacer esto:
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
¿Sería esto posible usar strace
algunas banderas para no ver todas las llamadas al sistema?