Chuyển tới nội dung chính

Giám Sát An Ninh Hiệu Quả với Audit Log

Giới Thiệu

Trong bối cảnh các mối đe dọa mạng ngày càng tinh vi, việc hiểu rõ những gì đang xảy ra trong hệ thống của bạn là yếu tố then chốt để duy trì an ninh. Audit Log (nhật ký kiểm tra) là các bản ghi chi tiết về các sự kiện quan trọng diễn ra trên một hệ thống, ứng dụng hoặc mạng. Chúng ghi lại "ai đã làm gì, khi nào, ở đâu và kết quả ra sao".

Security Monitoring (giám sát an ninh) là quá trình liên tục thu thập, phân tích và đánh giá các audit log cùng các dữ liệu liên quan để phát hiện các hoạt động bất thường, các mối đe dọa tiềm ẩn hoặc các sự cố an ninh. Bằng cách kết hợp audit log với giám sát an ninh, tổ chức có thể nhanh chóng phát hiện các cuộc tấn công, tuân thủ các quy định và thực hiện phân tích pháp y (forensic analysis) sau sự cố.

Bài viết này sẽ hướng dẫn bạn cách thiết lập và sử dụng audit log để tăng cường khả năng giám sát an ninh cho hệ thống của mình.

📋 Thời gian: 25 phút | Độ khó: Trung bình

Yêu Cầu

Để thực hiện các bước trong hướng dẫn này, bạn cần:

  • Kiến thức cơ bản về hệ điều hành Linux (hoặc Windows nếu bạn muốn tìm hiểu thêm về Event Viewer).
  • Hiểu biết về các khái niệm bảo mật mạng cơ bản.
  • Quyền truy cập quản trị (root/administrator) trên một hệ thống thử nghiệm hoặc máy ảo.

Các Bước Thực Hiện

Bước 1: Hiểu về Audit Log và Vai trò của chúng

Audit log là xương sống của mọi chiến lược giám sát an ninh hiệu quả. Chúng cung cấp cái nhìn sâu sắc về các hoạt động diễn ra trong môi trường của bạn.

  • Các loại Audit Log chính:
    • Hệ thống (OS Logs): Ghi lại các sự kiện cấp hệ điều hành như đăng nhập, thay đổi quyền, khởi động/tắt máy, truy cập file. Ví dụ: /var/log/audit/audit.log trên Linux, Event Viewer trên Windows.
    • Ứng dụng (Application Logs): Ghi lại các sự kiện cụ thể của ứng dụng như đăng nhập người dùng, giao dịch, lỗi, thay đổi cấu hình.
    • Mạng (Network Logs): Ghi lại lưu lượng truy cập mạng, kết nối, sự kiện từ firewall, IDS/IPS.
  • Thông tin quan trọng trong Audit Log:
    • Ai: User ID, IP nguồn.
    • Làm gì: Hành động được thực hiện (đăng nhập, sửa file, thực thi lệnh).
    • Khi nào: Dấu thời gian (timestamp).
    • Ở đâu: Hệ thống, ứng dụng, địa chỉ IP đích.
    • Kết quả: Thành công hay thất bại.

💡 Mẹo: Xác định các tài sản quan trọng và dữ liệu nhạy cảm trong hệ thống của bạn trước để biết cần giám sát những gì.

Bước 2: Cấu hình và Thu thập Audit Log

Để minh họa, chúng ta sẽ tập trung vào auditd trên Linux, một hệ thống con kiểm tra mạnh mẽ của nhân Linux.

# Cài đặt auditd trên Debian/Ubuntu
sudo apt update
sudo apt install auditd audispd-plugins

# Cài đặt auditd trên CentOS/RHEL
sudo yum install audit audit-libs

# Khởi động và cấu hình auditd để chạy cùng hệ thống
sudo systemctl enable auditd
sudo systemctl start auditd

# Thêm các quy tắc giám sát cơ bản
# Quy tắc 1: Giám sát mọi truy cập (ghi, đọc, thực thi, thuộc tính) vào file /etc/shadow
# Đây là file chứa mật khẩu đã hash, rất nhạy cảm.
sudo auditctl -w /etc/shadow -p war -k shadow_access
# -w: Giám sát file hoặc thư mục
# -p war: w (write - ghi), a (attribute - thay đổi thuộc tính), r (read - đọc)
# -k shadow_access: Gán một khóa (key) để dễ dàng tìm kiếm sau này

