I. MÔ TẢ YÊU CẦU CỦA BÀI LAB
1.1. Mô tả sơ bộ bài lab
Bài lab tập trung vào việc xây dựng một hệ thống báo cáo tuân thủ theo các tiêu chuẩn PCI DSS và ISO 27001 bằng cách sử dụng OpenSearch. Mục tiêu là đảm bảo dữ liệu log được lưu trữ đủ thời gian quy định, có dashboard giám sát các hoạt động truy cập, thay đổi và xác thực, đồng thời tự động gửi báo cáo định kỳ qua email.
Thiết bị và công nghệ sử dụng:
1.1. Mô tả sơ bộ bài lab
Bài lab tập trung vào việc xây dựng một hệ thống báo cáo tuân thủ theo các tiêu chuẩn PCI DSS và ISO 27001 bằng cách sử dụng OpenSearch. Mục tiêu là đảm bảo dữ liệu log được lưu trữ đủ thời gian quy định, có dashboard giám sát các hoạt động truy cập, thay đổi và xác thực, đồng thời tự động gửi báo cáo định kỳ qua email.
Thiết bị và công nghệ sử dụng:
- Ubuntu 20.04 LTS
- OpenSearch và OpenSearch Dashboards (Docker)
- Python 3
- ISM Policy (Index State Management)
- Cron job
1.2. Mô tả vấn đề cần giải quyết
Các tổ chức cần chứng minh tuân thủ PCI DSS và ISO 27001 thông qua:
Các tổ chức cần chứng minh tuân thủ PCI DSS và ISO 27001 thông qua:
- Lưu trữ log tối thiểu 1 năm để phục vụ kiểm toán.
- Giám sát truy cập hệ thống, thay đổi cấu hình và lỗi xác thực.
- Tự động tạo và gửi báo cáo định kỳ để giảm sai sót và tiết kiệm thời gian.
II. GIẢI PHÁP
2.1. Kiến trúc tổng thể
Hệ thống sử dụng OpenSearch để lưu trữ và phân tích log. Dữ liệu được tổ chức thành 3 loại:
2.1. Kiến trúc tổng thể
Hệ thống sử dụng OpenSearch để lưu trữ và phân tích log. Dữ liệu được tổ chức thành 3 loại:
- access logs, change logs và auth logs.
- ISM Policy đảm bảo log được giữ tối thiểu 365 ngày.
- Dashboard tổng hợp các chỉ số quan trọng và Python script tự động gửi báo cáo qua email định kỳ.
Hình 1: Kiến trúc hệ thống Compliance Reporting.
2.2. Triển khai chi tiết
2.2.1. Tạo Index Lifecycle Management (ISM) Policy
Trên OpenSearch Dashboards, vào Index Management → Create policy. Policy được tạo với 4 trạng thái: hot, warm, cold và delete. Policy này áp dụng cho các index có tên bắt đầu bằng access-logs-, change-logs- và auth-logs-*.
Hình 2: ISM Policy lưu log 1 năm.
2.2.2. Tạo dữ liệu log mẫu
Script Python được viết để sinh log mô phỏng cho 3 loại dữ liệu:
- Access logs: ghi nhận các truy cập hệ thống với user, IP, action, status.
- Change logs: ghi nhận các thay đổi cấu hình hệ thống.
- Auth logs: ghi nhận các lần xác thực thành công và thất bại.
Mỗi loại log được lưu vào index riêng với định dạng ngày tháng.
2.2.3. Tạo Dashboard báo cáo tuân thủ
Trên OpenSearch Dashboards, 4 visualization được tạo:
2.2.3. Tạo Dashboard báo cáo tuân thủ
Trên OpenSearch Dashboards, 4 visualization được tạo:
- Access Log Timeline: Biểu đồ đường thể hiện số lượng truy cập theo thời gian.
- Change Log Distribution: Biểu đồ tròn phân loại các thay đổi (CONFIG, PERMISSION, USER, SYSTEM).
- Top Failed Auth Sources: Biểu đồ cột ngang hiển thị các IP thất bại xác thực nhiều nhất.
- Access Status Distribution: Biểu đồ tròn phân phối status code 200/401/403.
Các biểu đồ này được tổng hợp vào dashboard có tên "Compliance Reporting Dashboard".
Hình 3: Dashboard Compliance Reporting.
2.2.4. Tự động gửi báo cáo qua Email
Do OpenSearch phiên bản Docker không hỗ trợ SMTP sender, một script Python được viết để thay thế. Script sử dụng thư viện smtplib để gửi email qua Gmail với App Password.
Nội dung email bao gồm:
Hình 3: Dashboard Compliance Reporting.
2.2.4. Tự động gửi báo cáo qua Email
Do OpenSearch phiên bản Docker không hỗ trợ SMTP sender, một script Python được viết để thay thế. Script sử dụng thư viện smtplib để gửi email qua Gmail với App Password.
Nội dung email bao gồm:
- Tiêu đề báo cáo hàng tuần.
- Thời gian tạo báo cáo.
- Đường dẫn truy cập dashboard.
Script được đặt trong thư mục /opt/compliance-logs/ và có tên send_report.py.
2.2.5. Cài đặt Cron job
Cron job được cấu hình để tự động gửi báo cáo mỗi tuần vào lúc 8h sáng thứ 2:
cron
0 8 * * 1 /usr/bin/python3 /opt/compliance-logs/send_report.py >> /opt/compliance-logs/mail.log 2>&1
Log của quá trình gửi email được ghi vào file mail.log để tiện kiểm tra.
Hình 4: Kết quả gửi email báo cáo tuân thủ.
III. KẾT LUẬN
Sau khi triển khai, hệ thống báo cáo tuân thủ đã đáp ứng được các yêu cầu đề ra:
- ISM Policy đảm bảo log được lưu trữ tối thiểu 365 ngày với các giai đoạn hot/warm/cold/delete, hỗ trợ yêu cầu kiểm toán của PCI DSS và ISO 27001.
- Dashboard tổng hợp cung cấp cái nhìn trực quan về access log, change log và failed authentication. Các biểu đồ cho thấy xu hướng truy cập, loại thay đổi thường xuyên và các IP có nguy cơ cao.
- Hệ thống tự động gửi báo cáo hàng tuần qua email, giúp đội ngũ an ninh mạng giám sát tuân thủ mà không cần can thiệp thủ công.
- Các file log và cron job hoạt động ổn định, đảm bảo báo cáo được gửi đúng lịch trình.
Giải pháp này phù hợp với các tổ chức vừa và nhỏ đang tìm cách đáp ứng yêu cầu tuân thủ với chi phí thấp, sử dụng công cụ mã nguồn mở và dễ dàng mở rộng.