SuperAPI AI 工具集

composing-vulnerability-report

安全与审计

查看项目

更新于 10-16 07:06

技能介绍

用途

本技能用于安全测试工作流的报告合成阶段。在集群 1-4 的扫描技能全部运行并各自产出 Findings 文件后,本技能将这些分散的结果合并为一份统一、去重、按严重程度组织的漏洞报告。典型一次测试会产生八到二十个发现文件,而客户需要的是单一报告。

主要能力

  • 读取发现结果:默认读取 engagement/findings/*.json 和 engagement/findings/*.jsonl,也支持通过 --source FILE(可重复)指定具体文件。
  • 去重:依据 lib/finding.py 中定义的规范化指纹去重,而非依赖标题匹配。
  • 分组:按严重程度分组,章节顺序为 CRITICAL、HIGH、MEDIUM、LOW、INFO。
  • CVSS v3.1 补充:当发现中缺少 CVSS 向量时,使用基于严重程度与类别的确定性启发式补充,并在输出中明确标注“derived, not assigned by NVD”。
  • 生成报告:输出独立的 Markdown 漏洞报告,包含头部、摘要表、分严重程度章节及逐条发现子章节。每条发现带有稳定锚点(指纹),便于后续工具交叉引用。
  • 运营性发现:该技能自身也会产出 JSON/JSONL/Markdown 格式的运营发现,记录解析失败、缺少字段、重复、空文件、报告成功生成等情况。

使用方式

基本命令:

python3 ./scripts/compose_report.py engagements/acme-2026-q2/

可用选项:

--source FILE         指定发现文件(可重复;覆盖默认 glob)
--report-output FILE  报告输出路径(默认 PATH/reports/vulnerability-report.md)
--engagement-id ID    覆盖测试 ID(默认从 PATH/roe.yaml 解析)
--output FILE         运营性发现输出
--format FMT          json | jsonl | markdown(默认 markdown)
--min-severity SEV    过滤报告,仅保留该严重程度及以上的发现
--include-info        在报告中包含 INFO 严重程度的发现(默认省略)

示例:

  • 结束报告:python3 ./scripts/compose_report.py engagements/acme-2026-q2/ --report-output engagements/acme-2026-q2/reports/vulnerability-report.md
  • 中期报告(仅 HIGH 与 CRITICAL):--min-severity high
  • OWASP 映射后重新生成:使用 --source 指向已补充 OWASP 类别的文件重新运行,报告每条发现的子章节将包含 OWASP 标签。

验证:可用 --format json --output /tmp/compose-findings.json 导出后配合 jq 检查;若报告引用了预期外的发现,可通过其 skill_id + target 追溯到来源文件。

适用场景

  • 一次测试的最终交付报告合成。
  • 测试过程中的中期报告(配合 --min-severity)。
  • 在 OWASP 映射等后续处理完成后重新生成报告。
  • 供后续的摘要与 OWASP 映射技能(集群 6 的后续两个技能)作为输入。

前提条件

  • Python 3.9+
  • 一个或多个由集群 1-4 扫描技能产出的 JSON 或 JSONL 发现文件(共享 lib/finding.py schema)。

限制与错误处理

  • PATH 缺失或为空:输出 CRITICAL 运营性发现,退出码 1。
  • 来源文件无法解析:输出 HIGH 运营性发现,跳过该文件,继续处理其余文件。
  • 未找到发现文件:输出 HIGH 运营性发现,退出码 1。
  • 报告输出路径不可写:输出 HIGH 运营性发现,退出码 1。
  • 发现缺少必需字段(title、severity、target、detail、remediation):输出 HIGH 运营性发现,从报告中省略该记录,继续处理。
  • CVSS 向量由启发式派生,并非 NVD 正式分配。

资源

  • references/THEORY.md:漏洞报告结构历史(NIST SP 800-115、OWASP Testing Guide)、CVSS v3.1 向量构成、严重程度评分权衡(CVSS vs intrinsic vs EPSS)、发现去重理论、为何基于指纹的去重优于基于标题。
  • references/PLAYBOOK.md:面向不同受众的报告模板变体(技术、管理层、合规)、逐条发现的修复措辞模式、分发报告的证据脱敏模式、与 OWASP 映射及摘要技能的交叉引用协议。