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 ``` ### 7. 部署关联规则 ``` sudo cp rules/threat-intel-rules.xml /var/ossec/etc/rules/threat-intel-rules.xml sudo chown wazuh:wazuh /var/ossec/etc/rules/threat-intel-rules.xml ``` ### 8. 重新启动 Wazuh 管理器 ``` sudo systemctl restart wazuh-manager sudo systemctl status wazuh-manager ``` 确认规则已加载且无警告: ``` sudo journalctl -u wazuh-manager --since "2 minutes ago" | grep -i "warn\|error" ``` ## 验证警报 ### 监控实时警报 ``` sudo tail -f /var/ossec/logs/alerts/alerts.log | grep -A 5 "Rule: 1002" ``` ### 触发测试警报 — 恶意 IP(规则 100200) 在 Windows 端点(以管理员身份运行 PowerShell): ``` curl.exe --max-time 3 http://1.10.209.143 ``` 规则 100200 应在 5 秒内触发。 ### 触发测试警报 — 恶意域名 DNS(规则 100202) ``` nslookup 0011.s3.cubbit.eu ``` 规则 100202 在 DNS 查询事件(Sysmon EID 22)上触发。 ### 在 Wazuh Dashboard 中查看 1. 打开 Wazuh Dashboard → 发现 2. 过滤:`rule.groups: threat_intel` 3. 时间范围:过去 24 小时 4. 添加列:`rule.id`、`rule.description`、`rule.level`、`data.win.eventdata.image` ### 警报计数摘要 ``` sudo grep -a "Rule: 1002" /var/ossec/logs/alerts/alerts.log \ | grep -oP "Rule: \d+" | sort | uniq -c ``` ## 关键技术要点 **CDB 文件所有权** — 同步脚本必须以 `wazuh:wazuh` 用户身份使用 `660` 权限写入文件。文件必须直接位于 `/var/ossec/etc/lists/` 中(不在子目录中),以便 Wazuh 在重启时自动编译 `.cdb` 二进制文件。 **字段路径** — Wazuh 4.8.2 Sysmon 规则使用 `win.eventdata.*` 而不是 `data.win.eventdata.*`。从内置规则集中确认: ``` sudo grep "destinationIp" /var/ossec/ruleset/rules/0595-win-sysmon_rules.xml ``` **Sysmon 组名称** — DNS 事件组是 `sysmon_event_22`(22 前面有下划线),而不是 `sysmon_event22`。 **哈希匹配** — Sysmon 将哈希存储为 `MD5=...,SHA256=...,IMPHASH=...`。CDB `match_key` 查找匹配子字符串,因此 CDB 中的纯 SHA256 哈希将匹配 Sysmon 哈希字符串的完整字符串。为了精确匹配,在同步脚本中为条目添加前缀 `SHA256=`。 ## 局限性 | 局限性 | 未来解决方案 | |---|---| | 没有IOC置信度评分 — 可能出现误报 | MISP TIP 与置信度级别 | | 没有IOC过期/TTL管理 | MISP 生命周期管理 | | 警报中没有来源归属 | 用源名称标记 CDB 值 | | 没有STIX/TAXII标准化 | MISP STIX/TAXII 输出到 Wazuh 模块 | | 哈希格式是完整的 Sysmon 字符串而不是单个哈希 | 在同步脚本中为条目添加前缀 `SHA256=` | | 没有自动响应 | Wazuh Active Response 用于 IP 封锁 | ## 使用技术 - [Wazuh](https://wazuh.com) 4.8.2 — SIEM 平台 - [Sysmon](https://learn.microsoft.com/en-us/sysinternals/downloads/sysmon) v15 — Windows 端点遥测 - [AlienVault OTX](https://otx.alienvault.com) — 威胁情报源 - [Abuse.ch](https://abuse.ch) — URLhaus + MalwareBazaar 源 - [Emerging Threats](https://rules.emergingthreats.net) — IP 黑名单 - [OpenPhish](https://openphish.com) — 网络钓鱼 URL 源 - Python 3 — 源摄取和标准化
标签:AMSI绕过, Sysmon, Wazuh, 去重, 威胁情报, 威胁情报集成, 威胁检测, 安全事件响应, 安全信息与事件管理, 安全运营, 开发者工具, 开源威胁情报源, 恶意IP检测, 恶意域名检测, 扫描框架, 搜索引擎爬取, 数据归一化, 文件哈希检测, 逆向工具