Giới thiệu dự án

Trong kỷ nguyên số hóa, an toàn thông tin trở thành yếu tố sống còn đối với mọi tổ chức. Dữ liệu số là tài sản vô giá nhưng cũng là mục tiêu hàng đầu của các tổ chức tội phạm mạng. Sự bùng nổ của các cuộc tấn công mã độc tống tiền (ransomware) đã gây ra những tổn thất kinh tế nghiêm trọng: chi phí do thời gian ngừng hoạt động (downtime) của hệ thống cao hơn gấp 23 lần so với yêu cầu tiền chuộc trung bình (khoảng 5.900 USD). Các báo cáo an ninh mạng chỉ ra rằng ransomware SamSam đã thu về 6,5 triệu USD chỉ trong chưa đầy 2 năm, và tổng thiệt hại toàn cầu do ransomware năm 2019 đã vượt mốc 11,5 tỷ USD.

Đối với các doanh nghiệp vừa và nhỏ (SMB), việc thiết lập một Trung tâm Điều hành An ninh (SOC) hoàn chỉnh thường gặp rào cản lớn về chi phí bản quyền và nhân lực vận hành. Hơn nữa, quá trình cài đặt, cấu hình thủ công các hệ thống giám sát an ninh thường tiềm ẩn nguy cơ sai sót (misconfiguration), kéo dài thời gian phản ứng trước sự cố (MTTR).

Đề tài "Triển khai tự động dịch vụ bảo mật SIEM và IDPS trên môi trường đám mây" (Automated Deployment of SIEM and IDPS Security Services in Cloud Environment) do sinh viên Đỗ Xuân Long và Vi Minh Tiến thực hiện dưới sự hướng dẫn của ThS. Nguyễn Công Danh tại Khoa Mạng máy tính và Truyền thông – Trường Đại học Công nghệ Thông tin (ĐHQG-TP.HCM) giải quyết trực tiếp bài toán này. Đề tài tập trung xây dựng giải pháp tự động hóa toàn diện quy trình triển khai và vận hành hệ thống giám sát an ninh kết hợp giữa nền tảng đám mây và hạ tầng tại chỗ.

+-----------------------------------------------------------------------+
|                           MỤC TIÊU DỰ ÁN                              |
+-----------------------------------------------------------------------+
| 1. Tự động hóa 100% hạ tầng SIEM trên AWS bằng Terraform (IaC).       |
| 2. Tự động hóa cấu hình, đồng bộ Rule IDPS & quản lý Agent qua Ansible|
| 3. Xây dựng mô hình giám sát lai (Hybrid) bảo vệ On-premise & Cloud.  |
| 4. Triển khai cơ chế tự phục hồi (Self-healing) cho Endpoint Agents.  |
+-----------------------------------------------------------------------+

Phương pháp tiếp cận và Phạm vi

Dự án áp dụng phương pháp Infrastructure as Code (IaC) kết hợp Configuration Management, sử dụng hệ sinh thái mã nguồn mở chất lượng cao: Wazuh (SIEM/XDR), Suricata (NIDS/IPS), TerraformAnsible.

Phạm vi nghiên cứu bao gồm:

  • Môi trường Cloud (AWS): Khởi tạo máy chủ Wazuh Manager, S3 Bucket lưu trữ, VPC và các dịch vụ Web/Mail Server trên EC2.
  • Môi trường On-premise / Local: Mạng doanh nghiệp ảo hóa trên VMware ESXi, định tuyến và phân vùng mạng bằng tường lửa pfSense 2.x tích hợp Suricata.
  • Giới hạn đề tài: Tập trung vào mô hình Hybrid Cloud (AWS + On-premise), chưa mở rộng sang môi trường Multi-Cloud (Azure, GCP).

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Nhiều doanh nghiệp vẫn phụ thuộc vào quy trình giám sát thủ công hoặc sử dụng các công cụ độc lập, rời rạc, dẫn đến thiếu sự tương quan dữ liệu log và phản ứng chậm trễ.

