Danush-Aries/cve-advisor

GitHub: Danush-Aries/cve-advisor

基于 Claude 大模型与 FastAPI 构建的 CVE 漏洞分诊工具,可根据 CVE ID 自动生成结构化分析报告并支持启动沙盒复现环境。

Stars: 0 | Forks: 0

# CVE Advisor — 任意 CVE → Claude 生成的分诊报告,几秒钟搞定

CVE Advisor triage flow

build license python fastapi claude

## 为什么开发这个工具 每位实习生或初级安全工程师在处理任何 CVE 工单时,第一个小时都在做同样的事情:拉取 NVD 条目,在 Exploit-DB 上寻找 PoC,交叉比对 CVSS 向量,然后编写关于攻击面和修复方案的相同三段话。CVE Advisor 将这一个小时浓缩为一次 API 调用 —— 你只需传入一个 CVE ID,它就会返回结构化的 NVD 数据、PoC 链接,以及一份由 Claude 编写的 Markdown 报告,你可以直接将其粘贴到工单中。此外,它还可以选择启动一个 Docker 实验容器,让你能够复现该漏洞。 ## 60 秒内试用 ``` git clone https://github.com/Danush-Aries/cve-advisor.git cd cve-advisor python -m venv .venv && source .venv/bin/activate pip install -r requirements.txt cp .env.example backend/.env # add ANTHROPIC_API_KEY uvicorn backend.main:app --reload --port 8000 curl http://localhost:8000/api/cve/CVE-2021-44228 | jq . ``` 交互式文档:`http://localhost:8000/docs`。 ## 工作原理 - **NVD 2.0 客户端 (`backend/services/nvd_client.py`)** — 异步 httpx,按优先级提取 CVSS v3.1 / v3.0 / v2 指标。妥善处理缺失的指标键,而不是直接抛出 KeyError。 - **Exploit-DB 扇出** — 请求 AJAX JSON endpoint (`www.exploit-db.com/search`),如果 JSON API 触发频率限制,则回退到搜索 HTML 页面。 - **AsyncAnthropic 分析器** — `claude-opus-4-5` 接收 NVD 摘要 + PoC 链接 + CVSS 向量,返回包含 3 个部分的 Markdown 报告(攻击面 / 可利用性 / 修复方案)。 - **基于文件的缓存**(7 天 TTL)位于 NVD 和 Exploit-DB 的前端 —— 重复查询是免费的,且不会消耗 NVD 每 30 秒 5 次请求的限制。 - **Docker 实验 endpoint** (`POST /api/lab/build`) 使用 `docker-py` 启动一个沙盒化的复现容器(例如 `vulhub/log4j:2.14.1`),让你能够实际触发刚刚了解到的漏洞。 ## 截图 | CVE 报告 | 交互式文档 | 实验容器 | |---|---|---| | ![](https://raw.githubusercontent.com/Danush-Aries/cve-advisor/main/assets/screenshot-1.png) | ![](https://raw.githubusercontent.com/Danush-Aries/cve-advisor/main/assets/screenshot-2.png) | ![](https://raw.githubusercontent.com/Danush-Aries/cve-advisor/main/assets/screenshot-3.png) | ## 用法 ### 分析 CVE ``` curl http://localhost:8000/api/cve/CVE-2021-44228 ``` 返回结构化的 NVD 数据 + PoC 链接 + 一份包含攻击面 / 可利用性 / 修复方案部分的由 Claude 编写的 Markdown 报告。 ### Python 客户端 ``` import httpx async def analyse(cve_id: str): async with httpx.AsyncClient() as client: response = await client.get(f"http://localhost:8000/api/cve/{cve_id}") response.raise_for_status() return response.json() ``` ### 启动沙盒实验容器 ``` curl -X POST http://localhost:8000/api/lab/build \ -H "Content-Type: application/json" \ -d '{"image_name": "vulhub/log4j:2.14.1", "cve_id": "CVE-2021-44228"}' ``` 需要 Docker 守护进程和 `docker` Python 包。 ### Docker ``` docker build -t cve-advisor . docker run -p 8000:8000 \ -e ANTHROPIC_API_KEY=your_key \ -e NVD_API_KEY=your_nvd_key \ cve-advisor ``` ## 环境变量 | 变量 | 必需 | 描述 | |---|---|---| | `ANTHROPIC_API_KEY` | 是 | 用于 Claude 分析的 Anthropic API 密钥 | | `NVD_API_KEY` | 否 | NVD API 密钥(提供更高的频率限制;免费注册) | | `CORS_ORIGINS` | 否 | 逗号分隔的允许来源(默认:`*`) | | `DOCKER_HOST` | 否 | Docker 守护进程 socket(默认:系统默认值) | ## 技术栈 FastAPI + Uvicorn · httpx (异步) · Anthropic Python SDK (`AsyncAnthropic`) · `claude-opus-4-5` · Docker SDK for Python · Pydantic v2 · pytest + pytest-asyncio。 ## 项目结构 ``` cve-advisor/ ├── backend/ │ ├── main.py # FastAPI app, routes │ ├── models/cve.py # Pydantic response model │ └── services/ │ ├── nvd_client.py # NVD + Exploit-DB clients │ ├── ai_analyzer.py # AsyncAnthropic Claude integration │ └── lab_manager.py # Docker lab container router ├── tests/ ├── .env.example ├── Dockerfile └── requirements.txt ``` ## 许可证 MIT — 请参阅 [许可证](LICENSE)。 ### 来自 Danush 的更多内容 - [ponytail-for-python](https://github.com/Danush-Aries/ponytail-for-python) — 针对 Python 代码库的代码智能 - [Agentic_Systems](https://github.com/Danush-Aries/Agentic_Systems) — 代理模式的参考实现 - [autonomous-coding-agent](https://github.com/Danush-Aries/autonomous-coding-agent) — 全自动工程代理 - [computer-use-agent](https://github.com/Danush-Aries/computer-use-agent) — Claude 通过 VNC 操控你的桌面 - [browser-automation-agent](https://github.com/Danush-Aries/browser-automation-agent) — Claude 操控 Playwright - [blinkchat](https://github.com/Danush-Aries/blinkchat) — 充满氛围感的实时聊天
标签:AI辅助, AV绕过, FastAPI, GPT, Python, 安全规则引擎, 无后门, 漏洞管理, 请求拦截, 运行时操纵, 逆向工具