evieffvy/HORUS
GitHub: evieffvy/HORUS
基于 Next.js 和 Google Gemini 构建的 AI 威胁情报仪表板,实时聚合 NVD CVE 数据并提供智能摘要、交互问答和 PDF 导出,帮助安全分析师高效处理漏洞情报。
Stars: 1 | Forks: 0
# HORUS
[](LICENSE)
**作者:** Evie ([@evieffvy](https://github.com/evieffvy))
**在线演示:** [horus-vulnscope.vercel.app](https://horus-vulnscope.vercel.app)
HORUS 是一个**AI 驱动的威胁情报仪表板**,它从**国家漏洞数据库 (NVD)** 拉取实时的 CVE 数据,使用 **Google Gemini** 以通俗易懂的泰语/英语总结漏洞,并允许安全分析师与 AI 助手针对特定发现进行聊天 —— 所有这些均支持一键导出为 PDF 以供离线分类处理。
本项目旨在演示跨越**威胁情报获取、AI 摘要生成和对分析师友好的用户体验**的端到端工程实践。
## 核心亮点
| 层级 | 显著特性 |
|---|---|
| **数据** | NVD REST API v2.0 获取 · CVSS v3.1 / v3.0 / v2 评分标准化 · CWE 与 CPE 解析 · 分页 |
| **AI** | Google Gemini 1.5 Flash · 结构化泰语 CVE 摘要生成(受影响系统、攻击者能力、紧急程度) · 与双语泰语/英语助手进行流式聊天 |
| **前端** | Next.js 14 (App Router) · React 18 · TypeScript · Tailwind CSS · Recharts 严重程度可视化 · CVE 详情弹窗 |
| **UX** | 可过滤的 CVE 表格(关键字、严重程度、日期范围、CVSS 评分) · 交互式聊天面板 · 通过 jsPDF + jspdf-autotable 实现一键 **PDF 导出** |
| **弹性机制** | 感知速率限制的 NVD 数据获取 · 可选的 API 密钥提升(5 → 50 次请求/30秒) · 每个 API 路由上的平滑错误处理 |
## 架构
```
┌──────────────────────────────────────────────────────────────────┐
│ Browser │
│ Next.js 14 App Router · React 18 · Tailwind · Recharts │
│ ─ FilterBar keyword / severity / date / CVSS range │
│ ─ CVETable paginated CVE list │
│ ─ SeverityChart CRITICAL / HIGH / MEDIUM / LOW distribution │
│ ─ CVEModal detail view + AI summary trigger │
│ ─ ChatPanel streaming Q&A with CVE context │
└────────────────────────────┬─────────────────────────────────────┘
│
┌────────────────────────────▼─────────────────────────────────────┐
│ Next.js API routes │
│ ─ GET /api/cve proxy to NVD with filters & pagination │
│ ─ POST /api/summarize structured CVE summary (Gemini) │
│ ─ POST /api/chat streaming chat (Gemini, SSE-style) │
└────────────────────────────┬─────────────────────────────────────┘
│
┌──────────────┴───────────────┐
▼ ▼
NVD API v2.0 Google Gemini
(services.nvd.nist.gov) (gemini-1.5-flash)
```
## 功能详情
### 1. NVD 数据获取 (`app/lib/nvd.ts`)
- 封装了 NVD REST API v2.0 (`/rest/json/cves/2.0`)
- 跨 **v3.1、v3.0 和 v2** 指标块标准化 CVSS 评分(带回退链)
- 将数字评分映射到严重程度带(`CRITICAL ≥ 9.0`、`HIGH ≥ 7.0`、`MEDIUM ≥ 4.0`、`LOW > 0`)
- 提取 CWE ID、从 CPE 字符串中提取供应商/产品信息以及参考 URL
- 可选的 `NVD_API_KEY` 可将速率限制从 **5 → 50 次请求 / 30 秒** 提升
### 2. AI 摘要生成 (`app/lib/claude.ts`)
为每个 CVE 生成包含 3 个部分的泰语摘要,涵盖:
- ระบบอะไรได้รับผลกระทบ (受影响系统)
- ผู้โจมตีทำอะไรได้บ้าง (攻击者能力)
- ความเร่งด่วนในการแก้ไข (修复紧急程度)
### 3. 流式聊天
- 双语泰语/英语安全助手
- 当聚焦某个漏洞时,CVE 上下文会被注入到系统提示词中
- 通过 `chat.sendMessageStream` 进行服务端流式传输,并作为 `text/plain` 分块转发至浏览器
### 4. PDF 导出
过滤后的 CVE 表格可以导出为 PDF(jsPDF + jspdf-autotable),以便进行离线分类处理和向利益相关者报告。
## 技术栈
**前端:** Next.js 14、React 18、TypeScript 5、Tailwind CSS 3、Recharts
**AI:** Google Generative AI SDK (`@google/generative-ai`)、Gemini 1.5 Flash
**数据:** NVD REST API v2.0
**导出:** jsPDF、jspdf-autotable
## 本地设置
### 前置条件
- Node.js 18+
- 一个 Google Gemini API 密钥 — [aistudio.google.com/apikey](https://aistudio.google.com/apikey)
- *(可选)* 用于更高速率限制的 NVD API 密钥 — [nvd.nist.gov/developers/request-an-api-key](https://nvd.nist.gov/developers/request-an-api-key)
### 运行
```
git clone https://github.com/evieffvy/HORUS.git
cd HORUS
# 安装 deps
npm install
# 复制 env 模板并填写你的 keys
cp .env.local.example .env.local
# 编辑 .env.local — 至少设置 GEMINI_API_KEY
# dev server
npm run dev
```
打开 [http://localhost:3000](http://localhost:3000)。
### 环境变量
| 变量 | 必填 | 用途 |
|---|---|---|
| `GEMINI_API_KEY` | ✅ | 用于摘要生成和聊天的 Google Gemini 访问权限 |
| `NVD_API_KEY` | ⚪ 可选 | 将 NVD 速率限制从 5 次提升至 50 次请求/30秒 |
## 项目结构
```
app/
api/
cve/route.ts NVD proxy with filtering
summarize/route.ts CVE → Gemini summary
chat/route.ts Streaming chat
components/
FilterBar.tsx keyword / severity / date / CVSS filters
CVETable.tsx paginated table
CVEModal.tsx detail + AI summary
SeverityChart.tsx distribution chart (Recharts)
ChatPanel.tsx streaming Q&A panel
lib/
nvd.ts NVD client + score/severity logic
claude.ts Gemini summarization & chat
types/cve.ts shared CVE type
```
## 许可证
MIT
标签:AI安全分析, AI驱动, Claude, CVE实时监控, CVE检测, CVSS评分分析, CWE/CPE解析, GPT, Next.js 14, NVD数据源, PDF报告导出, React, Recharts可视化, Syscalls, Tailwind CSS, TypeScript, 双语安全助手, 大模型总结, 威胁情报, 安全仪表盘, 安全插件, 开发者工具, 漏洞管理, 网络安全, 自动化攻击, 自动化漏洞分诊, 隐私保护