Tôi biết rằng tôi có thể xem các tệp đang mở của một quy trình bằng cách sử dụng lsof
tại thời điểm đó trên máy Linux của mình. Tuy nhiên, một quy trình có thể mở, thay đổi và đóng tệp nhanh đến mức tôi sẽ không thể nhìn thấy tệp đó khi theo dõi bằng cách sử dụng tập lệnh shell tiêu chuẩn (ví dụ watch
) như được giải thích trong "giám sát tệp quy trình mở trên linux (thời gian thực)" .
Vì vậy, tôi nghĩ rằng tôi đang tìm kiếm một cách đơn giản để kiểm tra một quy trình và xem những gì nó đã làm trong suốt thời gian qua. Sẽ thật tuyệt nếu bạn cũng có thể thấy những kết nối mạng mà nó (đã cố gắng) thực hiện và bắt đầu kiểm toán trước khi quá trình có thời gian để chạy mà không bắt đầu kiểm toán.
Lý tưởng nhất, tôi muốn làm điều này:
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
Điều này có thể được sử dụng strace
và một số cờ để không nhìn thấy mọi cuộc gọi hệ thống?