Sri-Sravan/Thread-Feed-Integration
GitHub: Sri-Sravan/Thread-Feed-Integration
Wazuh SIEM威胁情报集成工具,实现实时威胁检测。
Stars: 0 | Forks: 0
# SIEM 中威胁情报集成
将外部威胁源集成到 Wazuh SIEM,并与内部 Sysmon 日志相关联,以实时检测恶意 IP、域名和文件哈希值。
## 概述
本项目在 Wazuh 4.8.2 上实现了完整的威胁情报管道。一个 Python 脚本每天从五个开源源中提取 IOCs,将它们标准化并去重到 Wazuh CDB 查找列表中,并六个自定义关联规则实时匹配每个传入的 Sysmon 事件与 480K+ 活跃 IOCs。
**测试期间,所有 6 个检测规则触发了 25 个确认警报**。
## 架构
```
┌─────────────────────────────────────────────────────────────┐
│ External Threat Feeds │
│ Emerging Threats · Feodo Tracker · URLhaus · │
│ MalwareBazaar · OpenPhish · AlienVault OTX │
└──────────────────────────┬──────────────────────────────────┘
│ HTTP fetch (daily cron 02:00)
▼
sync_feeds.py
(fetch → classify → deduplicate → write)
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Wazuh Manager (Ubuntu) │
│ │
│ /var/ossec/etc/lists/ │
│ malicious-ips (6,252 entries → .cdb binary) │
│ malicious-domains (473,837 entries → .cdb binary) │
│ malicious-hashes (664 entries → .cdb binary) │
│ │
│ threat-intel-rules.xml │
│ Rules 100200–100205 → CDB lookup → Alert (level 12–15) │
└──────────────────────────┬──────────────────────────────────┘
│ TLS 1514/TCP
▼
Windows 10 — Wazuh Agent + Sysmon
EID 1 (process) · EID 3 (network)
EID 7 (DLL load) · EID 22 (DNS)
```
## 实验环境
| 组件 | 详情 |
|---|---|
| SIEM 服务器 | Ubuntu 22.04 LTS — Wazuh 4.8.2(Manager + Dashboard + Indexer) |
| Windows 端点 | Windows 10 — Wazuh Agent v4.8.2 + Sysmon v15 |
| 网络 | 192.168.122.0/24(KVM/libvirt) |
| Wazuh 服务器 IP | 192.168.122.29 |
| Windows 代理 IP | 192.168.122.101 |
| 代理 ID | 002(DESKTOP-M5T5582) |
## 威胁情报源
| 源 | IOC 类型 | 来源 |
|---|---|---|
| 新兴威胁 | 受损 IP(约 405 个) | `rules.emergingthreats.net/blockrules/compromised-ips.txt` |
| Feodo Tracker | 网络钓鱼 C2 IP(约 5 个) | `feodotracker.abuse.ch/downloads/ipblocklist.txt` |
| URLhaus | 恶意域名 + IP(约 14K 个) | `urlhaus.abuse.ch/downloads/csv_recent/` |
| MalwareBazaar | SHA256 哈希(约 619 个) | `bazaar.abuse.ch/export/txt/sha256/recent/` |
| OpenPhish | 网络钓鱼域名(约 271 个) | `openphish.com/feed.txt` |
| AlienVault OTX | IP/域名/哈希 | `otx.alienvault.com`(需要 API 密钥) |
**合并总数:6,252 个 IP · 473,837 个域名 · 664 个哈希 = 480K+ IOCs**
## 检测规则
| 规则 ID | 级别 | Sysmon EID | 字段 | IOC 类型 | MITRE |
|---|---|---|---|---|---|
| 100200 | 12 | EID 3 — 网络 | `win.eventdata.destinationIp` | 恶意 IP 出站 | T1071 |
| 100201 | 12 | EID 3 — 网络 | `win.eventdata.sourceIp` | 恶意 IP 入站 | T1071 |
| 100202 | 13 | EID 22 — DNS | `win.eventdata.queryName` | 恶意域名 DNS | T1071.004 |
| 100203 | 13 | EID 3 — 网络 | `win.eventdata.destinationHostname` | 恶意主机名 | T1071 |
| 100204 | 15 | EID 1 — 进程 | `win.eventdata.hashes` | 恶意软件哈希执行 | T1204.002 |
| 100205 | 14 | EID 7 — DLL 加载 | `win.eventdata.hashes` | 恶意 DLL 加载 | T1574 |
## 结果
所有 6 个规则在真实 Sysmon 事件中确认触发了:
| 规则 | 描述 | 警报 |
|---|---|---|
| 100200 | 恶意 IP 出站 | 3 |
| 100201 | 恶意 IP 入站 | 3 |
| 100202 | 恶意域名 DNS 查询 | 4 |
| 100203 | 恶意目标主机名 | 2 |
| 100204 | 恶意软件哈希执行 | 10 |
| 100205 | 恶意 DLL/image 加载 | 3 |
| **总计** | | **25** |
## 仓库结构
```
.
├── sync_feeds.py # Feed ingestion, normalization, CDB write
├── rules/
│ └── threat-intel-rules.xml # Wazuh correlation rules (100200–100205)
├── config/
│ └── ossec.conf.snippet # ossec.conf block with list registrations
└── README.md
```
## 安装
### 前提条件
- 在 Ubuntu 上安装了 Wazuh 4.8.2 管理器
- Windows 10 端点配置了 Wazuh 代理和 Sysmon
- Wazuh 服务器上的 Python 3 和 `requests`
- AlienVault OTX 账户(免费)用于 OTX 源
### 1. 克隆仓库
```
git clone https://github.com/yourusername/threat-intel-wazuh.git
cd threat-intel-wazuh
```
### 2. 安装 Python 依赖项
```
pip3 install requests --break-system-packages
```
### 3. 部署同步脚本
```
sudo mkdir -p /opt/threat-intel
sudo cp sync_feeds.py /opt/threat-intel/sync_feeds.py
```
编辑脚本并设置您的 OTX API 密钥:
```
OTX_API_KEY = "your_key_here"
```
在 [otx.alienvault.com](https://otx.alienvault.com) 获取免费密钥 → 设置 → API 密钥。
### 4. 运行同步脚本
```
sudo python3 /opt/threat-intel/sync_feeds.py
```
预期输出:
```
[*] Fetching OTX (subscribed pulses)...
OTX: 15 IPs, 465273 domains, 45 hashes
[*] Fetching Emerging Threats compromised IPs...
Emerging Threats: 405 IPs
[*] Fetching Feodo Tracker botnet C2 IPs...
Feodo Tracker: 5 IPs
[*] Fetching MalwareBazaar SHA256 hashes...
MalwareBazaar: 619 hashes
[*] Fetching URLhaus malicious URLs...
URLhaus: 8296 domains, 5831 IPs
[*] Fetching OpenPhish phishing domains...
OpenPhish: 271 domains
[+] Final totals — IPs: 6252, Domains: 473837, Hashes: 664
[+] Wrote 6252 entries → malicious-ips
[+] Wrote 473837 entries → malicious-domains
[+] Wrote 664 entries → malicious-hashes
[+] Wazuh reloaded. Sync complete.
```
### 5. 安排每日刷新
```
sudo crontab -e
# 添加
0 2 * * * python3 /opt/threat-intel/sync_feeds.py >> /var/log/threat-intel-sync.log 2>&1
```
### 6. 在 ossec.conf 中注册 CDB 列表
在 `/var/ossec/etc/ossec.conf` 中的 `` 块内添加:
```
- etc/lists/malicious-ips
- etc/lists/malicious-domains
- etc/lists/malicious-hashes
标签:AMSI绕过, Sysmon, Wazuh, 去重, 威胁情报, 威胁情报集成, 威胁检测, 安全事件响应, 安全信息与事件管理, 安全运营, 开发者工具, 开源威胁情报源, 恶意IP检测, 恶意域名检测, 扫描框架, 搜索引擎爬取, 数据归一化, 文件哈希检测, 逆向工具