Sử dụng tool “Auditd” để giám sát hoạt động User trên Ubuntu Server

Auditd là gì?

Một trong những chương trình audit phổ biến thường được sử dụng trên RHEL / CentOS Linux là auditd. ĐâyNó là một phương tiện để theo dõi các thông tin liên quan đến an ninh trên một hệ thống.: Aauditd sử dụng các quy tắc được cấu hình từ trước để thu thập một lượng lớn thông tin về các sự kiện đang xảy ra trên hệ thống và ghi lại chúng dưới dạng log.

Nó có thể ghi lại các thông tin như ngày và thời gian, kiểu event và kết quả của event; user gây ra event, bất kỳ sửa đổi nào được thực hiện cho các tập tin /cơ sở dữ liệu, các event sử dụng các cơ chế xác thực hệ thống, chẳng hạn như PAM, LDAP, SSH và các loại khác.

Auditd cũng theo dõi bất kỳ thay đổi nào được thực hiện đối với các tệp tin audit config hoặc bất kỳ truy cập nào vào audit log và bất kỳ nỗ lực nào để nhập hoặc xuất thông tin từ hệ thống cùng với rất nhiều thông tin liên quan đến an ninh khác.

Tại sao hệ thống audit trên Linux lại quan trọng?

  • Tự chủ do không phải chạy bất cứ chương trình hay tiến trình nào từ bên ngoài hệ thống.
  • Cho phép bạn xem bất kỳ hoạt động nào của hệ thống mà bạn muốn
  • Hỗ trợ việc phát hiện hoặc phân tích những nguy cơ tiềm ẩn của một hệ thống
  • Có khả năng hoạt động như một hệ thống IDS
  • Có thể làm việc với hệ thống IDS để cho phép phát hiện xâm nhập.
  • Là một công cụ quan trọng trong forensics

Các thành phần trong hệ thống Linux audit

Hệ thống audit có 2 thành phần chính,đó là:

  • user-space applications và các tiện ích/công cụ
  • Hệ thống xử lý ở kernel-side –chấp nhận các yêu cầu từ các user-space applications và chuyển chúng qua ba loại bộ lọc, cụ thể: user, task, exit hoặc exclude.

Phần quan trọng nhất là user-space audit daemon (auditd) thu thập thông tin dựa trên các quy tắc được cấu hình từ trước, từ kernel và tạo ra các thông tin trong audit log: đường dẫn mặc định là /var/log/audit/audit.log.

Ngoài ra, audispd (là một daemon gửi đi các audit) là một multiplexor tương tác với auditd và gửi sự kiện đến các chương trình khác mà muốn thực hiện xử lý event theo thời gian thực.

Sau đây là 1 số công cụ mà user-space sử dụng cho quản lý và truy xuất thông tin từ hệ thống audit:

  • auditctl – 1 tiện ích để kiểm soát hệ thống kernel audit
  • ausearch – 1 tiện ích cho việc tìm kiếm các audit log với các event đặc biệt.
  • aureport – 1 tiện ích để tạo các báo cáo về sự kiện được ghi lại.

Dưới đây là cách cài đặt chương trình “auditd” và các biện pháp bảo mật tốt nhất cũng như các cài đặt được đề xuất cho việc kiểm tra hệ thống.

1. Cài đặt auditd

a. Xác minh xem gói đã được cài đặt hay chưa bằng lệnh dpkg

dpkg -s auditd audispd-plugins

b. Nếu chưa được cài đặt, bạn sẽ thấy thông báo như “dpkg-query: package ‘auditd’ is not installed and no information is available”

apt install auditd audispd-plugins

2. Enable the auditd

systemctl –now enable auditd

để xác minh, nếu được bật, hãy sử dụng lệnh này:

systemctl is-enabled auditd

3. Đặt tham số trên bootloader để bật trong khi khởi động

trong /etc/default/grub, thêm “audit=1

Trước:
GRUB_CMDLINE_LINUX=””

Sau đó:

GRUB_CMDLINE_LINUX=”audit=1″

Để cập nhật cấu hình grub2, hãy chạy lệnh này:

update-grub

4. Cấu hình auditd’s backlog limit

Cài đặt mặc định là 64 records, nên có 8192 hoặc lớn hơn. Trên /etc/default/grub của bạn, hãy thêm:

Cú pháp:
Audit_backlog_limit=<SIZE của BACKLOG>

GRUB_CMDLINE_LINUX=”audit_backlog_limit=8192″

Để cập nhật cấu hình grub2, hãy chạy lệnh này:

update-grub

