SOC & Incident Response

Xây Dựng SOAR Pipeline: TheHive + Cortex + MISP Cho Phản Ứng Sự Cố Tự Động

Analyst SOC không thiếu alert — họ thiếu thời gian để xử lý hết chúng. Đây là cách một pipeline SOAR mã nguồn mở gồm TheHive, Cortex và MISP rút ngắn quy trình phát hiện → điều tra → phản ứng từ hàng chục phút xuống dưới một phút.

12/07/2026 22 phút đọc Võ Đào Huy Hoàng

1. Bài Toán Alert Fatigue Của SOC

Một SIEM trung bình tại doanh nghiệp vừa tạo ra hàng trăm đến hàng nghìn alert mỗi ngày. Phần lớn trong số đó là false positive hoặc trùng lặp, nhưng analyst vẫn phải xử lý thủ công từng bước gần như giống nhau cho mỗi alert: tra cứu IP/domain/hash trên các nguồn threat intelligence, kiểm tra log liên quan, đánh giá mức độ nghiêm trọng, rồi mới quyết định có escalate hay không.

Chi phí thực tế của quy trình thủ công

  • Một alert phishing thông thường mất 15-30 phút để triage thủ công: tra whois domain, kiểm tra reputation, tìm email liên quan trong mailbox khác
  • Analyst dành phần lớn thời gian cho công việc lặp lại (tra cứu IOC) thay vì phân tích chuyên sâu các case thực sự nguy hiểm
  • "Alert fatigue" khiến analyst dần bỏ qua hoặc xử lý qua loa alert — rủi ro bỏ sót một cuộc tấn công thật giữa hàng trăm false positive

SOAR (Security Orchestration, Automation and Response) giải quyết đúng bài toán này: tự động hóa các bước lặp lại, chỉ đưa lên cho con người những quyết định thực sự cần phán đoán.

2. SOAR Là Gì Và Khác Gì SIEM

SIEM (Security Information and Event Management) và SOAR giải quyết hai bài toán khác nhau nhưng bổ trợ lẫn nhau trong cùng một pipeline bảo mật.

Tiêu chíSIEM (Wazuh, Splunk)SOAR (TheHive/Cortex)
Vai trò chínhThu thập log, phát hiện bất thườngĐiều tra, làm giàu dữ liệu, phản ứng tự động
Đầu vàoLog thô từ endpoint/networkAlert đã được SIEM phát hiện
Đầu raAlert cần điều traCase đã được enrich + verdict + action
Con người tham giaXem dashboard, tune ruleReview case, quyết định các bước cần phán đoán

Nói ngắn gọn: SIEM trả lời câu hỏi "có gì bất thường xảy ra?", còn SOAR trả lời câu hỏi "bất thường đó có nguy hiểm không, và cần làm gì với nó — một cách nhanh nhất có thể?"

3. Kiến Trúc Pipeline 3 Thành Phần

Wazuh SIEM (phát hiện) ──alert──▶ TheHive (case management)
                                                  │
                                    tạo case, gắn observable (IP/domain/hash)
                                                  │
                                                  ▼
                                        Cortex (analyzer/responder)
                                  ├── VirusTotal/AbuseIPDB analyzer (enrichment)
                                  ├── MISP analyzer (tra cứu threat intel)
                                  └── Responder (block IP, disable account...)
                                                  │
                                                  ▼
                                    MISP (threat intelligence sharing)
                                  chia sẻ IOC mới phát hiện ngược lại cộng đồng

TheHive — Case Management

TheHive đóng vai trò trung tâm điều phối: mỗi alert từ SIEM được chuyển thành một case, trong case chứa các observable (IP, domain, file hash, email...). TheHive cho phép analyst theo dõi trạng thái điều tra, gán task, và quan trọng nhất — kích hoạt Cortex analyzer trực tiếp trên từng observable chỉ bằng một cú click, thay vì phải mở tab mới tra cứu thủ công.

Cortex — Analyzer & Responder

Cortex là engine thực thi hai loại tác vụ: Analyzer (làm giàu dữ liệu — tra cứu VirusTotal, AbuseIPDB, Shodan cho một observable) và Responder (thực thi hành động — block IP trên firewall, disable tài khoản AD, cô lập endpoint). Cortex có hàng trăm analyzer/responder community đã viết sẵn, phần lớn triển khai chỉ cần cấu hình API key.

MISP — Threat Intelligence Sharing

MISP lưu trữ và chia sẻ Indicator of Compromise (IOC) — không chỉ nội bộ mà còn có thể kết nối với các cộng đồng chia sẻ threat intel (ISAC ngành, CERT quốc gia). Khi Cortex phát hiện một IOC mới trong quá trình điều tra, IOC đó có thể được đẩy ngược vào MISP để làm giàu dữ liệu cho các lần phát hiện sau — tạo thành vòng lặp cải thiện liên tục.

4. Playbook Mẫu: Phishing Alert Tự Động

Một playbook cụ thể minh họa cách 3 công cụ phối hợp cho tình huống phổ biến nhất trong SOC: alert phishing từ mail gateway.