# Quy tắc 2: Giám sát các lệnh thực thi với quyền root (euid=0)
# Phát hiện các hoạt động đặc quyền bất thường
sudo auditctl -a always,exit -F arch=b64 -S execve -F euid=0 -k root_commands
# -a always,exit: Luôn ghi log khi lệnh thoát
# -F arch=b64: Chỉ định kiến trúc hệ thống (64-bit)
# -S execve: Giám sát lệnh thực thi
# -F euid=0: Giám sát các sự kiện từ effective user ID là 0 (root)

# Để các quy tắc này tồn tại sau khi khởi động lại, bạn cần lưu chúng.
# Chỉnh sửa file /etc/audit/rules.d/audit.rules (hoặc tạo một file mới, ví dụ: my_rules.rules)
# Thêm các dòng sau vào cuối file:
# -w /etc/shadow -p war -k shadow_access
# -a always,exit -F arch=b64 -S execve -F euid=0 -k root_commands
# -D # Xóa tất cả các quy tắc hiện có trước khi tải lại (đảm bảo sạch sẽ)
# -f 2 # Nếu auditd thất bại, chuyển sang chế độ khẩn cấp (panic)

# Áp dụng các quy tắc đã lưu
sudo augenrules --load

# Kiểm tra trạng thái của auditd và các quy tắc đã tải
sudo auditctl -l

⚠️ Cảnh báo: Việc cấu hình quá nhiều quy tắc có thể tạo ra lượng log khổng lồ, ảnh hưởng đến hiệu suất hệ thống và dung lượng lưu trữ. Hãy cân nhắc kỹ lưỡng.

Bước 3: Lưu trữ và Bảo mật Log

Việc thu thập log là chưa đủ nếu chúng không được lưu trữ an toàn.

  • Lưu trữ tập trung: Gửi log từ nhiều hệ thống về một máy chủ log tập trung (ví dụ: Rsyslog, Splunk, ELK Stack, Graylog). Điều này giúp dễ dàng phân tích và bảo vệ log khỏi bị giả mạo nếu hệ thống gốc bị xâm nhập.
  • Tính toàn vẹn: Đảm bảo log không bị thay đổi. Sử dụng các cơ chế như hashing, chữ ký số hoặc lưu trữ WORM (Write Once Read Many).
  • Chính sách lưu giữ (Retention Policy): Xác định thời gian lưu trữ log theo yêu cầu pháp lý hoặc nội bộ. Đảm bảo có cơ chế xoay vòng log (log rotation) để tránh đầy đĩa.
  • Kiểm soát truy cập: Chỉ cấp quyền truy cập log cho những người và hệ thống cần thiết.

Bước 4: Phân tích và Giám sát Log

Sau khi log được thu thập, bước tiếp theo là phân tích chúng để phát hiện các sự kiện an ninh.

# Xem các sự kiện trong log auditd
# Mặc định log auditd nằm ở /var/log/audit/audit.log
sudo tail -f /var/log/audit/audit.log

# Tìm kiếm các sự kiện liên quan đến khóa "shadow_access"
sudo ausearch -k shadow_access

# Tìm kiếm các sự kiện đăng nhập thất bại (kết quả "no")
sudo ausearch -m USER_LOGIN,USER_AUTH -sv no

# Tìm kiếm các lệnh thực thi với quyền root
sudo ausearch -k root_commands

# Tìm kiếm các sự kiện trong một khoảng thời gian cụ thể (ví dụ: từ 9h sáng đến 10h sáng hôm nay)
sudo ausearch -ts today 09:00:00 -te today 10:00:00
  • Giám sát thủ công: Với hệ thống nhỏ, bộn có thể xem xét log định kỳ. Tuy nhiên, điều này không hiệu quả với quy mô lớn.
  • Công cụ tự động hóa:
    • Log Aggregators: Tập hợp log từ nhiều nguồn.
    • SIEM (Security Information and Event Management): Là giải pháp toàn diện giúp thu thập, lưu trữ, chuẩn hóa, phân tích và tương quan các sự kiện an ninh từ nhiều nguồn khác nhau. SIEM có thể phát hiện các mối đe dọa phức tạp bằng cách liên kết các sự kiện tưởng chừng không liên quan.
    • SOAR (Security Orchestration, Automation and Response): Đi xa hơn SIEM bằng cách tự động hóa phản ứng với các sự cố.

Thành công: Một hệ thống giám sát hiệu quả không chỉ thu thập log mà còn có khả năng cảnh báo kịp thời khi có sự kiện bất thường.