Tiêu chí Giải pháp Thương mại (Splunk, Palo Alto) Giải pháp Thủ công Mã nguồn mở Giải pháp Đề tài (IaC + Wazuh + Suricata)
Chi phí bản quyền Rất cao (> $1.800/GB log/ngày) Miễn phí Tối ưu (0$ bản quyền phần mềm)
Thời gian triển khai Trung bình (cần chuyên gia cấu hình) Chậm (2 - 4 giờ/node) Nhanh (< 5 phút toàn bộ hệ thống)
Tính nhất quán cấu hình Cao Thấp (dễ phát sinh lỗi cấu hình) Tuyệt đối (định nghĩa chuẩn qua code)
Khả năng mở rộng Tốt (nhưng tăng chi phí license) Khó khăn, tốn nhân lực Tự động, linh hoạt mở rộng theo tải
Cập nhật quy tắc (Rules) Tự động theo gói dịch vụ Thủ công từng thiết bị Tự động hóa qua Ansible (Zero-Downtime)

Ưu tiên yêu cầu người dùng (MoSCoW)

  • Must have: Tự động tạo hạ tầng AWS bằng Terraform; Triển khai tập trung Wazuh SIEM; Tích hợp Suricata NIDS/IPS trên router pfSense; Cập nhật tập luật tự động.
  • Should have: Cơ chế tự động kiểm tra trạng thái và khởi động lại agent khi mất kết nối; Bảng điều khiển quản trị tập trung.
  • Could have: Tích hợp bộ quy tắc ETOpen tự động cập nhật định kỳ; Cảnh báo tấn công Brute-force, Reverse Shell thời gian thực.
  • Won't have (phiên bản hiện tại): Tự động phân tích nâng cao sử dụng Machine Learning trên Cloud.

Thiết kế hệ thống

Kiến trúc hệ thống bao gồm hai phân vùng chính được kết nối và quản lý tập trung từ Control Node:

flowchart TB
    subgraph Control_Node ["Control Node (DevOps / SecOps)"]
        TF["Terraform Engine"]
        AN["Ansible Automation Controller"]
    end

    subgraph AWS_Cloud ["AWS Cloud Environment"]
        VPC["Amazon VPC (us-west-2)"]
        EC2_Wazuh["Wazuh SIEM Server (EC2)"]
        S3["Amazon S3 Storage (Log Archive)"]
        EC2_App["Cloud Workloads (Web/Mail EC2)"]
        VPC --- EC2_Wazuh
        VPC --- S3
        VPC --- EC2_App
    end

    subgraph On_Premise ["On-Premise Infrastructure"]
        PF["pfSense Router / Firewall"]
        SURI["Suricata IDPS Engine (Inline/EVE JSON)"]
        ESXI["VMware ESXi Log Server"]
        LAN["Internal Client & Server Nodes"]
        PF --- SURI
        PF --- LAN
        ESXI --- LAN
    end

    TF -->|"Provisioning (HCL)"| AWS_Cloud
    AN -->|"Config & Rule Sync (SSH/YAML)"| PF
    AN -->|"Deploy Agent & Health-Check"| LAN
    AN -->|"Deploy Agent & Health-Check"| EC2_App
    LAN -->|"Encrypted Logs (Port 1514/1515)"| EC2_Wazuh
    EC2_App -->|"Encrypted Logs"| EC2_Wazuh
    SURI -->|"EVE Alerts"| EC2_Wazuh

Ngăn xếp công nghệ (Technology Stack)

  • IaC & Automation: Terraform v1.5+, Ansible Core v2.14+
  • SIEM / XDR: Wazuh v4.x (Wazuh Indexer, Wazuh Server, Wazuh Dashboard)
  • IDPS & Network Security: Suricata v6.x/7.x, pfSense CE 2.6.x/2.7.x
  • Cloud & Virtualization: AWS (EC2, S3, VPC, Security Groups), VMware ESXi 7.0+
  • Hệ điều hành: Ubuntu Server 22.04 LTS, FreeBSD 12/13 (pfSense base)

