DeCyberGuardian/cti-driven-detection-and-AI-Assisted-soc-pipeline-wazuh-sysmon
GitHub: DeCyberGuardian/cti-driven-detection-and-AI-Assisted-soc-pipeline-wazuh-sysmon
一个基于 Wazuh+Sysmon 的威胁情报驱动检测流水线,将 IOC 自动转化为检测规则并通过 AI 层丰富告警上下文。
Stars: 0 | Forks: 0
# 🧠 CTI 检测流水线 — Wazuh + Sysmon + 情报驱动检测
**作者:** DeCyberGuardian 👨🏾💻 · 网络威胁情报与检测工程
一个基于以下理念构建的检测流水线:**情报驱动检测,而不仅仅是工具。** 它接收威胁情报 IOC,对其进行标准化和评分,将其转化为针对实时 Sysmon 遥测数据运行的 Wazuh 规则,并通过 AI 层丰富生成的警报,该 AI 层在模型不可用时会优雅降级。
## 🗺️ 工作流程
```
Threat-intel sources (Abuse.ch, OTX)
↓
IOC ingestion & normalisation
↓
CTI processing (dedup + scoring)
↓
Detection engineering (Wazuh rules)
↓
Sysmon endpoint telemetry
↓
Wazuh alerts
↓
AI enrichment (cloud + local fallback)
```
## 🛰️ 阶段 1 — IOC 获取
从 **Abuse.ch (URLhaus / MalwareBazaar)** 和 **AlienVault OTX** 提取指标,然后在它们成为规则之前进行去重和评分。
## 🛡️ 阶段 2 — 检测工程(Wazuh + Sysmon)
**实验环境:** Wazuh 4.x · Sysmon(DNS 使用 Event ID 22)· 自定义规则 · VMware
| 规则 | 文件 | 检测内容 | MITRE |
| :--- | :--- | :--- | :--- |
| 基于 IOC 的 DNS | `100200-dns-ioc.xml` | 匹配 CTI 域名的 DNS 查询 | T1071.004 |
| 标记域名 | `100205-dns-marker.xml` | 确定性测试域名(验证) | — |
| DNS 信标 | `100206-dns-beaconing.xml` | 重复的 DNS 模式(C2 行为) | T1071.004 |
| DGA | `100207-dns-dga.xml` | 算法生成的域名 | T1568.002 |
加载规则:
```
sudo cp wazuh/rules/*.xml /var/ossec/etc/rules/
sudo cp wazuh/lists/* /var/ossec/etc/lists/
sudo /var/ossec/bin/wazuh-analysisd -t
sudo systemctl restart wazuh-manager
```
测试检测:
```
ping afriwealth-lab-test-7777.com
grep '"id":"100200"' /var/ossec/logs/alerts/alerts.json
```
## 🤖 阶段 3 — AI 丰富
为每个警报添加上下文、置信度评分以及建议的分析师操作。
```
# 本地测试
export ENRICHMENT_MODE=oneshot
export WAZUH_ALERTS_FILE=./sample_data/alerts.json
python scripts/enrich_wazuh_alerts.py
# 实时,在 Wazuh manager 上
export ENRICHMENT_MODE=live
export WAZUH_ALERTS_FILE=/var/ossec/logs/alerts/alerts.json
python3 scripts/enrich_wazuh_alerts.py
```
**设计兜底机制。** 如果云端模型不可用(配额、网络、中断),流水线不会失败——它会回退到本地逻辑并记录原因:
```
{
"rule_id": "100200",
"domain": "example.com",
"provider_status": "fallback",
"fallback_reason": "insufficient_quota",
"enrichment": { "assessment": "...", "confidence": "low" }
}
```
丰富后的警报将写入 `output/enriched_dns_alerts.jsonl`。
## 🔁 工作流
在 VS Code 中本地开发和测试(单次执行) → 推送到 GitHub → 在 Wazuh 管理器上拉取 → 实时运行。
## 🧠 关键经验
- 检测需要遥测数据**和**规则保持一致——Sysmon Event ID 22 必须映射到 `sysmon_event_22`,否则不会触发任何响应。
- 重复的 Wazuh 规则会*静默*失败——这是这里最难发现的 bug。
- 在构建规则之前对 CTI 进行标准化,使检测明显更加可靠。
- AI 应该**增强**流水线,绝不能成为单点故障——这就是需要兜底机制的原因。
## 🎯 成果
一种 CTI 优先的检测方法:情报驱动规则,遥测数据证明它们,而数据丰富使警报达到随时可决策的状态。
标签:Subfinder, Sysmon, Wazuh, 威胁情报, 安全, 安全运营, 开发者工具, 扫描框架, 超时处理, 逆向工具