gcve-eu/gcve-eu-ai-extension

GitHub: gcve-eu/gcve-eu-ai-extension

该工具利用本地 Ollama 大语言模型为 CVE/GCVE 漏洞记录自动生成分析师视角的摘要、建议与严重性富化信息。

Stars: 2 | Forks: 0

# AI 辅助漏洞信息标注 一个小型 Python 实用工具,用于根据标识符从 `db.gcve.eu` 获取漏洞信息,使用可配置的本地 Ollama 模型生成面向分析师的摘要和建议,并使用 [GCVE AI 来源元数据](https://gcve.eu/bcp/extension/gcve-bcp-05-x-01/)扩展返回的漏洞记录。 生成的丰富信息将添加到以下位置: ``` x_gcve[].extensions["local-ai-vulnerability-enrichment"] ``` AI 来源标注遵循 [GCVE BCP-05-X-01](https://gcve.eu/bcp/extension/gcve-bcp-05-x-01/) 扩展,并添加到以下位置: ``` x_gcve[].extensions["bcp-05-x-01"].ai_annotations[] ``` ## 功能 - 从 `https://db.gcve.eu` 获取漏洞记录 - 接受 CVE ID 或 GCVE ID - 使用可配置的 Ollama endpoint 和模型 - 生成: - 简明的漏洞摘要 - 实用的建议 - 置信度级别 - 注意事项 - 使用 [GCVE BCP-05-X-01](https://gcve.eu/bcp/extension/gcve-bcp-05-x-01/) 扩展添加 AI 来源信息 - 输出适合使用 `jq` 等工具进行进一步处理的 JSON ## 要求 - Python 3.10+ - 运行中的 Ollama 实例 - 适合进行摘要的本地 Ollama 模型 - `requests` - 可选:用于美观打印输出的 `jq` 安装 Python 依赖项: ``` pip install requests ``` 单独安装并运行 Ollama,然后拉取模型,例如: ``` ollama pull qwen3.6:35b ``` 如果愿意,您可以使用其他模型。 ## 基本用法 ``` python3 summarize.py CVE-2026-0300 ``` 使用 `jq` 美观打印结果: ``` python3 summarize.py --ollama-think=true CVE-2026-0300 | jq . ``` 按 GCVE ID 获取: ``` python3 summarize.py --ollama-think=true GCVE-1-2026-0001 | jq . ``` ## 配置 该脚本可以通过命令行选项或环境变量进行配置。 典型的命令行选项: ``` python3 summarize.py \ --base-url https://db.gcve.eu \ --ollama-url http://localhost:11434 \ --model qwen3.6:35b \ --gna-source 65535 \ --ollama-think=true \ CVE-2026-0300 ``` 典型的环境变量: ``` export GCVE_BASE_URL="https://db.gcve.eu" export OLLAMA_URL="http://localhost:11434" export OLLAMA_MODEL="qwen3.6:35b" python3 summarize.py CVE-2026-0300 | jq . ``` ## Ollama 思考模式 对于支持思考或推理模式的 Ollama 模型,请使用: ``` --ollama-think=true ``` 示例: ``` python3 summarize.py --ollama-think=true CVE-2026-0300 | jq . ``` 如果所选模型不支持思考模式,请禁用它: ``` python3 summarize.py --ollama-think=false CVE-2026-0300 | jq . ``` ## 丰富信息输出示例 该脚本保留原始的漏洞记录,并附加一个类似于以下内容的 `x_gcve` 扩展块(扩展 [GCVE-BCP-05-x-01](https://gcve.eu/bcp/extension/gcve-bcp-05-x-01/)): ``` { "x_gcve": [ { "extensions": { "bcp-05-x-01": { "ai_annotations": [ { "ai_level": "generated", "description": "A locally configured Ollama LLM generated an analyst-oriented summary and recommendation from the fetched vulnerability record. The script does not independently verify the generated content.", "field_name": "x_gcve.extensions.local-ai-vulnerability-enrichment", "models": [ { "identifier": "qwen3.6:35b", "name": "qwen3.6:35b", "provider": "local", "gna_source": 65535 } ], "review_status": "none", "scope": "field", "tags": [ "ai-computer-assisted:assistance-level=\"ai-generated\"", "ai-computer-assisted:review-level=\"unreviewed\"" ] } ] }, "local-ai-vulnerability-enrichment": { "caveats": [ "The specific vulnerability type and CVSS score are not stated in the source record.", "The inclusion of Siemens RUGGEDCOM APE1808 alongside Palo Alto Networks products requires verification of scope." ], "confidence": "high", "generated_at": "2026-05-17T13:26:12+00:00", "recommendation": "Upgrade PAN-OS to 12.1.7, 11.2.12, 11.1.15, or 10.2.18-h6, or the latest corresponding hotfixes. Disable the User-ID Authentication Portal or remove response pages from external-facing interface management profiles if not required. Apply patches immediately given active exploitation.", "summary": "CVE-2026-0300 affects Palo Alto Networks PAN-OS on PA-Series and VM-Series firewalls configured with the User-ID Authentication Portal enabled and an external-facing interface management profile with response pages. It is actively exploited and has a total technical impact. Affected versions include PAN-OS 12.1.0–12.1.4-h4, 11.2.0–11.2.10-h5, 11.1.0–11.1.13-h4, and 10.2.0–10.2.17, plus specific hotfix branches. Supplier data also lists Siemens RUGGEDCOM APE1808 as affected.", "vulnerability_id": "CVE-2026-0300" } } } ] } ``` ## 输出字段 ### local-ai-vulnerability-enrichment 此扩展包含生成的内容: | 字段 | 描述 | | --- | --- | | `vulnerability_id` | 用户请求的 CVE 或 GCVE ID | | `summary` | LLM 生成的漏洞摘要 | | `recommendation` | LLM 生成的修复或缓解建议 | | `confidence` | 模型返回的置信度估计 | | `caveats` | 生成输出中已知的限制或不确定性 | | `generated_at` | 生成丰富信息时的 UTC 时间戳 | ### bcp-05-x-01 此扩展包含 AI 来源元数据: | 字段 | 描述 | | --- | --- | | `ai_level` | AI 参与的程度,例如 `generated` | | `description` | 对 AI 生成的丰富信息的人类可读描述 | | `field_name` | 在 AI 协助下生成的字段或扩展 | | `models` | Ollama 模型元数据 | | `review_status` | 人工审查状态,例如 `none` | | `scope` | 标注范围,例如 `field` | | `tags` | 机器可读的 AI 协助和审查标签 | ## 推荐工作流 生成包含丰富信息的记录: ``` python3 summarize.py --ollama-think=true CVE-2026-0300 > enriched.json ``` 检查 AI 生成的字段: ``` jq '.x_gcve[]?.extensions["local-ai-vulnerability-enrichment"]' enriched.json ``` 检查 BCP-05-X-01 AI 标注: ``` jq '.x_gcve[]?.extensions["bcp-05-x-01"].ai_annotations[]' enriched.json ``` ## 重要提示 生成的摘要和建议由本地配置的 LLM 生成。它们应被视为对分析师的辅助,而不是权威的漏洞情报。 在将生成的建议投入实际运营使用之前,请务必查阅原始的漏洞记录和上游供应商的公告。 ## VLAI 严重性丰富信息脚本 `bin/vlai_severity.py` 中提供了第二个脚本,用于利用 Vulnerability-Lookup VLAI API (`/api/vlai/severity-classification`) 推断出的严重性来丰富漏洞记录,并附加 `bcp-05-x-01` AI 标注。 示例: ``` python3 bin/vlai_severity.py CVE-2026-0300 | jq . # 可选:覆盖 BCP metadata 中的标准 gna_source 值 python3 bin/vlai_severity.py --gna-source 1234 CVE-2026-0300 | jq . ``` 这会将一个扩展块写入以下位置: - `x_gcve[].extensions["vlai-severity-enrichment"]` - `x_gcve[].extensions["bcp-05-x-01"].ai_annotations[]` ## 针对完整 cvelistV5 转储的 VLAI 严重性丰富信息 使用 `bin/vlai_severity_dump.py` 处理完整的 `cvelistv5.ndjson` 转储,并使用与 `CVEProject/cvelistV5` 相同的目录布局输出包含丰富信息的 JSON 文件: - `/cves///CVE-YYYY-NNNN.json` - bucket 格式为 `xxx`(例如,`CVE-2026-12345` -> `cves/2026/12xxx/CVE-2026-12345.json`) 示例: ``` python3 bin/vlai_severity_dump.py --output-dir /tmp/cvelistv5-ai --continue-on-error ``` 实用选项: - `--limit N` 仅处理前 N 条记录(适合测试) - `--dump-url` 覆盖源转储 URL - `--dump-file /path/to/cvelistv5.ndjson` 从本地文件读取源转储,而不是下载 - `--vlai-base-url` 覆盖 VLAI API 基础 URL ## VLAI 严重性本地 GPU/CPU 基准测试 使用 `bin/vlai_severity_benchmark.py` 获取与 `bin/vlai_severity_latest.py` 相同的最新漏洞记录,并比较在 CUDA GPU 上进行本地 transformer 推理的速度与仅使用 CPU 的推理速度。基准测试排除了网络获取时间,仅对 VLAI 严重性分类器的本地模型推理进行计时。 示例: ``` python3 bin/vlai_severity_benchmark.py --limit 20 --warmup 1 --repeat 3 ``` 实用选项: - `--local-model` 覆盖 Hugging Face 模型(默认:`CIRCL/vulnerability-severity-classification-roberta-base`) - `--gpu-device` 选择在安装了多个 GPU 时要对哪个 CUDA GPU 索引进行基准测试 - `--warmup` 在测量每个后端之前运行不计时的推理过程 - `--repeat` 对获取的记录进行多次计时的过程,以获得更稳定的平均值 - `--continue-on-error` 跳过无法获取或未包含可用描述的记录 输出是一个 Markdown 表格,包含总时间、每次推理的耗时、吞吐量以及相对于 CPU 基准的 GPU 加速比。
标签:AI风险缓解, C2, GPT, LLM评估, LSASS转储, Ollama, Python, 人工智能, 安全运营, 扫描框架, 无后门, 漏洞管理, 用户模式Hook绕过, 系统调用监控, 逆向工具