Thiết kế bảo mật và Hiệu năng

  • Quản lý định danh: Toàn bộ giao tiếp giữa Ansible Control Node và các máy chủ được xác thực qua cặp SSH Key (ED25519/RSA 4096-bit), không dùng mật khẩu tĩnh.
  • Mã hóa truyền tải: Dữ liệu log gửi từ Wazuh Agent về Wazuh Server được mã hóa TLS qua cổng TCP 1514; cổng TCP 1515 phục vụ cơ chế tự động đăng ký (Auto-enrollment).
  • Hiệu năng: Suricata kích hoạt tính năng Live Swap, cho phép tải lại bộ quy tắc signature vào bộ nhớ RAM mà không cần restart tiến trình hoặc làm gián đoạn lưu lượng mạng.

Methodology

Dự án áp dụng quy trình phát triển lặp theo chuẩn GitOps & Infrastructure as Code:

[Phase 1: Write Code] -> [Phase 2: Terraform Init & Plan] -> [Phase 3: Apply & Provision] -> [Phase 4: Ansible Configuration]
  • Đánh giá rủi ro: Nguy cơ nghẽn mạng do lưu lượng log lớn được giảm thiểu bằng cách lọc log tại Agent (local analysis/decoding) trước khi chuyển tiếp về SIEM Manager.

Implementation và kết quả

Development process

Quá trình triển khai được module hóa thành các kịch bản thực thi tự động:

1. Khởi tạo hạ tầng AWS bằng Terraform

File cấu hình main.tf định nghĩa tài nguyên máy chủ bảo mật và không gian lưu trữ:

# main.tf: Khoi tao EC2 instance cho Wazuh SIEM Server tren AWS
provider "aws" {
  region = "us-west-2"
}

resource "aws_instance" "wazuh_server" {
  ami           = "ami-008fe2fc65e7173b2" # Ubuntu Server 22.04 LTS
  instance_type = "t2.medium"
  key_name      = "soc-deploy-key"

  vpc_security_group_ids = [aws_security_group.wazuh_sg.id]

  tags = {
    Name        = "Wazuh-SIEM-Server"
    Environment = "Production-SecOps"
  }
}

resource "aws_s3_bucket" "siem_log_bucket" {
  bucket        = "soc-cloud-security-logs-archive"
  force_destroy = true

  tags = {
    Name        = "SIEM Long-Term Log Storage"
  }
}

2. Cấu hình tự động và Cập nhật Rule Suricata IDPS bằng Ansible Playbook

Playbook tự động nạp tập luật mới (Emerging Threats Open - ETOpen) và thực hiện Live Swap:

---
# suricata_rule_update.yml: Cap nhat Rule IDPS va Live Swap tren pfSense
- name: Automate Suricata Rule Update and Live Swap
  hosts: idps_routers
  become: yes
  tasks:
    - name: Download latest Emerging Threats ruleset
      get_url:
        url: "https://rules.emergingthreats.net/open/suricata-5.0/emerging.rules.tar.gz"
        dest: "/tmp/emerging.rules.tar.gz"
        mode: '0644'

    - name: Extract rules to Suricata rules directory
      unarchive:
        src: "/tmp/emerging.rules.tar.gz"
        dest: "/usr/local/share/suricata/rules/"
        remote_src: yes

    - name: Trigger Suricata Live Rule Swap via Socket/Signal
      command: suricatasc -c reload-rules
      register: rule_reload_output

    - name: Verify rule update status
      debug:
        msg: "Suricata Rules updated successfully with response: {{ rule_reload_output.stdout }}"

3. Kịch bản Giám sát và Tự phục hồi Agent (Self-Healing)

Playbook kiểm tra dịch vụ wazuh-agent, nếu phát hiện trạng thái ngừng hoạt động sẽ tự động khởi chạy lại và gửi cảnh báo:

---
# agent_health_check.yml: Kiem tra va khoi phuc Wazuh Agent
- name: Check and Self-Heal Wazuh Agents
  hosts: all_endpoints
  become: yes
  tasks:
    - name: Get Wazuh Agent service status
      ansible.builtin.systemd:
        name: wazuh-agent
      register: agent_status

    - name: Restart Wazuh Agent if service is inactive or failed
      ansible.builtin.systemd:
        name: wazuh-agent
        state: restarted
      when: agent_status.status.ActiveState != "active"

    - name: Log remediation event
      ansible.builtin.lineinfile:
        path: /var/log/agent_remediation.log
        line: "[{{ ansible_date_time.iso8601 }}] Agent recovered on {{ inventory_hostname }}"
        create: yes
      when: agent_status.status.ActiveState != "active"

Testing và validation

Hệ thống được kiểm thử thực nghiệm qua 3 kịch bản tấn công và quản trị thực tế:

+-----------------------------------------------------------------------------------+
|                           CÁC KỊCH BẢN THỰC NGHIỆM                                |
+-----------------------------------------------------------------------------------+
| Kịch bản 1: Tấn công Web & Khai thác Reverse Shell (Trạng thái IDPS chưa cập nhật)|
| Kịch bản 2: Tự động cập nhật Rule Suricata IDPS qua Ansible -> Chặn đứng tấn công  |
| Kịch bản 3: Giả lập Agent gặp sự cố -> Ansible tự động phát hiện & Reconnect      |
+-----------------------------------------------------------------------------------+

Kết quả đo lường kịch bản:

  • Kịch bản 1 (Chưa cập nhật rule): Kẻ tấn công gửi payload Metasploit kết nối Reverse Shell về máy chủ C2 (192.168.1.157). Hệ thống ghi nhận kết nối TCP thành công trên cổng 49969, máy chủ bị kiểm soát.
  • Kịch bản 2 (Cập nhật rule tự động): Ansible thực thi playbook cập nhật bộ rule ET MALWARE Possible Metasploit Payload (SID: 1:2025644) và ET HUNTING PE EXE Download (SID: 1:2035480). Khi kẻ tấn công gửi lại mã độc, Suricata ngay lập tức nhận diện chữ ký, chặn gói tin (Drop Action) và gửi cảnh báo EVE JSON về Wazuh Dashboard trong < 0,5 giây.
  • Kịch bản 3 (Agent tự phục hồi): Giả lập dừng tiến trình wazuh-agent trên máy trạm Windows/Linux. Ansible playbook phát hiện trạng thái Inactive/Dead và tái khởi động dịch vụ, phục hồi kết nối với Wazuh Manager chỉ sau 12 giây.
[Suricata Alert Detail]
Timestamp: 2024-06-23T15:19:01.450
Class: Network Trojan Was Detected
Priority: 1 (High)
Source IP: 192.168.1.14:49969 -> Destination IP: 192.168.1.157:1234
Signature: [1:2025644] ET MALWARE Possible Metasploit Payload Detected
Action: BLOCKED (TCP RST / Packet Dropped)

Kết quả đạt được

Mục tiêu đề ra Chỉ số đo lường ban đầu Kết quả đạt được qua tự động hóa Mức độ cải thiện
Thời gian tạo hạ tầng Cloud 120 - 180 phút (thủ công) ~3,5 phút (Terraform apply) Nhanh hơn ~97%
Thời gian cập nhật Rule IDPS 20 - 30 phút/router ~15 giây trên toàn mạng Nhanh hơn 98,7%
Tỷ lệ phục hồi Agent lỗi Phụ thuộc Admin (hàng giờ) Tự động phục hồi trong 12s 100% tự động
Độ chính xác cấu hình Có lỗi phát sinh do thao tác 0 lỗi cú pháp / cấu hình chuẩn hóa Chuẩn hóa 100%

