Tester623/threat-intelligence-platform

GitHub: Tester623/threat-intelligence-platform

该平台聚合 OSINT 威胁情报源,利用 Neo4j 图数据库映射威胁行为者、攻击活动和 IOC 的关系,支持可视化分析和 STIX 2.1 标准交换。

Stars: 0 | Forks: 0

``` _____ _ _ ___ _ _ ____ _ _ __ |_ _| |__ _ __ ___ __ _| |_ |_ _|_ __ | |_ ___| | | _ \| | __ _| |_ / _| ___ _ __ _ __ ___ | | | '_ \| '__/ _ \/ _` | __| | || '_ \| __/ _ \ | | |_) | |/ _` | __| |_ / _ \| '__| '_ ` _ \ | | | | | | | | __/ (_| | |_ | || | | | || __/ | | __/| | (_| | |_| _| (_) | | | | | | | | |_| |_| |_|_| \___|\__,_|\__| |___|_| |_|\__\___|_| |_| |_|\__,_|\__|_| \___/|_| |_| |_| |_| ``` ![Python](https://img.shields.io/badge/Python-3.11+-blue?logo=python) ![FastAPI](https://img.shields.io/badge/FastAPI-0.109-009688?logo=fastapi) ![Neo4j](https://img.shields.io/badge/Neo4j-5.15-008CC1?logo=neo4j) ![React](https://img.shields.io/badge/React-18-61DAFB?logo=react) ![STIX](https://img.shields.io/badge/STIX-2.1-orange) ![Docker](https://img.shields.io/badge/Docker-Compose-2496ED?logo=docker) ![Tests](https://img.shields.io/badge/Tests-76_passed-brightgreen) 一个**威胁情报平台 (TIP)**,聚合 OSINT 威胁情报源,将威胁数据存储在 Neo4j 图数据库中,映射威胁行为者、攻击活动、IOC 和 TTP 之间的关系,支持 STIX 2.1 导入/导出,交互式地可视化威胁图谱,并包含带有完整审计日志的 RBAC。 ## 架构 ``` graph TB subgraph Frontend React[React 18 + Vite] VisNetwork[vis-network Graph] AttackMatrix[ATT&CK Heatmap] GeoMap[Geographic Threat Map] Recharts[Recharts Dashboard] Auth[Auth Context + JWT] end subgraph Backend FastAPI[FastAPI Server] RBAC[RBAC Middleware] AuditLog[Audit Logger] APScheduler[APScheduler Feed Sync] STIXService[STIX 2.1 Service] end subgraph Data Neo4j[(Neo4j Graph DB)] MockFeeds[Mock Feed Files] UserStore[User Store + JWT] end React --> FastAPI VisNetwork --> FastAPI Recharts --> FastAPI AttackMatrix --> FastAPI GeoMap --> FastAPI Auth --> RBAC FastAPI --> Neo4j RBAC --> UserStore RBAC --> AuditLog APScheduler --> MockFeeds APScheduler --> Neo4j STIXService --> Neo4j ``` ## 图数据模型 ``` erDiagram ThreatActor ||--o{ Campaign : ATTRIBUTED_TO ThreatActor ||--o{ IOC : USES ThreatActor ||--o{ TTP : USES Campaign ||--o{ IOC : USES Campaign ||--o{ TTP : USES Report ||--o{ ThreatActor : REFERENCES Report ||--o{ Campaign : REFERENCES IOC ||--o{ IOC : RELATED_TO ThreatActor { string name list aliases string sophistication string motivation string origin_country string tlp } Campaign { string name string status list target_sectors list target_regions } IOC { string value string type int confidence list tags string source_feed } TTP { string technique_id string technique_name string tactic } Report { string title string published string tlp } ``` ## 快速开始 ``` git clone https://github.com/yourusername/threat-intel-platform.git cd threat-intel-platform docker compose up ``` 打开 [http://localhost:3000](http://localhost:3000) 并使用以下默认账户之一登录: | 用户名 | 密码 | 角色 | TLP 授权级别 | |----------|----------|------|---------------| | `admin` | `admin123` | Admin | RED(完全访问) | | `analyst` | `analyst123` | Analyst | AMBER(写权限) | | `viewer` | `viewer123` | Read-only | GREEN(受限查看) | ## 截图 | 仪表盘 | 威胁图谱 | ATT&CK 矩阵 | |-----------|-------------|----------------| | ![仪表盘](https://raw.githubusercontent.com/Tester623/threat-intelligence-platform/main/docs/screenshots/dashboard.png) | ![图谱](https://raw.githubusercontent.com/Tester623/threat-intelligence-platform/main/docs/screenshots/graph.png) | ![ATT&CK](https://raw.githubusercontent.com/Tester623/threat-intelligence-platform/main/docs/screenshots/attack-matrix.png) | | 地理地图 | 行为者档案 | 审计日志 | |---------------|---------------|-----------| | ![地理](https://raw.githubusercontent.com/Tester623/threat-intelligence-platform/main/docs/screenshots/geo-map.png) | ![行为者](https://raw.githubusercontent.com/Tester623/threat-intelligence-platform/main/docs/screenshots/actors.png) | ![审计](https://raw.githubusercontent.com/Tester623/threat-intelligence-platform/main/docs/screenshots/audit-log.png) | ## 功能 ### 威胁情报 - **8 个真实的威胁行为者**(APT29、APT28、Lazarus、FIN7、Sandworm、Scattered Spider、OilRig、Kimsuky) - **6 个攻击活动档案**,包含目标部门、区域和状态跟踪 - **42+ 个 IOC**,涵盖 IP、域名、URL、哈希和电子邮件,并带有置信度评分 - **15 个 MITRE ATT&CK TTP**,映射贯穿整个杀伤链 - **4 份威胁报告**,带有 TLP 标记 ### MITRE ATT&CK 热力图矩阵 - 完整的 ATT&CK 战术列:从 Resource Development 到 Impact - 根据行为者覆盖强度对技术单元格进行颜色编码 - 点击任意技术查看哪些威胁行为者在使用它 - 显示利用率的覆盖度柱状图 - 带有 4 级颜色渐变的图例 ### 地理威胁地图 - 带有行为者源头标记的 SVG 世界地图(按成熟度着色) - 从攻击源头到攻击活动目标区域的动画虚线弧 - 点击行为者查看攻击活动详情、目标部门和区域 - 按动机过滤(间谍活动、金融犯罪、破坏活动) - 带有自动布局的脉冲标记 ### 图谱可视化 - 带有颜色编码节点类型的交互式 vis-network 图谱 - 节点大小随连接数缩放 - 按节点类型过滤(Actor/Campaign/IOC/TTP/Report) - 点击高亮连接的节点并显示详情面板 - 支持物理引擎的自组织布局 ### RBAC 与安全 - 带有登录/注册流程的 **JWT 身份验证** - **3 种角色:** Admin(完全访问)、Analyst(读/写)、Read-only(仅查看) - **基于 TLP 的访问控制:** 用户只能看到与其授权级别匹配的数据 - WHITE:公开,对所有人可见 - GREEN:社区,对 GREEN 及以上授权级别可见 - AMBER:受限,对 AMBER 及以上授权级别可见 - RED:限制,仅 Admin 可见 - 写入操作(创建行为者、导入 STIX、批量导入 IOC)需要 Analyst 或 Admin 角色 - 显示角色和 TLP 授权级别的用户徽章栏 ### 审计追踪 - 对所有平台操作(查看、搜索、导出、创建)进行**完整的审计日志记录** - 每个 API 调用都会记录:时间戳、用户名、操作、资源类型、资源 ID、详细信息 - 仅限 Admin 访问的审计日志页面,包含: - 统计仪表盘:总事件数、活跃用户、热门操作 - 可按用户、操作和资源类型过滤的表格 - 颜色编码的操作徽章 - 用于监控的审计统计 endpoint ### OSINT 情报源聚合 - URLhaus(恶意 URL) - AlienVault OTX(威胁脉冲) - MISP(威胁共享事件) - Feodo Tracker(僵尸网络 C2 服务器) - 基于 APScheduler 的每 60 秒自动同步 - 自动将情报源 IOC 链接到已知的行为者/攻击活动 ### STIX 2.1 支持 - 将数据库完整导出为 STIX 2.1 bundle - 导入 STIX bundle 并自动合并 - 转换所有节点类型:threat-actor、campaign、indicator、attack-pattern、report、relationship ### 搜索与分析 - 支持类型、置信度、情报源和文本过滤的 IOC 搜索 - 跨越行为者、攻击活动和 IOC 的全局搜索 - 带有 IOC 类型分布和行为者动机图表的仪表盘 - 热门标签和最近活动源 ## API Endpoints | 方法 | Endpoint | 权限 | 描述 | |--------|----------|------|-------------| | POST | `/api/auth/register` | - | 注册新用户 | | POST | `/api/auth/login` | - | 登录,获取 JWT | | GET | `/api/auth/me` | Any | 当前用户信息 | | GET | `/api/auth/audit` | Admin | 带有过滤器的审计日志 | | GET | `/api/auth/audit/stats` | Admin | 审计统计数据 | | GET | `/api/stats` | - | 仪表盘统计数据 | | GET | `/api/analytics/attack-matrix` | - | ATT&CK 矩阵数据 | | GET | `/api/analytics/geo` | - | 地理威胁数据 | | GET | `/api/actors` | - | 列出行为者(经 TLP 过滤) | | GET | `/api/actors/{id}` | - | 行为者档案(已进行 TLP 检查) | | GET | `/api/actors/{id}/graph` | - | 行为者子图 | | POST | `/api/actors` | Analyst+ | 创建行为者 | | GET | `/api/campaigns` | - | 列出攻击活动 | | GET | `/api/campaigns/{id}` | - | 攻击活动详情 | | GET | `/api/iocs` | - | 搜索 IOC | | POST | `/api/iocs` | Analyst+ | 创建 IOC | | POST | `/api/iocs/bulk` | Analyst+ | 批量导入 IOC | | GET | `/api/graph/full` | - | 完整平台图谱 | | GET | `/api/feeds/status` | - | 情报源同步状态 | | POST | `/api/feeds/sync` | - | 手动同步情报源 | | GET | `/api/stix/export` | - | 导出 STIX 2.1 bundle | | POST | `/api/stix/import` | Analyst+ | 导入 STIX 2.1 bundle | ## 测试 ``` pip install -r backend/requirements.txt python -m pytest backend/tests/ -v ``` **76 个测试**涵盖: - 图谱操作(完整图谱、行为者子图、IOC 图谱、统计数据) - STIX 2.1 转换(所有 5 种对象类型 + 关系 + 导入/导出) - 搜索服务(带过滤器的 IOC 搜索、全局搜索) - 情报源解析(URLhaus、OTX、MISP、Feodo 格式) - 分析(IOC 类型、行为者动机、顶级行为者、攻击活动时间线) - 身份验证(注册、登录、JWT 创建/验证、token 篡改) - TLP 访问控制(层级检查、授权验证) - 审计日志(创建条目、过滤、统计、按时间倒序) - API endpoints(统计数据、行为者、IOC、情报源、STIX 导出) ## 技术栈 - **后端:** Python 3.11, FastAPI, neo4j-driver, APScheduler, Pydantic v2 - **前端:** React 18, Vite, TailwindCSS, vis-network, Recharts, Axios - **数据库:** Neo4j 5.15(使用 Cypher 查询的图数据库) - **认证:** JWT token,RBAC(3 种角色),基于 TLP 的访问控制 - **数据格式:** STIX 2.1 - **基础设施:** Docker Compose, GitHub Actions CI ## 展示的技能 - **图数据库建模** -- 包含 5 种节点类型和 7 种关系类型的 Neo4j schema 设计,参数化 Cypher 查询 - **STIX 2.1 / TAXII 威胁情报标准** -- 内部图模型与 STIX 2.1 bundle 之间的双向转换 - **CTI 工作流** -- 行为者画像、攻击活动跟踪、IOC 管理、TLP 分类、置信度评分 - **MITRE ATT&CK 框架集成** -- 包含 10 项战术中 15 项技术的完整热力图矩阵,行为者覆盖分析 - **地理威胁分析** -- 带有动画攻击弧线的基于 SVG 的威胁地图,从源头到目标的可视化 - **威胁情报源聚合与解析** -- 多格式情报源摄取(URLhaus、OTX、MISP、Feodo)及自动关联 - **身份验证与授权** -- 基于 JWT 的身份验证、基于角色的访问控制 (RBAC)、TLP 授权层级 - **审计日志与合规性** -- 带有过滤功能、统计仪表盘的完整审计追踪,企业级安全模式 - **全栈开发** -- FastAPI REST API,带有交互式图谱可视化和认证上下文的 React SPA - **基础设施** -- Docker Compose 多服务编排,GitHub Actions CI pipeline - **数据可视化** -- vis-network 交互式图谱,Recharts 分析,ATT&CK 热力图,地理 SVG 地图 ## 许可证 MIT
标签:AV绕过, FastAPI, masscan, Mutation, Neo4j, React, STIX, Syscalls, 可视化, 威胁情报平台, 安全, 请求拦截, 超时处理, 逆向工具