vasanth-void-0x/Threat-Hunting-Dashboard
GitHub: vasanth-void-0x/Threat-Hunting-Dashboard
一款 SOC 风格的威胁狩猎仪表板,支持对 IOC 进行 VirusTotal 情报查询、GeoIP 攻击者定位、MITRE ATT&CK 技术映射并自动生成 PDF 事件报告。
Stars: 0 | Forks: 0
# 威胁狩猎仪表板
这是一款 SOC 风格的威胁狩猎工具,它接收 IOC(IP 地址、域名或文件哈希),利用 **威胁情报 (VirusTotal)**、**地理定位 (GeoIP)** 和 **MITRE ATT&CK 技术映射**对其进行丰富,然后生成可下载的 **PDF 事件报告** —— 所有这些都在一个深色主题的仪表板中完成。
  
## 功能
- 🔍 **IOC 分析** —— 提交 IP、域名或文件哈希进行分类筛选
- 🛡️ **集成 VirusTotal** —— 信誉评分、恶意投票数、威胁类别
- 🌍 **GeoIP 攻击者追踪** —— 实时查询,带有动画世界地图标记
- 🧭 **MITRE ATT&CK 映射** —— 自动将检测到的威胁类别映射到战术 + 技术
- 📄 **自动化 PDF 事件报告** —— 每次调查均可一键生成报告
- 📊 **实时统计** —— 一目了然地查看恶意 / 可疑 / 干净的数量
- ⚡ **演示模式** —— 如果未配置 API 密钥,将使用确定的模拟数据完全离线运行
## 技术栈
`Python` · `Flask` · `MITRE ATT&CK` · `VirusTotal API` · `GeoIP (ip-api.com)` · `ReportLab (PDF)` · `Vanilla JS/SVG`
## 架构
```
Threat-Hunting-Dashboard/
├── app.py # Flask routes & orchestration
├── modules/
│ ├── virustotal_api.py # VT lookup (live + demo fallback)
│ ├── geoip_lookup.py # IP -> location (live + demo fallback)
│ ├── mitre_attack.py # threat category -> MITRE technique
│ └── pdf_report.py # PDF incident report generator
├── templates/index.html # Dashboard UI
├── static/css/style.css # Dark neon SOC theme
├── static/js/dashboard.js # Map rendering, API calls, table
├── sample_data/ # Persisted investigation history (JSON)
└── reports/ # Generated PDF reports
```
## 设置
```
git clone https://github.com/vasanth-void-0x/Threat-Hunting-Dashboard.git
cd Threat-Hunting-Dashboard
pip install -r requirements.txt
cp .env.example .env
python app.py
```
在浏览器中打开 `http://localhost:5000`。
### 实时 VirusTotal 查询(可选)
在 [virustotal.com](https://www.virustotal.com/gui/join-us) 获取一个免费的 API 密钥,并将其添加到 `.env` 中:
```
VT_API_KEY=your_key_here
```
如果没有密钥,应用程序将以 **演示模式** 运行,并使用确定的模拟数据 —— 相同的 IOC 总是返回相同的判定结果,因此即使没有 API 密钥也可以安全地进行演示。
## 工作原理
1. 分析师通过仪表板提交 IOC(IP/域名/哈希)
2. `virustotal_api.py` 检查信誉 —— 恶意投票比例决定判定结果(干净 / 可疑 / 恶意)
3. `geoip_lookup.py` 解析攻击者的大致位置(针对 IP)
4. `mitre_attack.py` 将检测到的威胁类别映射到 MITRE ATT&CK 战术 + 技术 ID
5. 结果会被持久化,并渲染到实时地图和调查表中
6. 分析师可以为任何调查下载单页的 PDF 事件报告
## 可尝试的示例 IOC(演示模式)
| IOC | 类型 |
|---|---|
| 185.220.101.5 | IP |
| 45.155.205.1 | IP |
| malware-test.com | 域名 |
## 路线图
- [ ] 经过身份验证的多分析师模式
- [ ] 针对恶意判定结果的电子邮件告警
- [ ] 通过 CSV 批量上传 IOC
- [ ] 从 Wazuh/Splunk 实时摄取数据源
## 作者
**Vasanth Kumar** —— 网络安全与数字取证专业毕业生
[GitHub](https://github.com/vasanth-void-0x) · [LinkedIn](https://linkedin.com/in/vasanth-2k4)
标签:Elastic, Flask, IOC分析, 后端开发, 威胁情报, 安全运营, 开发者工具, 扫描框架, 逆向工具