Đổi mới và đóng góp

  • Mô hình Hybrid SecOps tự động hóa: Khắc phục tính cục bộ của các nghiên cứu trước đây (như nghiên cứu của Ryuga Kaneko chỉ tập trung trên Azure hoặc Grant McDonald sử dụng phương thức cài đặt thủ công). Dự án kết nối liền mạch giữa Cloud AWS và hạ tầng On-premise (pfSense/ESXi).
  • Cơ chế cập nhật Zero-Downtime IDPS: Ứng dụng kỹ thuật Live Swap thông qua Ansible command socket, giúp router không phải khởi động lại service hay ngắt quãng kết nối mạng của người dùng khi cập nhật chữ ký bảo mật.
  • Chi phí triển khai tiệm cận 0 USD: Xây dựng toàn bộ hệ thống SOC mini hoàn chỉnh dựa trên các giải pháp mã nguồn mở hàng đầu (Wazuh, Suricata), giúp doanh nghiệp SMB tiết kiệm hàng chục nghìn USD phí license hàng năm so với các giải pháp thương mại như Splunk hay Palo Alto Networks.

Ứng dụng thực tế và triển khai

Trường hợp sử dụng thực tế (Use Cases)

  1. Doanh nghiệp vừa và nhỏ (SMBs): Doanh nghiệp chuyển đổi số có hệ thống máy chủ đặt tại văn phòng kết hợp ứng dụng Web/Mail đặt trên AWS EC2.
  2. Trung tâm SOC thuê ngoài (MSSP): Áp dụng Ansible Playbooks và Terraform scripts để nhanh chóng cấp phát và vận hành dịch vụ bảo mật cho khách hàng mới chỉ trong vài phút.

Yêu cầu hệ thống và Triển khai

+--------------------------------------------------------------------------+
|                         YÊU CẦU HỆ THỐNG TỐI THIỂU                       |
+--------------------------------------------------------------------------+
| 1. Control Node: Ubuntu 22.04 LTS, 2 vCPU, 4GB RAM, Ansible 2.14+,       |
|    Terraform 1.5+, Python 3.10+.                                         |
| 2. AWS Wazuh SIEM Node: AWS EC2 t2.medium / t3.large (4 vCPU, 8GB RAM),  |
|    50GB SSD EBS, Ubuntu 22.04 LTS.                                       |
| 3. Firewall/Router Node: pfSense CE 2.6+, 2 NICs, 2 vCPU, 4GB RAM,       |
|    gói Suricata Package tích hợp.                                        |
+--------------------------------------------------------------------------+

Các bước triển khai nhanh:

  1. Clone repository: Tải bộ mã nguồn Terraform và Ansible playbooks.
  2. Cấu hình AWS Credentials: Thiết lập AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY.
  3. Chạy Terraform:
    cd terraform/aws && terraform init && terraform apply -auto-approve
    
  4. Chạy Ansible Configuration:
    cd ../../ansible && ansible-playbook -i inventory/hosts site.yml
    

Hạn chế và hướng phát triển

Hạn chế hiện tại

  • Hệ thống phụ thuộc vào kết nối mạng ổn định giữa On-premise và AWS để gửi log theo thời gian thực; chưa có cơ chế local cache lớn khi mất kết nối mạng diện rộng (WAN).
  • Các kịch bản tự động hóa hiện được kích hoạt định kỳ hoặc qua lệnh quản trị, chưa tích hợp hoàn toàn cơ chế phản ứng tự động theo sự kiện (Event-driven Ansible / Webhook triggers).

Hướng phát triển tương lai

  • Tích hợp đường ống CI/CD (GitHub Actions/GitLab CI) để tự động hóa kiểm thử mã nguồn Terraform và Ansible trước khi triển khai (Test-Driven Infrastructure).
  • Mở rộng giải pháp hỗ trợ Multi-Cloud (tích hợp Microsoft Azure Sentinel và Google Cloud Platform).
  • Nghiên cứu ứng dụng các mô hình Machine Learning/AI vào Wazuh để phân tích hành vi bất thường (User and Entity Behavior Analytics - UEBA), phát hiện tấn công Zero-Day.

