CHƯƠNG 2 THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG
2.2 Cấu hình nguồn logs trên Windows và Linux
2.2.4 Cấu hình dịch vụ Auditd
Dịch vụ auditd là dịch vụ được cài dặt trên hầu hết các bản phân phối linux cho phép ghi bổ sung thêm một số logs cần thiết phục vụ quá trình giám sát an toàn cho máy chủ linux. Dựa trên tài liệu cấu hình rules theo các chiến thuật tấn công trong MITRE ATT&CK cho Linux của ScienceSoft [21], em đề xuất xây dựng tệp cấu hình audit.rules mới cho phép ghi nhận thêm một số logs liên quan đến các hành vi nghi ngờ tấn công trên linux, đồng thời lọc một số logs không cần thiết gây tốn tài nguyên hệ thống.
Ví dụ, luật bên dưới sẽ lọc các bản ghi liên quan đến kết nối của VMware Tools, một tiện ích được cài đặt trên hầu hết các máy chủ triển khai trên nền tảng ảo hoá của VMware.
## Ignore VMWare Tools
-a exit,never -F arch=b32 -S fork -F success=0 -F path=/usr/lib/vmware-tools - F subj_type=initrc_t -F exit=-2
-a exit,never -F arch=b64 -S fork -F success=0 -F path=/usr/lib/vmware-tools - F subj_type=initrc_t -F exit=-2
-a exit,never -F arch=b32 -S bind -F success=1 -F path=/usr/bin/vmtoolsd -F auid=unset -F subj_type=vmtools_t
-a exit,never -F arch=b64 -S bind -F success=1 -F path=/usr/bin/vmtoolsd -F auid=unset -F subj_type=vmtools_t
Cấu hình luật này cho phép loại bỏ các bản ghi PROCTITLE chứa thông tin đầy đủ về lệnh đã kích hoạt một lời gọi hệ thống tới kernel. Các bản tin này thường được mã hoá dạng hexa và không có nhiều ý nghĩa trong việc giám sát an toàn cho máy chủ.
Trong tệp cấu hình audit.rules, em cũng phân loại các luật theo từng kỹ thuật tấn công, đồng thời kiểm tra, bổ sung thêm các điều kiện cho phép tệp cấu hình audit.rules có thể hoạt động tốt trên nhiều nền tảng Linux từ Ubuntu, CentOS cho đến RHEL. Ví dụ, để phát hiện các hành vi tấn công theo kỹ thuật T1002 - Data Compressed của MITRE, nay là T1560 - Archive Collected Data, ta cần giám sát hành vi thực thi của các tiện ích tar, gzip, zip, unzip.
# T1002.Data Compressed
-w /usr/bin/tar -p x -k data-compressed -w /usr/bin/gzip -p x -k data-compressed
61
-w /usr/bin/zip -p x -k data-compressed -w /usr/bin/unzip -p x -k data-compressed
Trong tệp này cũng bao gồm một số luật có thể sinh nhiều logs, cần cân nhắc trong quá trình cấu hình. Ví dụ luật sau sẽ ghi lại toàn bộ các tiến trình được thực thi, toàn bộ các kết nối mạng thành công trên hệ thống, từ đó cho phép phát hiện các tiến trình lạ, các kết nối nghi ngờ của kẻ tấn công.
# T1059.Command-Line Interface
-a exit,always -F arch=b32 -S execve -k cmd-interface -a exit,always -F arch=b64 -S execve -k cmd-interface # Get all conection,
-a always,exit -F arch=b32 -S connect -F success=1 -k network-conection -a always,exit -F arch=b64 -S connect -F success=1 -k network-conection -a always,exit -F arch=b32 -S bind -F success=1 -k network-conection -a always,exit -F arch=b64 -S bind -F success=1 -k network-conection
Khi xây dựng tập luật trong tệp audit.rules, cần chú ý sắp xếp thứ tự của chúng, đảm bảo không bị trùng lặp và các bộ lọc để whitelist một số tác vụ hợp lệ của hệ thống nên sắp xếp phía trên đầu của tệp để đảm bảo tập luật hoạt động hiệu quả.
Trong tệp cấu hình auditd.conf, cần thiết lập định dạng log_format từ RAW sang ENRICHED để chuyển đổi một số mã định danh trong logs thu được từ dạng số sang dạng đối tượng tương ứng. Ví dụ sau khi cấu hình, ta sẽ thu được logs có định dạng như bên dưới. Các giá trị arch đã chuyển đổi từ c000003e sang x86_64 cho biết kiến trúc của hệ thống. Giá trị uid cũng được chuyển đổi từ 0 sang root cho biết tài khoản thực thi lệnh.
type=SYSCALL msg=audit(1631899310.780:413): arch=c000003e syscall=2 success=yes exit=3 a0=7ffffcb75704 a1=0 a2=1fffffffffff0000 a3=7ffffcb73160 items=1 ppid=10435 pid=11155 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=6 comm="cat" exe="/usr/bin/cat" subj=unconfined_u:unconfined_r:unconfined_t:s0- s0:c0.c1023 key="TT1087_Account_Discovery"ARCH=x86_64 SYSCALL=open AUID="root" UID="root" GID="root" EUID="root" SUID="root" FSUID="root" EGID="root" SGID="root" FSGID="root"
Ngoài ra, cần thiết lập dịch vụ auditd khởi động cùng hệ thống để đảm bảo dịch vụ audit luôn sinh logs, ngay cả khi máy chủ bị khởi động lại.
62