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ính | Thu 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ào | Log thô từ endpoint/network | Alert đã được SIEM phát hiện |
| Đầu ra | Alert cần điều tra | Case đã được enrich + verdict + action |
| Con người tham gia | Xem dashboard, tune rule | Review 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ạn | Thủ công | Với SOAR pipeline |
|---|---|---|
| Enrichment IOC (tra cứu VT/AbuseIPDB/MISP) | 5-10 phút | Vài giây (tự động) |
| Triage & phân loại verdict | 10-15 phút | Dướ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út | Dướ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.
- 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