SuperAPI AI 工具集

attack-path-analysis

安全与审计

查看项目

更新于 10-15 18:37

技能介绍

用途

该技能用于安全扫描流程中的攻击路径分析阶段。其目标是把已验证或仍可能成立的漏洞发现,转化为明确的攻击者故事、结构化的攻击路径分析事实、严重性校准,以及基于威胁模型的最终可报告性决策。

主要能力

  • 加载每次扫描的威胁模型,作为仓库特定的威胁模型事实来源。
  • 判断受影响代码是否在仓库威胁模型范围内,是否属于产品面或生产工作流。
  • 仅使用仓库证据构建事实性攻击路径,包括:服务映射、暴露面与入口点、身份/权限/信任边界、密钥处理与敏感数据流、可达性、现有控制与缓解措施。
  • 在最终确定范围或可报告性驱动事实之前,识别针对关键范围字段的最强仓库反证,并说明其是否具有决定性。
  • 根据仓库证据校准影响与可能性。
  • 使用这些事实和校准后的严重性,机械地执行独立的最终策略调整。
  • 明确记录最终策略决策为 ignore;在紧凑 diff 模式下保留其候选记录以维持覆盖,否则将其从存留发现集中移除。

使用方式

在紧凑的 workbench 支持的 diff 模式下,当 $security-diff-scan 具有 scanId 时,加载每次扫描的威胁模型,并通过 list_codex_security_candidates({ scanId, cursor?, limit? }) 读取已验证候选。分析每个可报告或延迟的候选,保留每个发现和验证字段以及原始候选顺序,并通过一次 record_candidate_attack_paths({ scanId, attackPaths: [{ candidateId, attackPath }] }) 调用一起提交所有决策。当没有候选进入此阶段时,提交 attackPaths: []。

对于持久 diff 扫描,在单个紧凑工具调用中为每个符合条件的候选提交嵌套决策。否则,保存该发现的可见攻击路径报告,并在 ../../references/scan-artifacts.md 的默认路径下为每个候选 id 追加一条攻击路径回执。回执必须记录候选 id、攻击路径可报告性决策、攻击路径事实或确切证明缺口,以及该候选发现的攻击路径工件/报告引用。

在紧凑 diff 模式之外,为每个候选发现保存最终可见报告,使用该发现的攻击路径分析报告路径。

适用场景

  • Codex 已处于安全扫描的攻击路径分析阶段。
  • 用户明确要求从 source 到 sink 追踪某个安全发现。
  • 标准扫描和 Deep Scan worker 在其常规标准扫描工作流中评估攻击路径;两者都不调用此独立阶段技能。

限制

  • 使用仓库证据和明确提供的上下文。仅在用户明确授权时访问网络;离线扫描从不访问网络。
  • 不得编造代码不支持的攻击链。
  • 不得让候选覆盖保持隐式。在紧凑 diff 模式下,为每个符合条件的候选记录嵌套攻击路径决策,即使最终策略决策为 ignore 或 deferred。否则,每个进入攻击路径分析的候选都必须在其候选账本路径中留下攻击路径回执。
  • 在将已验证发现转换为攻击路径时,不得丢弃确切受影响位置。仓库范围的 seeded/root-control 行若通过验证,必须保留其 root-control file:line,即使包装器、路由或传输更易于解释。
  • 不得因为相邻的同族发现故事更清晰而跳过可报告的验证行。要么为该确切行生成攻击路径事实,要么用仓库反证做出明确的最终策略决策。
  • 缺少公共入口证据本身并不构成决定性反证。
  • 保持攻击路径分析、严重性校准和最终策略抑制为独立的子阶段。
  • 在事实确定后,机械地使用最终策略调整矩阵,而不是从头重新争论严重性。

输出契约

在紧凑 diff 模式下,每个验证处置为 reportable 或 deferred 的候选必须恰好收到一个嵌套攻击路径决策。记录的决策即完整的阶段输出;不要另外创建叙述性报告或回执。否则,使用报告契约:对每个存留发现包含标题、候选 id、实例键和账本行 id(如提供)、来自验证的受影响行(保留标记的 entrypoint/wrapper、root_control、sink 和 concrete_implementation 位置)、攻击路径步骤、渲染的攻击路径事实、反证摘要与挑战、严重性校准、最终策略决策,以及足够的推理,使后续读者能理解该发现为何存留或被抑制。使用 references/attack-path-facts.md 渲染攻击路径事实。