Hibattallah/threat-intelligence-platform
GitHub: Hibattallah/threat-intelligence-platform
一个基于 FastAPI 和原生 JavaScript 构建的全栈威胁情报平台,支持多源 IOC 收集、自动关联聚类和图谱化威胁狩猎调查。
Stars: 0 | Forks: 0
# 威胁情报平台
一个使用 **FastAPI**、**SQLAlchemy** 和 **原生 JavaScript** 构建的全栈威胁情报平台,用于收集、丰富、关联和聚类妥协指标,并通过 REST API 和深色分析师控制台仪表板将所有内容展示出来。
原始指标(恶意 IP、域名、URL 和文件哈希)从一端输入;在另一端,分析师可以获得去重、风险评分、归因到威胁行为者的 IOC,自动发现它们之间的关系,自动聚类的威胁活动,以及用于搜索、扩展和基于图谱调查的威胁狩猎界面。
## 截图
**登录**

**概览** — 涵盖所有已摄取指标的实时态势:总数、风险分布、IOC 类型和热门国家。

**Feed 源与近期 IOC** — 各个 Feed 的健康状态以及最新摄取的指标。

**活动** — 基于共享的威胁行为者、恶意软件家族和基础设施自动聚类的 IOC,包含热门行为者和热门恶意软件的细分。

**最高置信度的活动** — 可筛选的活动卡片,每张卡片显示置信度、IOC 数量和内部关系链接。

**威胁狩猎** — 搜索指标,通过关系进行扩展,并追踪图谱。

**扩展调查** — 单个指标的相关 IOC、关系和活动归属。

**关系图谱** — 交互式 Cytoscape.js 图谱,节点按风险级别着色。

**报告** — 将当前数据集导出为 CSV、JSON 或 PDF。

## 功能
### 身份验证
- 基于 JWT 的身份验证(登录、注册、`/me`)
- 首位注册的用户将自动成为管理员
### IOC 处理流水线
- 多 Feed 收集,在未配置 API 密钥时可优雅回退至真实的模拟数据
- 规范化、验证、去重、丰富和风险评分
- 支持 IP 地址、域名、URL 和文件哈希
### 威胁情报引擎
- **关联引擎** — 基于共享的威胁行为者、恶意软件家族、ASN、ISP、国家、标签和来源重合度,自动发现 IOC 之间的关系
- **活动检测引擎** — 使用图连通分量分析将相关的 IOC 聚类为命名的活动,并进行置信度和风险聚合
- **威胁狩猎引擎** — 过滤搜索、单 IOC 扩展调查以及 BFS 关系图谱遍历
### 仪表板
一个交互式的单页分析师控制台,包含:
- 概览统计、风险分布、IOC 类型和热门国家
- Feed 健康监控和近期 IOC 表格
- 带有分析和可筛选卡片网格的活动浏览器
- 威胁狩猎搜索、扩展面板和关系图谱
- 一键生成 CSV / JSON / PDF 报告
采用定制的深色分析师控制台设计系统(不使用 UI 框架)构建,使用 Chart.js 进行统计,使用 Cytoscape.js 绘制关系图谱。
### 报告
生成并下载 CSV、JSON 或 PDF 格式的报告。
### REST API
完全文档化的 REST API,涵盖身份验证、IOC、搜索、统计、Feed、关系、活动、狩猎和报告。
```
/api/auth
/api/iocs
/api/search
/api/statistics
/api/feeds
/api/relationships
/api/campaigns
/api/hunting
/api/reports
```
交互式 Swagger 文档可在以下地址获取:
```
http://localhost:8000/docs
```
## 架构
```
Threat Feeds
│
▼
Collectors ──────────► Normalization ──────────► Validation
│
▼
Database ◄─── Risk Scoring ◄─── Enrichment ◄─── Deduplication
│
├──────────► Correlation Engine ────► Relationship API
├──────────► Campaign Detection ────► Campaign API
├──────────► Threat Hunting ────► Hunting API
├──────────► Statistics / Reports
└──────────► Analyst Dashboard (web)
```
## 项目结构
```
app/ FastAPI application, configuration, scheduler, database setup
api/ REST API endpoints (auth, iocs, feeds, statistics, reports,
search, relationships, campaigns, hunting)
collectors/ Threat feed collectors (VirusTotal, AbuseIPDB, OTX,
MalwareBazaar, URLhaus, Shodan), each with a simulated fallback
core/ IOC processing pipeline, correlation engine, campaign
detection engine, threat hunting engine
docs/ Documentation and dashboard screenshots
frontend/ Dashboard, login, and search pages (templates, CSS, JS)
models/ SQLAlchemy models
scripts/ Utility scripts and the demo data seeder
services/ Authentication, security, and pipeline orchestration
tests/ Automated unit tests
exports/ Generated reports (CSV / JSON / PDF)
```
## 快速开始
创建虚拟环境
```
python3 -m venv venv
source venv/bin/activate
```
安装依赖
```
pip install -r requirements.txt
```
配置环境
```
cp .env.example .env
```
运行应用
```
uvicorn app.main:app --reload
```
打开
```
http://localhost:8000
```
本项目附带了一个即开即用的演示数据库 (`tip.db`):包含 10,000 个 IOC、约 55,000 个关联关系以及约 550 个检测到的活动。请使用以下凭据登录:
```
username: admin
password: ChangeMe123!
```
在部署到你自己的机器以外的任何地方之前,请更改此密码(或删除 `tip.db` 并从空白状态开始)。
要自行重新生成演示数据集:
```
rm -f tip.db
python scripts/seed_demo_data.py
python -c "
from app.database import SessionLocal
from core.correlation import run_correlation
from core.campaigns import create_campaigns
db = SessionLocal()
run_correlation(db)
create_campaigns(db)
db.close()
"
```
## Docker
```
docker compose up --build
```
## 技术
**后端**
- FastAPI
- SQLAlchemy
- SQLite(可通过 `DATABASE_URL` 切换为 PostgreSQL)
- JWT 身份验证(python-jose + passlib/bcrypt)
- APScheduler(后台 Feed 刷新)
- ReportLab(PDF 生成)
**前端**
- HTML5
- 定制 CSS 设计系统
- Chart.js
- Cytoscape.js
- 原生 JavaScript
**工具**
- Pytest
- Docker / docker-compose
## 测试
```
pytest tests/ -q
```
## 未来路线图
- MITRE ATT&CK 技术映射
- STIX 2.1 导入/导出和 TAXII 客户端
- 针对新的严重风险 IOC 或活动的实时警报
- 身份验证之外基于角色的端点访问控制
- PostgreSQL 生产部署指南
## 许可证
本项目旨在用于教育和作品集展示目的。
标签:AV绕过, DInvoke, FastAPI, 威胁情报, 安全运营, 开发者工具, 扫描框架, 数据可视化, 网络测绘, 请求拦截