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查询, 企业安全, 协议探测, 威胁关联, 威胁情报, 安全仪表盘, 安全评分, 安全运营中心, 实时处理, 密码管理, 开发者工具, 态势感知, 恶意软件分析, 攻击指标, 无后门, 无服务器架构, 暗网情报, 深度包检测, 网络安全, 网络安全分析, 网络映射, 网络资产管理, 访问控制, 逆向工具, 隐私保护