Đối tượng hưởng lợi

  • Sinh viên & Nghiên cứu sinh: Tài liệu tham khảo thực tế về cách kết hợp giữa An toàn thông tin (Cybersecurity) và Tự động hóa hạ tầng (DevSecOps).
  • Kỹ sư Hệ thống / DevSecOps: Bộ khung mã nguồn (HCL & YAML playbooks) sẵn sàng tùy biến để triển khai SIEM/IDPS trong các dự án thực tế.
  • Doanh nghiệp vừa và nhỏ (SMBs): Mô hình kiến trúc tối ưu chi phí, nâng cao năng lực giám sát và phòng thủ mạng trước các hiểm họa mã độc tống tiền.

Câu hỏi thường gặp

1. Yêu cầu kỹ thuật tối thiểu để triển khai giải pháp này là gì?

Hệ thống yêu cầu một Control Node cài đặt Linux (Ubuntu 22.04 LTS) có sẵn Terraform 1.5+ và Ansible 2.14+. Phía AWS cần tài khoản có quyền khởi tạo tài nguyên EC2, VPC, S3. Phía On-premise cần tường lửa pfSense (tối thiểu 4GB RAM) và hạ tầng ảo hóa như VMware ESXi hoặc Proxmox.

2. Khả năng mở rộng (Scalability) của hệ thống như thế nào khi số lượng máy trạm tăng lên?

Wazuh SIEM được thiết kế theo kiến trúc module phân tán. Khi số lượng log tăng đột biến, hệ thống có thể mở rộng theo chiều ngang (Scale-out) bằng cách bổ sung các node Wazuh Worker kết hợp cụm Wazuh Indexer (Elasticsearch/OpenSearch Cluster) mà không làm gián đoạn hoạt động giám sát.

3. Giải pháp này có thể tích hợp với các hệ thống sẵn có của doanh nghiệp không?

Có. Wazuh Agent hỗ trợ đa nền tảng (Windows, Linux, macOS, Solaris, AIX). Đối với các thiết bị mạng không thể cài agent (như Router, Switch, Tường lửa vật lý), Wazuh có khả năng thu thập log qua giao thức Syslog chuẩn (UDP/TCP port 514).

4. Chi phí duy trì và yêu cầu vận hành hệ thống ra sao?

Do sử dụng 100% phần mềm mã nguồn mở (Wazuh, Suricata, pfSense), doanh nghiệp không phải trả phí bản quyền phần mềm. Chi phí duy nhất là tài nguyên máy chủ đám mây AWS (ước tính khoảng 30 - 70 USD/tháng cho quy mô SMB). Việc vận hành được tinh giản tối đa nhờ các playbook tự động hóa.

5. Thời gian hoàn vốn đầu tư (ROI) ước tính trong bao lâu?

So với chi phí triển khai hệ thống SIEM thương mại (tối thiểu 15.000 - 30.000 USD/năm) hoặc thiệt hại do một cuộc tấn công ransomware gây ra (trung bình hàng chục nghìn USD chi phí downtime), giải pháp tự động hóa này giúp doanh nghiệp đạt điểm hòa vốn và mang lại ROI dương ngay trong tháng đầu tiên vận hành.


Kết luận

Đề tài "Triển khai tự động dịch vụ bảo mật SIEM và IDPS trên môi trường đám mây" đã giải quyết thành công bài toán tự động hóa an ninh mạng cho mô hình doanh nghiệp Hybrid Cloud. Việc kết hợp chặt chẽ giữa triết lý Infrastructure as Code (Terraform, Ansible) và các công cụ bảo mật hàng đầu (Wazuh, Suricata) không chỉ rút ngắn thời gian triển khai từ nhiều giờ xuống dưới 5 phút, mà còn đảm bảo tính toàn vẹn, độ chính xác và khả năng phòng thủ chủ động trước các mối đe dọa an ninh hiện đại.

Giải pháp mở ra hướng đi thực tiễn, chi phí thấp nhưng mang lại hiệu quả bảo vệ cao cho các tổ chức, doanh nghiệp trong hành trình chuyển đổi số an toàn và bền vững.