Bạn cần cấu hình auditd
để ghi lại execve
các sự kiện. Ví dụ về RHEL5:
[root@ditirlns01 ~]# auditctl -a always,entry -S execve
WARNING - 32/64 bit syscall mismatch, you should specify an arch
[root@ditirlns01 ~]#
Tôi bỏ qua cảnh báo vòm và nó dường như không quan trọng nhưng bạn có thể sử dụng -F arch=b64
hoặc -F arch=b32
đặt nó nếu bạn muốn.
Kết quả của những điều trên là:
[root@ditirlns01 ~]# ls /tmp/whatever
ls: /tmp/whatever: No such file or directory
[root@ditirlns01 ~]# grep whatever /var/log/audit/audit.log
type=EXECVE msg=audit(1386797915.232:5527206): argc=3 a0="ls" a1="--color=tty" a2="/tmp/whatever"
type=EXECVE msg=audit(1386797927.133:5527241): argc=3 a0="grep" a1="whatever" a2="/var/log/audit/audit.log"
[root@ditirlns01 ~]#
Điều đó rõ ràng nhanh chóng và bẩn thỉu nhưng đó là những điều cơ bản về cách bạn làm điều đó. Những gì bạn cần làm chính xác có lẽ phụ thuộc rất nhiều vào những gì bạn đang cố gắng làm chính xác. Bạn có thể giảm lưu lượng kiểm toán bằng nhiều bộ lọc khác nhau trong auditctl
lệnh nhưng tôi không biết bất kỳ thông tin nào trong số đó vì vậy tôi không biết nên bao gồm những gì. Nếu bạn cần một cái gì đó cụ thể hơn, tôi khuyên bạn nên kiểm tra trang nam hoặc đăng bình luận cho câu trả lời này và tôi sẽ cập nhật thêm.
Hy vọng rằng sẽ giúp đẩy bạn đi đúng hướng.
BIÊN TẬP:
Vì câu hỏi của bạn liên quan đến việc xem xét một người dùng cụ thể, tôi có thể cho bạn thấy rằng:
[root@ditirlns01 ~]# auditctl -a always,entry -S execve -F euid=16777216
WARNING - 32/64 bit syscall mismatch, you should specify an arch
Giống hệt như trên, nhưng chỉ execve
bởi ai đó đang chạy với ID người dùng hiệu quả 16777216
mới được đăng nhập. Nếu bạn cần chỉ định loginuid
giá trị của người dùng (người đầu tiên họ đăng nhập vào hệ thống) thì bạn sẽ lọc bằng cách auid
thay thế:
[root@ditirlns01 ~]# auditctl -a always,entry -S execve -F auid=16777216
WARNING - 32/64 bit syscall mismatch, you should specify an arch
Các bộ lọc AUID / loginuid sẽ hữu ích, ví dụ nếu người dùng sẽ thực hiện su
hoặc sudo
root. Trong tình huống đó, sẽ có rất nhiều công cụ chạy bằng root, nhưng bạn chỉ quan tâm đến những thứ bị người dùng khởi động trong câu hỏi. auditctl
cũng cho phép bạn xếp các bộ lọc để bạn có thể lọc theo cả hai euid
và auid
:
[root@ditirlns01 ~]# auditctl -a always,entry -S execve -F auid=16777216 -F euid=0
WARNING - 32/64 bit syscall mismatch, you should specify an arch
[root@ditirlns01 ~]# ls /tmp/nashly -ltar
ls: /tmp/nashly: No such file or directory
[root@ditirlns01 ~]# grep nashly /var/log/audit/audit.log
type=EXECVE msg=audit(1386798635.199:5529285): argc=4 a0="ls" a1="--color=tty" a2="/tmp/nashly" a3="-ltar"
type=EXECVE msg=audit(1386798646.048:5529286): argc=3 a0="grep" a1="nashly" a2="/var/log/audit/audit.log"