# Pseudocode: Cortex responder tự động chạy khi TheHive tạo case "phishing"
def on_case_created(case):
    if case.tags.contains("phishing"):
        domain = extract_domain(case.observables)

        # 1. Enrichment tự động qua Cortex analyzers
        vt_result = cortex.run_analyzer("VirusTotal_GetReport", domain)
        misp_result = cortex.run_analyzer("MISP_2_1", domain)

        # 2. Tính điểm rủi ro tổng hợp
        risk_score = compute_risk(vt_result, misp_result)

        if risk_score > THRESHOLD_HIGH:
            # 3a. Auto-response cho case rủi ro cao
            cortex.run_responder("Block_Domain_Firewall", domain)
            cortex.run_responder("Quarantine_Email", case.related_emails)
            thehive.escalate(case, priority="critical")
        else:
            # 3b. Case rủi ro thấp: gắn context, để analyst review
            thehive.add_enrichment(case, vt_result, misp_result)
            thehive.assign(case, queue="tier1-review")

Kết quả của playbook này

Với case rủi ro cao (domain đã có trong nhiều threat intel feed, VirusTotal detection rate cao), toàn bộ chuỗi enrichment + response chạy tự động trong vài giây — analyst chỉ nhận case đã có đầy đủ context và hành động đã được thực thi, thay vì phải tự tra cứu từng bước.

5. Tích Hợp Với Wazuh SIEM

Wazuh hỗ trợ tích hợp trực tiếp với TheHive qua một custom integration script — mỗi khi Wazuh phát hiện alert vượt ngưỡng rule level cấu hình sẵn, alert được tự động đẩy sang TheHive dưới dạng case mới kèm toàn bộ context log gốc.

<!-- ossec.conf: cấu hình Wazuh gửi alert sang TheHive integration -->
<integration>
    <name>custom-thehive</name>
    <hook_url>https://thehive.internal:9000/api/alert</hook_url>
    <api_key>YOUR_THEHIVE_API_KEY</api_key>
    <alert_format>json</alert_format>
    <level>10</level>  <!-- chỉ gửi alert từ level 10 trở lên -->
</integration>

Việc lọc theo level ngay tại tầng Wazuh là bước quan trọng để tránh làm ngập TheHive với alert có mức độ nghiêm trọng thấp — chỉ những alert thực sự đáng được điều tra mới trở thành case.

6. Kết Quả Đo Được

Trong một triển khai SOC quy mô nhỏ áp dụng pipeline này cho môi trường lab mô phỏng doanh nghiệp, thời gian xử lý trung bình mỗi alert giảm rõ rệt so với quy trình thủ công hoàn toàn:

Giai đoạnThủ côngVới SOAR pipeline
Enrichment IOC (tra cứu VT/AbuseIPDB/MISP)5-10 phútVài giây (tự động)
Triage & phân loại verdict10-15 phútDưới 1 phút (auto-score)
Phản ứng (block IP, cô lập máy)5-10 phút (thủ công trên firewall)Tức thời qua Cortex responder
Tổng thời gian/case~20-35 phútDưới 1 phút cho case tự động hoá được

7. Bài Học Triển Khai Thực Tế

  • Không tự động hóa 100% ngay từ đầu: Bắt đầu với auto-enrichment (an toàn, không thể gây hại), chỉ chuyển sang auto-response sau khi đã tin tưởng độ chính xác của risk scoring qua thời gian
  • API rate limit là điểm nghẽn thực tế: VirusTotal free tier giới hạn request/phút — cần queue và cache kết quả tra cứu để tránh bị throttle khi volume alert tăng đột biến
  • Playbook cần review định kỳ: Ngưỡng risk score cố định sẽ lỗi thời khi kỹ thuật tấn công thay đổi — cần review và điều chỉnh threshold theo dữ liệu thực tế mỗi quý
  • False positive trong auto-response nguy hiểm hơn false negative: Auto-block nhầm một domain hợp lệ có thể gây gián đoạn nghiệp vụ — luôn có cơ chế rollback nhanh cho response tự động

8. Kết Luận

TheHive + Cortex + MISP là một trong những stack SOAR mã nguồn mở trưởng thành nhất hiện nay, đủ mạnh để triển khai một pipeline phát hiện → điều tra → phản ứng khép kín mà không cần ngân sách license SOAR thương mại. Điểm mấu chốt không nằm ở việc tự động hóa mọi thứ, mà ở việc xác định đúng phần việc lặp lại (enrichment, tra cứu IOC) để giao cho máy, giữ lại cho con người những quyết định thực sự cần phán đoán chuyên môn.

Bắt đầu ngay:
  • Deploy TheHive + Cortex bằng Docker Compose cho môi trường lab trước khi đưa vào production
  • Kết nối Cortex với ít nhất 2-3 analyzer miễn phí (VirusTotal, AbuseIPDB) để có enrichment cơ bản
  • Bắt đầu tự động hóa từ bước enrichment, chưa vội tự động response cho tới khi tin tưởng độ chính xác