prapachaiuea/threat-intel-radar
GitHub: prapachaiuea/threat-intel-radar
每日自动聚合多个免费威胁情报源的实时 IOC 并可视化展示检测覆盖层级差距的仪表盘工具。
Stars: 0 | Forks: 0
# 📡 威胁情报雷达
这是一个每日刷新的仪表盘,它从
三个免费的威胁情报源中拉取实时入侵指标,对它们进行去重,并回答一个
具体问题:**今天活跃的威胁态势与我
检测规则实际监视的层级匹配吗?**


**实时仪表盘:** https://prapachaiuea.github.io/threat-intel-radar/
## 为什么会有这个项目
这是 [`detection-as-code`](https://github.com/prapachaiuea/detection-as-code) 的配套项目,
后者包含 6 个 Sigma 规则——全部用于监视主机遥测数据(Sysmon 进程
创建/访问,Windows 安全事件日志)。这个项目旨在弄清:当前
到底有什么在活跃传播,以及它们处于哪个层级?
**坦诚的发现,而非捏造:** 这里的三个情报源
(URLhaus, Feodo Tracker, ThreatFox) 报告的是**网络和文件**层级的
指标——IP、域名、URL、哈希值。而 `detection-as-code` 的规则
100% 属于**主机**层级。目前没有准确的方法可以断言“这个 IOC 会
触发那条规则”——因为它们是完全不同的遥测数据。因此,与其
伪造每个指标的关联性,这个仪表盘如实报告了这种
差距:今天追踪的活动中,网络、文件还是
主机层级各占多大比例,这是一种合理的方式,用于发现检测程序的
覆盖范围在何处存在薄弱环节。
## 情报源
这三个情报源均由 [abuse.ch](https://abuse.ch/) 免费提供,无需 API key:
| 情报源 | 追踪内容 |
|---|---|
| [URLhaus](https://urlhaus.abuse.ch/) | 近期报告的恶意 URL |
| [Feodo Tracker](https://feodotracker.abuse.ch/) | 活跃的 botnet C2 IP 地址 |
| [ThreatFox](https://threatfox.abuse.ch/) | 带有结构化威胁类型/恶意软件标签的近期 IOC |
每个情报源都是独立抓取的——如果其中一个宕机或受到频率限制,
报告依然会基于另外两个情报源生成,并在
“情报源状态”栏中明确说明情况,而不是
静默失败或导致整个
pipeline 崩溃。
## 构建方式
```
generate_report.py
├── feeds/urlhaus.py, feedotracker.py, threatfox.py (fetch + normalize)
├── aggregator.py (dedupe + stats)
├── coverage.py (layer gap analysis)
└── dashboard/template.html + style.css → docs/index.html
```
- `feeds/*.py` 各自暴露了 `fetch_recent()`(在线)和 `parse()`(纯粹的、
可测试的)接口——测试套件会针对 `tests/fixtures/` 中的真实记录
样本响应来执行 `parse()`,因此测试不仅快速、确定,
而且在 CI 运行时不依赖于第三方情报源是否可达。
- `coverage.py` 根据每个指标的 `ioc_type` 来分类其*层级*(网络/文件),而不是靠猜测某个恶意软件家族“通常做什么”
——这是一种小巧、完整且有理有据的映射方式,而非投机性的猜测。
## CI
特意设计了两个独立的工作流:
- **`tests.yml`** —— 在每次推送/PR 时运行,基于 fixture,无网络
依赖。PR 不会因为外部情报源恰好
宕机而失败。
- **`refresh.yml`** —— 每日按计划运行(+手动触发),访问
实时情报源,重新构建
仪表盘,并将其部署到 GitHub Pages。
## 特意不做的事 (v1)
- **无历史记录。** `docs/` 在每次运行时都会重新构建,并且不提交
到 git 中——实时页面始终反映最新的刷新状态,但目前还没有
随时间变化的趋势视图。这是一个真正的 v2 版本构想,而不是在这里做了一半的功能。
- **无针对 IOC 的规则关联。** 如上文所述,那将需要
在网络指标和基于主机的检测
规则之间建立联系,而这实际上是不存在的。
## 本地运行
```
pip install -r requirements.txt
python generate_report.py
```
在浏览器中打开 `docs/index.html` 进行查看。测试:
```
pytest -v
```
## License
MIT
标签:IOC聚合, 多模态安全, 威胁情报, 安全规则引擎, 安全运营, 开发者工具, 扫描框架, 自动化情报采集, 逆向工具, 防御覆盖度分析