SuperAPI AI 工具集

vulnerability-report

安全与审计

查看项目

更新于 10-15 08:08

技能介绍

用途

vulnerability-report 是一个 Claude 技能,用于在编写漏洞报告时对项目的所有依赖进行已知 CVE 扫描、按严重程度分类,并生成三份分开的报告,每份对应一个严重程度层级。每份报告是独立文档,带有完整上下文、修复步骤和优先级指导。

技能强调:始终将三份 markdown 文件保存到 project-decisions/ 目录:

  • YYYY-MM-DD-vulnerabilities-high.md — Critical 与 High 严重程度(CVSS ≥ 7.0)
  • YYYY-MM-DD-vulnerabilities-medium.md — Medium 严重程度(CVSS 4.0–6.9)
  • YYYY-MM-DD-vulnerabilities-low.md — Low 与 Informational(CVSS < 4.0)

主要能力

0. 输出设置

创建 project-decisions 目录,报告按上述命名规则保存。

1. 依赖发现

检测包生态:支持 Node.js/JavaScript/TypeScript(package.json、package-lock.json、yarn.lock、pnpm-lock.yaml、bun.lockb)、Python(requirements.txt、Pipfile、pyproject.toml、poetry.lock、setup.py、setup.cfg)、Go(go.mod、go.sum)、Ruby(Gemfile、Gemfile.lock)、PHP(composer.json、composer.lock)、Rust(Cargo.toml、Cargo.lock)、Java(pom.xml、build.gradle、build.gradle.kts)、.NET(.csproj、.sln、packages.config)以及 Docker(Dockerfile、docker-compose.yml,用于基础镜像漏洞)。

清点依赖:统计直接依赖、开发依赖、已安装总数(如 Node.js 的 node_modules 计数、Python 的 pip list 计数、Go 的 go.sum 去重计数、Ruby 的 Gemfile.lock 计数、PHP 的 composer.lock 包计数等)。

2. 漏洞扫描

按生态调用扫描工具:

  • Node.js:npm audit --json,解析 npm v7+ 格式,输出包名、严重程度、受影响范围、是否可修复、CVE 标题、CVSS 分数、URL、CWE;并汇总 Critical/High/Moderate/Low/Info/Total;同时用 npm audit fix --dry-run 查看可自动修复项。另支持 yarn audit --json 与 pnpm audit --json。
  • Python:优先 pip-audit --format=json,解析包名、版本、漏洞 ID、修复版本、描述;备选 safety check --json。
  • Go:安装并运行 govulncheck ./...。
  • Ruby:安装并运行 bundle-audit check --update。
  • PHP:composer audit --format=json。
  • Docker 基础镜像:检查 Dockerfile 中的 FROM 指令,标记未固定(无 :tag 或使用 :latest)与已固定(:版本号 或 @sha256: 摘要固定)。

锁文件完整性:检查各生态锁文件是否存在且已提交到 git;检查 package.json 中是否存在未固定版本(^、~、* 或 latest)。

3. 漏洞分类

严重程度映射:npm audit 的 critical/high/moderate/low、pip-audit/safety 的 CVSS 区间、bundler-audit 的 critical/high/medium/low、govulncheck 按 CVSS 映射、Composer 的 critical/high/medium/low;统一到 CVSS v3.1 区间:9.0–10.0 为 Critical,7.0–8.9 为 High,4.0–6.9 为 Medium,0.1–3.9 为 Low。

每个漏洞的补充信息包括:包名与已安装版本、漏洞 ID(CVE、GHSA、OSV)、CVSS 分数与向量、CWE 分类、严重程度、漏洞描述、受影响版本范围、修复版本(如有)、是否为直接或传递依赖、脆弱代码是否可从本代码可达、是否有可利用代码(PoC 是否发布、是否已被实际利用)、是否可修复(是否可用 npm audit fix 自动修复)、修复步骤。

可达性分析:检查脆弱包是否为 package.json 中的直接依赖、是否在源码中被 import/require、以及通过 npm ls 查看依赖链。

4. 报告生成

生成三份分开的报告,每份对应一个严重程度层级。

报告 1:Critical 与 High 漏洞

文件:project-decisions/YYYY-MM-DD-vulnerabilities-high.md

受众:安全团队、工程负责人、管理层——需要立即处理。

内容包括:执行摘要(关键指标表:Critical 数、High 数、本报告总数、可自动修复数及占比、需手动修复数及占比、无修复数及占比、受影响的直接依赖数、受影响的传递依赖数);风险评估(整体风险等级及最坏情况说明);快速修复命令(npm audit fix、npm audit fix --force、pip install --upgrade、bundle update、composer update,以及修复后重新扫描命令 npm audit / pip-audit);详细发现(逐条列出,字段包括包名、已安装版本、严重程度、CVSS 分数与向量、CVE 链接、CWE 链接、GHSA 链接、依赖类型、是否可达、是否有利用代码、是否已被实际利用、受影响版本、修复版本、是否可修复、是否可自动修复;并附描述、对本项目的影响、依赖链图示)。

报告 2:Medium 漏洞

文件:project-decisions/YYYY-MM-DD-vulnerabilities-medium.md

报告 3:Low 与 Informational

文件:project-decisions/YYYY-MM-DD-vulnerabilities-low.md

使用方式

该技能作为 Claude 技能使用,通常在编写漏洞报告时触发。它会执行上述的目录准备、依赖发现、漏洞扫描、分类、可达性分析和报告生成流程,调用系统命令与各生态的审计工具,最终在 project-decisions/ 目录下产出三份带日期的 markdown 报告。

适用场景

适用于需要定期或按需对项目依赖进行安全审计、生成结构化漏洞报告的开发与安全团队,支持多语言、多包管理器生态以及 Docker 基础镜像检查。

限制

扫描结果依赖各生态审计工具(npm、pip-audit、govulncheck、bundler-audit、composer audit 等)的可用性与漏洞数据库的时效性。部分工具需先行安装(如 pip-audit、safety、govulncheck、bundler-audit)。可达性分析基于源码检索,可能无法覆盖所有调用路径。该技能不提供除资料所述之外的收费、价格或平台信息。