Sử dụng "ausearch" để thực hiện truy vấn các audit logs
Audit dùng để theo dõi các thông tin liên quan đến bảo mật trên hệ thống. Audit tạo ra các log để ghi lại thông tin về sự kiện diễn ra trên hệ thống như việc thay đổi cơ sở dữ liệu, việc sử dụng các cơ chế xác thực...
Hệ thống audit sẽ thu thập thông tin liên quan đến bảo mật dựa trên các quy tắc được cấu hình sẵn.
Trong bài viết này, Bizfly Cloud sẽ hướng dẫn bạn cách sử dụng công cụ ausearch để lấy dữ liệu từ các tệp nhật ký auditd trên RHEL và CentOS.
Công cụ "ausearch" là gì?
Ausearch là câu lệnh đơn giản được sử dụng để tìm kiếm các tập tin audit daemon log dựa trên các sự kiện và các tiêu chí tìm kiếm khác nhau như xác thực key, kiến trúc CPU, hostname… Ausearch cũng chấp nhận dữ liệu từ stdin.
Mặc định, ausearch sẽ truy vấn file /var/log/audit/audit.log, bạn có thể xem tập tin này giống như bất kỳ tập tin nào khác. File có dạng như sau:
Như bạn có thể thấy ở trên, có rất nhiều dữ liệu từ file log khiến bạn không thể biết được dữ liệu nào cần quan tâm. Đây chính là lúc chúng ta cần đến ausearch, công cụ giúp chúng ta tìm kiếm thông tin hiệu quả và dễ dàng hơn.
Cách sử dụng "ausearch"
Câu lệnh ausearch có cú pháp như sau:
#ausearch [option]
Kiểm tra các logs của tiến trình đang chạy
Sử dụng option -p và chỉ ra process ID để kiểm tra
#ausearch -p [Process ID]
Chúng ta hãy cùng thử kiểm tra logs của tiến trình có PID = 609 với câu lệnh:
#ausearch -p 609
Với câu lệnh này, tất cả các tiến trình có PID =609 sẽ được hiển thị
Kiểm tra các log về các sự kiện
Với ausearch, ta có thể tìm kiếm các log về từng loại sự kiện nhất định với option -m. Để xem các message có thể kiểm tra, ta sử dụng lệnh:
#ausearch -m
Câu lệnh sẽ hiển thị các message type có thể dùng với option -m.
Nếu muốn kiểm tra log tương ứng với message type được hỗ trợ, bạn có thể sử dụng lệnh
#ausearch -m [message_type]
Kiểm tra các lần đăng nhập thất bại
Ausearch có khả năng tìm kiếm các log về việc đăng nhập trên hệ thống của bạn. Để kiểm tra các lần đăng nhập thất bại bạn có thể sử dụng câu lệnh sau:
#ausearch -m USER_LOGIN --success no
-m: Tìm kiếm các log về 1 sự kiện nhất định
-sv (--success): Giá trị thành công của sự kiện, có 2 option yes và no
Tại đây hiển thị rõ thời gian, process id... của tất cả các lần đăng nhập thất bại
Tìm kiếm hoạt động của các user cụ thể
Chức năng -ua sẽ cho phép tìm kiếm tất cả các logs liên quan đến người dùng.
#ausearch -ua [username]
Tìm kiếm logs với khoảng thời gian nhất định
Với ausearch bạn có thể truy vấn các logs của người dùng trong khoảng thời gian nhất định.
-ts: để xác định thời gian bắt đầu
-te: để xác định thời gian kết thúc
Với option -ts và -te bắt buộc phải sử dụng thời gian định dạng 24h và có thể sử dụng các từ chỉ thời gian như now, recent, yesterday
#ausearch -ua root -ts yesterday -te now
Tìm kiếm các audit log của file
Trong ausearch hỗ trợ chức năng -f để tìm kiếm audit log của file cụ thể
#ausearch -f [File]
Tìm kiếm các audit log về key value
Sử dụng option -k để xem các log liên quan đến sự kiện hoặc sửa đổi dựa trên key string đã khai báo.
Dùng câu lệnh dưới đây để ghi lại tất cả log về việc truy cập và thay đổi file /etc/passwd
#auditctl -w /etc/passwd -p rwa -k passwd_changes_vccloud
Chúng ta hãy thử mở tệp /etc/passwd bằng 1 trình editor bất kỳ, chỉnh sửa và đóng tệp lại.
#vim /etc/passwd
Bây giờ hãy sử dụng option -k với key string đã khai báo để kiểm tra, key string ở đây là passwd_changes_vccloud
#ausearch -k passwd_changes_vccloud
Và đây là kết quả:
Trên đây là bài hướng dẫn sử dụng lệnh ausearch cơ bản để kiểm tra các audit log trong RHEL và CentOS.
Để biết thêm thông tin và cách sử dụng lệnh ausearch, hãy sử dụng man page:
#man ausearch
>> Tìm hiểu thêm: Tìm hiểu phương pháp Backup dữ liệu Offsite backup và Onsite backup