Bước 5: Xây dựng Kịch bản Giám sát Cơ bản

Dưới đây là một số kịch bản phổ biến mà bạn nên giám sát:

  • Đăng nhập thất bại lặp lại: Có thể là dấu hiệu của tấn công vét cạn (brute-force).
  • Thay đổi quyền hoặc cấu hình quan trọng: Bất kỳ thay đổi nào đối với file hệ thống nhạy cảm (như /etc/passwd, /etc/shadow, /etc/sudoers) hoặc cấu hình firewall.
  • Truy cập file/thư mục nhạy cảm: Ai đó truy cập vào các thư mục chứa dữ liệu mật.
  • Hoạt động của tài khoản đặc quyền: Mọi hành động của tài khoản root hoặc administrator cần được giám sát chặt chẽ.
  • Tạo tài khoản người dùng mới hoặc thay đổi nhóm: Có thể là dấu hiệu của việc kẻ tấn công đang cố gắng thiết lập quyền truy cập liên tục.
  • Khởi động/Dừng dịch vụ quan trọng: Bất kỳ dịch vụ nào bị dừng hoặc khởi động lại một cách bất thường.

Troubleshooting

  • Log quá tải/Đầy đĩa:
    • Nguyên nhân: Quá nhiều quy tắc ghi log, không có chính sách xoay vòng log.
    • Xử lý: Tinh chỉnh quy tắc audit để chỉ ghi log các sự kiện quan trọng. Cấu hình logrotate cho các file log hoặc điều chỉnh cài đặt max_log_filenum_logs trong /etc/audit/auditd.conf của auditd. Tăng dung lượng lưu trữ.
  • Khó khăn trong việc phân tích log:
    • Nguyên nhân: Dữ liệu log thô khó đọc, thiếu công cụ phân tích.
    • Xử lý: Sử dụng các công cụ phân tích log chuyên dụng như ausearch, journalctl (Linux), hoặc triển khai một giải pháp SIEM để tập trung và chuẩn hóa log.
  • False Positives (Cảnh báo sai):
    • Nguyên nhân: Quy tắc giám sát quá rộng, không phân biệt được hoạt động hợp lệ với bất thường.
    • Xử lý: Tinh chỉnh các quy tắc và ngưỡng cảnh báo. Đôi khi cần loại trừ các hoạt động hợp lệ của hệ thống hoặc người dùng cụ thể.
  • Log bị giả mạo hoặc xóa:
    • Nguyên nhân: Kẻ tấn công xóa log để che dấu vết.
    • Xử lý: Gửi log đến một máy chủ log tập trung (log server) ngay lập tức (real-time) và đảm bảo máy chủ log được bảo mật nghiêm ngặt. Sử dụng tính năng hashing hoặc chữ ký số để kiểm tra tính toàn vẹn của log.

Kết Luận

Audit log và Security Monitoring là những thành phần không thể thiếu trong chiến lược bảo mật của mọi tổ chức. Chúng cung cấp khả năng hiển thị cần thiết để phát hiện, phân tích và ứng phó với các mối đe dọa an ninh mạng một cách kịp thời.

Best Practices (Thực hành tốt nhất):

  • Thu thập toàn diện: Đảm bảo bạn thu thập log từ tất cả các nguồn quan trọng (hệ điều hành, ứng dụng, mạng, thiết bị bảo mật).
  • Lưu trữ an toàn: Tập trung log, đảm bảo tính toàn vẹn và có chính sách lưu giữ rõ ràng.
  • Phân tích tự động: Sử dụng các giải pháp SIEM để tự động hóa việc phân tích, tương quan sự kiện và tạo cảnh báo.
  • Kiểm tra và cập nhật định kỳ: Thường xuyên xem xét các quy tắc audit và kịch bản giám sát để đảm bảo chúng vẫn phù hợp với môi trường và các mối đe dọa mới.
  • Tích hợp vào quy trình ứng phó sự cố: Đảm bảo rằng các cảnh báo từ hệ thống giám sát được tích hợp vào quy trình ứng phó sự cố của bạn để có thể hành động nhanh chóng.
  • Đào tạo nhân sự: Đảm bảo đội ngũ an ninh có đủ kiến thức và kỹ năng để làm việc với audit log và các công cụ giám sát.

Bằng cách áp dụng các nguyên tắc này, bạn sẽ xây dựng được một hàng rào phòng thủ mạnh mẽ, giúp bảo vệ tài sản số của mình khỏi các cuộc tấn công ngày càng tinh vi.