nishokreddy/Threat-Intelligence-Fusion-Platform
GitHub: nishokreddy/Threat-Intelligence-Fusion-Platform
一个企业级 SOC 威胁情报融合平台,提供多源 IOC 接入、自动分类扩充、动态评分、关联分析以及批量扫描与报告导出的一站式解决方案。
Stars: 0 | Forks: 0
# 🛡️ 威胁情报融合平台
企业级 SOC 威胁情报平台,具备 IOC 扩充、评分、关联分析以及完整的仪表盘 UI。
## 功能特性
| 模块 | 功能 |
|---|---|
| **接入** | VirusTotal API, AbuseIPDB API, RSS/CVE 订阅源 |
| **分类** | 自动检测 IP、domain、hash (MD5/SHA1/SHA256/SHA512)、URL |
| **扩充** | GeoIP (ipinfo.io), ASN/ISP, WHOIS, VT 分析, AbuseIPDB 评分 |
| **评分** | 动态 0-100 评分,包含 Critical/High/Medium/Low 严重级别 |
| **关联** | 跨源 IOC 链接,关系图谱 |
| **API (API)** | FastAPI 后端,Swagger 文档位于 `/docs` |
| **仪表盘** | Streamlit UI,采用深色 Pavyon 风格主题 |
| **批量扫描** | CSV/Excel 上传 → 内嵌控制台视图或异步任务 |
| **导出** | 深色主题 Excel 报告 + 横向 PDF 报告 |
## 快速开始
### 1. 安装依赖
```
pip install -r requirements.txt
```
### 2. 添加 API Keys
编辑 `.env`:
```
VIRUSTOTAL_API_KEY=your_vt_key_here
ABUSEIPDB_API_KEY=your_abuse_key_here
IPINFO_TOKEN=your_ipinfo_token_here
```
**获取免费 API keys 的途径:**
- VirusTotal: https://www.virustotal.com/gui/my-apikey (免费额度:500 次查询/天)
- AbuseIPDB: https://www.abuseipdb.com/account/api (免费额度:1000 次检查/天)
- IPInfo: https://ipinfo.io/account/token (免费额度:50,000 次请求/月)
### 3. 启动所有服务 (单条命令)
```
python run.py
```
或者分别启动:
```
# 终端 1 — Backend API
python backend/main.py
# 终端 2 — Dashboard
streamlit run dashboard/app.py
```
### 4. 打开浏览器
- **仪表盘**: http://localhost:8501
- **API 文档**: http://localhost:8000/docs
## 批量扫描 CSV 格式
创建一个包含名为 `ioc`、`value`、`indicator`、`ip`、`domain`、`hash` 或 `url` 列的 CSV/Excel 文件:
```
ioc
185.220.101.47
evil-phishing-site.com
d41d8cd98f00b204e9800998ecf8427e
https://malware.host/payload.exe
```
平台会自动检测每个条目的 IOC 类型。
### 输出选项
扫描完成后您可以:
1. **在控制台查看** — 结果表格直接显示在仪表盘中
2. **下载 Excel** — 深色主题,按严重级别颜色编码,并带有汇总工作表
3. **下载 PDF** — 横向 A4 报告,包含完整的扩充数据
## API 参考
| 端点 | 描述 |
|---|---|
| `GET /ioc/{value}` | 查找并扩充单个 IOC |
| `GET /search?type=ip&q=...&severity=High` | 搜索 IOCs |
| `GET /top-threats?limit=20` | 评分最高的威胁 |
| `GET /correlations/{value}` | IOC 关联分析 |
| `GET /stats` | 平台统计信息 |
| `POST /scan/inline` | 同步文件扫描 (≤50 个 IOCs) |
| `POST /scan/bulk` | 异步文件扫描 (任意大小) |
| `GET /scan/status/{job_id}` | 轮询异步任务状态 |
| `GET /export/{job_id}/excel` | 下载 Excel 报告 |
| `GET /export/{job_id}/pdf` | 下载 PDF 报告 |
完整的交互式文档:http://localhost:8000/docs
## 威胁评分逻辑
| 信号 | 最高分值 |
|---|---|
| VirusTotal 恶意检测 | 40 |
| VirusTotal 可疑检测 | 10 |
| AbuseIPDB 置信度评分 | 25 |
| 多源关联加分 | 15 |
| 高风险国家 (RU, CN, KP, IR…) | 10 |
| 高风险 ISP / 抗举报托管 | 5 |
| TOR 出口节点 | 10 |
**严重级别阈值:** Critical ≥75 · High ≥50 · Medium ≥25 · Low >0
## 项目结构
```
threat_intel_platform/
├── backend/
│ ├── main.py # FastAPI app + all endpoints
│ ├── config.py # Settings / env vars
│ ├── core/
│ │ ├── classifier.py # IOC type auto-detection
│ │ ├── enrichment.py # Enrichment orchestration engine
│ │ └── scoring.py # Threat scoring algorithm
│ ├── models/
│ │ ├── database.py # SQLAlchemy ORM models
│ │ └── schemas.py # Pydantic request/response schemas
│ └── services/
│ ├── ioc_service.py # IOC CRUD + business logic
│ ├── virustotal.py # VirusTotal API integration
│ ├── abuseipdb.py # AbuseIPDB API integration
│ ├── geoip.py # GeoIP + WHOIS services
│ ├── feeds.py # RSS / threat feed ingestion
│ └── export.py # Excel + PDF report generation
├── dashboard/
│ └── app.py # Streamlit UI (6 pages)
├── data/
│ ├── threat_intel.db # SQLite database (auto-created)
│ └── sample_iocs.csv # Sample IOC list for testing
├── .env # API keys + config
├── requirements.txt
├── run.py # One-command launcher
└── README.md
```
标签:AbuseIPDB, Ask搜索, AV绕过, DAST, FastAPI, GeoIP, HTTP/HTTPS抓包, IOC富化, Kubernetes, Python, SOC平台, Streamlit, VirusTotal, WHOIS查询, 企业安全, 协议探测, 威胁关联, 威胁情报, 安全仪表盘, 安全评分, 安全运营中心, 实时处理, 密码管理, 开发者工具, 态势感知, 恶意软件分析, 攻击指标, 无后门, 无服务器架构, 暗网情报, 深度包检测, 网络安全, 网络安全分析, 网络映射, 网络资产管理, 访问控制, 逆向工具, 隐私保护