5. Cấu hình để giữ logs khi đạt kích thước tệp tối đa

Trong /etc/audit/auditd.conf, đặt hành động tệp nhật ký tối đa để giữ nhật ký.

max_log_file_action = keep_logs

6. Định cấu hình kích thước tệp nhật ký của Auditd

Log sẽ được xoay khi đạt đến kích thước tối đa được đặt trong cấu hình. Kích thước mặc định là 6 MB và nên điều chỉnh sang kích thước lớn hơn nếu hệ thống có dung lượng đĩa trống.

Chỉnh sửa tệp /etc/audit/auditd.conf và đặt max log file:

max_log_file = <XX MB>

7. Tạo một số quy tắc dựa trên yêu cầu của bạn.

Dưới đây là một số tham số được khuyến nghị sử dụng để có môi trường an toàn hơn

Tạo các rules trong thư mục /etc/audit/rules.d/

a. Tạo time-change rules để đảm bảo các sự kiện được thu thập vào đúng ngày hoặc giờ. Quy tắc mẫu như sau:

Tạo tệp /etc/audit/rules.d/time.rules với nội dung sau:

-a always,exit -F arch=b64 -S adjtimex -S settimeofday -k time-change
-a always,exit -F arch=b32 -S adjtimex -S settimeofday -S stime -k time-change
-a always,exit -F arch=b64 -S clock_settime -k time-change
-a always,exit -F arch=b32 -S clock_settime -k time-change -w /etc/localtime -p wa -k time-change

b. Tạo system-locale rules để ghi lại các thay đổi đối với network files hoặc system calls

Tạo các rules trong thư mục /etc/audit/rules.d/

Tạo tệp /etc/audit/rules.d/system-locale.rules với nội dung sau:

Đối với hệ thống 32-bit:

-a luôn,exit -F Arch=b32 -S sethostname -S setdomainname -k system-locale
-w /etc/issue -p wa -k system-locale
-w /etc/issue.net -p wa -k system- miền địa phương
-w /etc/hosts -p
wa -k system-locale -w /etc/network -p wa -k system-locale

Đối với hệ thống 64-bit:

-a always,exit -F arch=b64 -S sethostname -S setdomainname -k system-locale
-a always,exit -F arch=b32 -S sethostname -S setdomainname -k system-locale
-w /etc/issue -p wa -k system-locale
-w /etc/issue.net -p wa -k system-locale
-w /etc/hosts -p wa -k system-locale
-w /etc/network -p wa -k system-locale

c. Tạo identity rules để ghi lại thông tin liên quan đến người dùng, ví dụ: username, passwords, group

Tạo các rules trong thư mục /etc/audit/rules.d/

Tạo tệp /etc/audit/rules.d/identity.rules với nội dung sau:

-w /etc/group -p wa -k identity
-w /etc/passwd -p wa -k identity
-w /etc/gshadow -p wa -k identity
-w /etc/shadow -p wa -k identity
-w /etc/security/opasswd -p wa -k identity

d. Tạo login rules để ghi lại các sự kiện đăng nhập và đăng xuất.

Tạo các rules trong thư mục /etc/audit/rules.d/

Tạo tệp /etc/audit/rules.d/logins.rules với nội dung sau:

-w /var/log/faillog -p wa -k logins
-w /var/log/lastlog -p wa -k logins
-w /var/log/tallylog -p wa -k logins

e. Tạo permission mode rules để theo dõi các thuộc tính file attributes, ownership và thay đổi quyền

Tạo các rules trong thư mục /etc/audit/rules.d/

Tạo tệp /etc/audit/rules.d/permissions.rules với nội dung sau:

Đối với hệ thống 32-bit:

-a always,exit -F arch=b32 -S chmod -S fchmod -S fchmodat -F auid>=1000 -F auid!=4294967295 -k perm_mod
-a always,exit -F arch=b32 -S chown -S fchown -S fchownat -S lchown -F auid>=1000 -F auid!=4294967295 -k perm_mod
-a always,exit -F arch=b32 -S setxattr -S lsetxattr -S fsetxattr -S removexattr -S lremovexattr -S fremovexattr -F auid>=1000 -F auid!=4294967295
-k perm_mod

Đối với hệ thống 64-bit:

-a always,exit -F arch=b64 -S chmod -S fchmod -S fchmodat -F auid>=1000 -F auid!=4294967295 -k perm_mod
-a always,exit -F arch=b32 -S chmod -S fchmod -S fchmodat -F auid>=1000 -F auid!=4294967295 -k perm_mod
-a always,exit -F arch=b64 -S chown -S fchown -S fchownat -S lchown -F auid>=1000 -F auid!=4294967295 -k perm_mod
-a always,exit -F arch=b32 -S chown -S fchown -S fchownat -S lchown -F auid>=1000 -F auid!=4294967295 -k perm_mod
-a always,exit -F arch=b64 -S setxattr -S lsetxattr -S fsetxattr -S removexattr -S lremovexattr -S fremovexattr -F auid>=1000 -F auid!=4294967295
-k perm_mod
-a always,exit -F arch=b32 -S setxattr -S lsetxattr -S fsetxattr -S removexattr -S lremovexattr -S fremovexattr -F auid>=1000 -F auid!=4294967295
-k perm_mod

f. Tạo file-change rules để theo dõi việc đổi tên hoặc xóa tệp.

Tạo các rules trong thư mục /etc/audit/rules.d/

Tạo tệp /etc/audit/rules.d/file-change.rules với nội dung sau:

Đối với hệ thống 32-bit:

-a always,exit -F arch=b32 -S unlink -S unlinkat -S rename -S renameat -F auid>=1000 -F auid!=4294967295 -k delete

Đối với hệ thống 64-bit:

-a always,exit -F arch=b64 -S unlink -S unlinkat -S rename -S renameat -F auid>=1000 -F auid!=4294967295 -k delete
-a always,exit -F arch=b32 -S unlink -S unlinkat -S rename -S renameat -F auid>=1000 -F auid!=4294967295 -k delete

g. Tạo scope rules để theo dõi các thay đổi phạm vi, đặc biệt là tệp /etc/sudoers

Tạo các quy tắc trong thư mục /etc/audit/rules.d/

Tạo tệp /etc/audit/rules.d/scope.rules với nội dung sau:

-w /etc/sudoers -p wa -k scope
-w /etc/sudoers.d/ -p wa -k scope

h. Tạo sudo rules để giám sát quản trị viên với các đặc quyền nâng cao tạm thời

Tạo các quy tắc trong thư mục /etc/audit/rules.d/

Tạo tệp /etc/audit/rules.d/sudo.rules với nội dung sau:

Đối với hệ thống 32-bit:

-a exit,always -F arch=b32 -C euid!=uid -F euid=0 -Fauid>=1000 -F auid!=4294967295 -S execve -k actions

Đối với hệ thống 64-bit:

-a always,exit -F arch=b64 -C euid!=uid -F euid=0 -Fauid>=1000 -F auid!=4294967295 -S execve -k actions
-a always,exit -F arch=b32 -C euid!=uid -F euid=0 -Fauid>=1000 -F auid!=4294967295 -S execve -k actions

i. Tạo các modules rules để giám sát mọi hoạt động tải và unloading của kernel modules bằng cách sử dụng các lệnh insmod,rmmod hoặc modprobe.

Tạo các rules trong thư mục /etc/audit/rules.d/

Tạo tệp /etc/audit/rules.d/modules.rules với nội dung sau:

Đối với hệ thống 32-bit:

-w /sbin/insmod -p x -k modules
-w /sbin/rmmod -p x -k modules
-w /sbin/modprobe -p x -k modules
-a always,exit -F arch=b32 -S init_module -S delete_module -k modules

Đối với hệ thống 64-bit:

-w /sbin/insmod -p x -k modules
-w /sbin/rmmod -p x -k modules
-w /sbin/modprobe -p x -k modules
-a always,exit -F arch=b64 -S init_module -S delete_module -k modules

Lưu ý: Để các thay đổi có hiệu lực, cần tải lại cấu hình hoặc khởi động lại hệ thống

Tùy chọn:
-l (audctl -l) -> Liệt kê tất cả các quy tắc 1 trên mỗi dòng
-e [0,1,2] (audtictl -e) trong đó:
0 = tạm thời vô hiệu hóa kiểm tra
1= bật kiểm tra
2 = khóa cấu hình kiểm tra

Ví dụ:

tux@freelinux:~$ sudo auditctl -e 1 /etc/audit/rules.d/logins.rules
[sudo] password for tux:
parameter passed without an option given

Nếu quy tắc được kích hoạt, bạn có thể xem từ tệp /var/log/audit/audit.log của mình

type=USER_LOGIN msg=audit(1618394064.654:214583): pid=7256 uid=0 auid=1001 ses=55349 msg=’op=login id=1001 exe=”/usr/sbin/sshd” hostname=192.168.10.105 addr=192.168.10.105 terminal=/dev/pts/9 res=success’

Related Posts

Leave a Reply

Your email address will not be published. Required fields are marked *