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 事件报告** —— 所有这些都在一个深色主题的仪表板中完成。 ![状态](https://img.shields.io/badge/status-active-brightgreen) ![python](https://img.shields.io/badge/python-3.10%2B-blue) ![flask](https://img.shields.io/badge/flask-3.0-black) ## 功能 - 🔍 **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分析, 后端开发, 威胁情报, 安全运营, 开发者工具, 扫描框架, 逆向工具