evieffvy/HORUS

GitHub: evieffvy/HORUS

基于 Next.js 和 Google Gemini 构建的 AI 威胁情报仪表板,实时聚合 NVD CVE 数据并提供智能摘要、交互问答和 PDF 导出,帮助安全分析师高效处理漏洞情报。

Stars: 1 | Forks: 0

# HORUS [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](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, 双语安全助手, 大模型总结, 威胁情报, 安全仪表盘, 安全插件, 开发者工具, 漏洞管理, 网络安全, 自动化攻击, 自动化漏洞分诊, 隐私保护