vidyutraj/AI-Cyber-Threat-Intelligence-Dashboard
GitHub: vidyutraj/AI-Cyber-Threat-Intelligence-Dashboard
全栈威胁情报平台,自动聚合多个公开安全数据源,提取并富化 IOC 和 CVE,结合 ML 评分与可选 AI 能力,通过可视化仪表板为安全团队提供可操作的情报分析。
Stars: 0 | Forks: 0
# 威胁情报仪表板
一个全栈的**网络威胁情报**工作区:它摄取公开的安全数据源,提取 IOC 和 CVE,对其进行富化处理(NVD、EPSS、CISA KEV),对安全事件进行评分和聚类,并通过 **React** UI 将所有内容展示出来。此外,它还带有**可选的 OpenAI** 层,用于生成高管简报、语义搜索嵌入以及 RAG 聊天助手。
**代码仓库:** [github.com/vidyutraj/AI-Cyber-Threat-Intelligence-Dashboard](https://github.com/vidyutraj/AI-Cyber-Threat-Intelligence-Dashboard)
## 为什么会有这个项目
CVE 和威胁信息源通常充满噪音。本项目将**原始文章**转化为**已排名的 CVE**、**趋势 IOC**、**关联图**、**近似去重的事件聚类**、**MITRE ATT&CK 覆盖范围**、**STIX 导出**,以及一个**用于阅读和查询关键信号的统一平台**。
## 功能特性
| 领域 | 您将获得 |
|------|----------------|
| **信息源** | 后台抓取数据至 CSV,每个数据源的时效性,SSE "新文章 "提示 |
| **情报核心** | CVE 评分、IOC 关联图 + 社区发现、趋势 IOC、去重、杀伤链、攻击者提示 |
| **高管视图** | 由 AI 生成的包含 KPI 的简报(需设置 `OPENAI_API_KEY`) |
| **分析师 UI** | 选项卡式仪表板:概览、关联图、杀伤链、攻击者、语义搜索 |
| **恶意软件** | MalwareBazaar 样本列表(可选 API 密钥) |
| **聊天 (ARIA)** | 基于您的语料库 + 富化上下文的 RAG(需要 OpenAI) |
| **导出** | STIX 2.1 包,IOC CSV |
## 技术栈
- **后端:** Python 3.11+、Flask、SQLite 缓存 (`intel_cache.sqlite3`)
- **前端:** React 19、Vite 7、D3 (IOC 关联图)
- **AI(可选):** OpenAI API(聊天、简报、嵌入)
## 架构(高层)
```
RSS / HTML scrape ──► per-source CSV ──► IOC / CVE extraction
│ │
▼ ▼
Background workers intel_cache.sqlite3 ◄── NVD / EPSS / KEV enrichment
(per source) │ Embeddings (OpenAI, optional)
│ │ MinHash near-dupes, IOC trends
▼ ▼
SSE updates Flask API (/api/*, /articles, …)
│
▼
React app (Vite dev proxy → :8001)
```
## 数据源(内置)
| 键值 | 来源 | 备注 |
|-----|--------|--------|
| `thn` | [The Hacker News](https://thehackernews.com/) | RSS |
| `krebs` | [Krebs on Security](https://krebsonsecurity.com/) | RSS |
| `cisa` | [CISA advisories](https://www.cisa.gov/) | RSS |
| `bleepingcomputer` | [BleepingComputer](https://www.bleepingcomputer.com/) | RSS + HTML 分页 |
| `darkreading` | [Dark Reading](https://www.darkreading.com/) | HTML (`curl_cffi`) |
| Malware | [MalwareBazaar](https://bazaar.abuse.ch/) | JSON API(可选密钥) |
文章正文会被扫描以提取 CVE、IP、域名、哈希值以及 MITRE 技术参考。**请尊重各网站的服务条款和速率限制**;本项目仅旨在用于**本地或受控环境**。
## 代码仓库结构
```
├── server.py # Flask app, scrapers, SSE, AI routes
├── intel/ # Scoring, graph, embeddings, STIX, API blueprint
├── *_scraper.py # Source-specific collectors
├── demo_warmup.py # Optional cache warm-up before demos
├── start.sh # Backend :8001 + frontend :5173
├── .env.example # Copy to .env — never commit .env
└── frontend/ # React UI (see frontend/README.md)
```
## 快速开始
### 前置条件
- Python **3.11+**
- Node.js **18+**
- **OpenAI API 密钥** — 生成高管简报、聊天及基于嵌入的语义搜索所必需(其他选项卡在缩减 AI 功能的情况下仍可正常使用)
### 1. 克隆并配置
```
git clone https://github.com/vidyutraj/AI-Cyber-Threat-Intelligence-Dashboard.git
cd AI-Cyber-Threat-Intelligence-Dashboard
cp .env.example .env
# 编辑 .env 并至少设置 OPENAI_API_KEY 如果你需要 AI 功能。
```
### 2. 运行所有服务
```
chmod +x start.sh
./start.sh
```
- **前端:** [http://localhost:5173](http://localhost:5173)
- **后端:** [http://localhost:8001](http://localhost:8001)
Vite 开发服务器将 `/api`、`/articles` 和 `/refresh` 代理到后端(`frontend/vite.config.js`)。
### 3. 手动运行(备选方案)
```
# Terminal 1 — API
python3 -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
set -a && source .env && set +a # or export vars your own way
python server.py
# Terminal 2 — UI
cd frontend && npm install && npm run dev
```
### 4. 可选:在演示前预热缓存
```
source .venv/bin/activate
python demo_warmup.py
```
## 配置
所有变量均在 [`.env.example`](.env.example) 中有详细说明。常见的配置项:
| 变量 | 是否必需 | 描述 |
|----------|----------|-------------|
| `OPENAI_API_KEY` | AI 功能必需 | 聊天、简报、嵌入 |
| `OPENAI_MODEL` | 否 | 默认 `gpt-4o-mini` |
| `MALWAREBAZAAR_API_KEY` | 否 | MalwareBazaar 身份验证 |
| `SCRAPE_INTERVAL_SECONDS` | 否 | 默认 `900`(15 分钟) |
| `VITE_API_BASE` | 否 | 当 UI 需要调用**远程** API 时设置(留空 = 同源 / 代理) |
## API 概览
服务器对外暴露了信息源元数据、分页文章、SSE 流、情报聚合、恶意软件辅助接口以及 AI 端点。完整的路由列表存放在 `server.py` 和 `intel/api.py` 中;以下是核心部分:
- **信息源:** `/api/feed/sources`、`/api/feed/stream`、`/articles`、`/refresh`
- **情报:** `/api/intel/overview`、`/api/intel/graph`、`/api/intel/trending`、`/api/intel/clusters`、`/api/intel/killchain`、`/api/intel/actors`、`/api/intel/similar`、`/api/intel/stix`,…
- **AI:** `/api/incidents/brief`、`/api/chat`
- **恶意软件:** `/api/malware/recent`、`/api/malware/refresh`
## 情报模块 (`intel/`)
| 模块 | 作用 |
|--------|------|
| `loader.py` | 从带有时间窗口的 CSV 中标准化文章 |
| `storage.py` | 用于富化数据、嵌入、MinHash 和 IOC 计数的 SQLite 缓存 |
| `enrichment.py` | NVD、EPSS、KEV |
| `scoring.py` | 综合的 CVE 优先级评分 |
| `correlation.py` | IOC 关联图、中心度、社区 |
| `trending.py` | 基于 EWMA / z-score 的 IOC 提及次数激增检测 |
| `dedup.py` | MinHash + LSH 聚类 |
| `embeddings.py` | OpenAI 向量 + 余弦 KNN(带有 TF-IDF 回退机制) |
| `killchain.py` | MITRE ATT&CK 映射 |
| `actors.py` | 攻击者别名匹配 |
| `ioc_scoring.py` | IOC 综合评分 |
| `api.py` | `/api/intel/*` 的 Flask blueprint |
## UI 选项卡(一览)
- **Executive(高管视图)** — 威胁级别横幅、KPI、AI 态势总结(需要 API 密钥)
- **Threat intelligence(威胁情报)** — 概览、IOC 关联图、杀伤链、攻击者、语义搜索;STIX / IOC 导出
- **Feed(信息源)** — 按来源分类的文章、搜索/过滤、时效性、实时更新指示器
- **Malware(恶意软件)** — 来自 MalwareBazaar 的最新样本
- **ARIA** — 浮动的 RAG 聊天
## 安全与负责任的使用
- **切勿提交 `.env`** 或真实的 API 密钥。仅将 `.env.example` 作为模板使用。
- 爬虫和第三方 API 可能会**受到速率限制**或**被封锁**。请负责任地运行。
- 富化查询调用的是**公开**服务(例如 NVD、EPSS);请查阅其可接受使用政策。
- 本软件按**原样**提供;请参见 [LICENSE](LICENSE)。
## 许可证
[MIT](LICENSE)
标签:AI聊天机器人, Apex, CISA KEV, CVE评分, D3.js, DAST, DLL 劫持, EPSS, Flask, GPT, IOC提取, Mutation, NVD, OpenAI, Petitpotam, Python, RAG, React, RSS订阅, STIX, Syscalls, URL抓取, 人工智能, 内存规避, 分析师视图, 可视化, 后端开发, 大语言模型, 威胁情报, 安全仪表盘, 安全数据关联, 安全运营, 实时处理, 开发者工具, 恶意软件分析, 情报收集, 扫描框架, 攻击者追踪, 数据丰富化, 数据抓取, 无后门, 机器学习, 检索增强生成, 漏洞研究, 漏洞管理, 用户模式Hook绕过, 网络安全, 语义搜索, 逆向工具, 隐私保护