Я знаю, що можу переглядати відкриті файли процесу, використовуючи lsof
в цей момент час на моїй машині Linux. Однак процес може відкривати, змінювати та закривати файл настільки швидко, що я не зможу його побачити під час моніторингу за допомогою стандартного сценарію оболонки (наприклад watch
), як це пояснено у "моніторі відкритих файлів процесів у Linux (у режимі реального часу)" .
Отже, я думаю, що я шукаю простий спосіб аудиту процесу і бачу, що він зробив за минулий час. Було б чудово, якби також можна було побачити, які мережеві з'єднання це (спробувало) здійснити, і запустити аудит до того, як процес отримав час для запуску без проведення аудиту.
В ідеалі я хотів би зробити це:
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
Чи можливо це зробити за допомогою strace
деяких прапорів, щоб не бачити кожен системний виклик?