security-audit:用六阶段流程验证代码漏洞并生成结构化报告
给安全工程师的代码代理审计技能,用六阶段流程和独立复核替代一次性漏洞扫描。
GitHub cloudflare/security-audit-skill 更新 2026-09-17 分支 main 星标 7.2K 分叉 422
JavaScript 安全审计 Node.js 并行子代理 代码代理

🧭 决策指南

适合,如果你

  • 你有支持工具调用和并行子代理的coding agent,并要审计一个代码库。
    Requirements章节要求“A coding agent with a model that supports tool use and parallel sub-agents”;Usage章节提供“security audit this codebase”。
  • 你需要confirmed、needs_validation、rejected三类结构化漏洞记录。
    What it does章节说明Phase 4将记录写入findings.json,并定义三种verdict。
  • 你希望按coverage-ledger.json持续补齐审计范围。
    Multiple runs章节说明重复运行会使用prior ledgers and findings来针对缺口。

不适合,如果你

  • 你的环境不能提供禁用外部网络、限制资源和限定写入路径的OS沙箱。
    Requirements章节明确要求这些控制;否则workflow会保持needs_validation而不执行目标代码。
  • 你只需要一次性快速扫描,不需要六阶段流程和独立记录验证。
    What it does章节规定Reconnaissance至Target-neutral reporting六个阶段。
  • 你的coding agent不支持工具调用或并行子代理。
    Requirements章节将tool use and parallel sub-agents列为前置条件。

前置条件

  • 需要支持工具调用和并行子代理的coding agent。
  • 需要Node.js,用于zero-dependency findings和coverage-ledger validators。
  • 需要OS-enforced sandbox:禁用外部网络、使用sanitized allowlisted environment、限制资源,并只允许写入assigned scratch paths。

第一步命令(README 原文)

security audit this codebase

要注意

  • 没有OS沙箱时,blocked lead只能保持needs_validation,不能执行target-controlled builds或tests。
    Requirements章节明确规定sandbox控制与needs_validation行为。
  • 不要把defense-in-depth gap当作漏洞;Layer A已阻断攻击时只能记为hardening note。
    Design principles章节说明Defense-in-depth gaps are not vulnerabilities。
  • severity必须基于likelihood x impact,不能只因偏离checklist而定级。
    Design principles章节说明Severity requires impact。
  • 发现者与验证者必须是不同agent,候选验证会交给fresh verifier尝试证伪。
    Candidate validation和Adversarial validation章节均明确独立验证要求。

材料未说明

  • README没有说明支持哪些具体coding agent或模型名称。
  • README没有说明Node.js最低版本。
  • README没有给出单次审计耗时、资源消耗或并行子代理数量上限。
  • README没有提供与其他安全扫描器的准确覆盖率或误报率对比。
  • 项目没有版本发布记录,无法从材料确认稳定版本或兼容性承诺。

💡 深度解析

6
不适合 我负责一个需要完整记录架构、信任边界和输入面的单仓库评审,并且我们的 coding agent 支持工具调用和并行子代理;这个 skill 能否替代一次传统人工安全评审?
适合读者: 使用支持工具调用和并行子代理的 coding agent、负责单仓库安全评审的产品安全团队

不适合把它当作传统人工评审的替代品,因为它是 coding-agent 的审计编排方法,不是独立漏洞扫描器。

  • 它会经过侦察、覆盖驱动猎寻、候选验证、结构化输出、独立记录验证和目标中立报告六个阶段。
  • coverage-ledger.json记录架构区域、审计单元、已执行检查、证据和缺口;findings.json区分 confirmedneeds_validationrejected
  • 每个候选由新的验证代理尝试证伪,降低发现者自行确认造成的偏差。
  • README 明确说明项目不保证发现所有漏洞,也不会替代人工安全评估;严重性、业务风险和披露决策仍需人工判断。
  • What it does:六阶段审计流程
  • What it does:`coverage-ledger.json` 与 `findings.json` 的状态定义
  • Limitations:不是独立的静态分析器、动态扫描器或漏洞数据库,不替代人工安全评估
材料未说明:README 未说明该 skill 与现有人工评审流程的交接格式、责任边界和验收标准。;README 未提供与某个传统 SAST、DAST 或人工评审基线的召回率和误报率对比。
适合 我维护一个会持续发生源代码、依赖和部署变化的大型代码库,希望第二轮审计能复用上一轮的 ledger 和 findings,同时只重新检查变化与缺口;这个 skill 是否支持这种增量流程?
适合读者: 需要在大型或复杂代码库上进行多轮复审的项目维护者,且代码、依赖或部署配置会持续变化

适合,它明确支持同一仓库的多次增量审计,但不会把旧证据无条件视为当前事实。

  • README 说明 multiple runs 是 additive,会利用 prior ledgers 和 findings 定位缺口、重新验证 changed source,并携带 current-source evidence。
  • 流程明确不把 stale 或 unresolved work 当成已覆盖,因此历史 needs_validation 不会自动变成已完成审计。
  • validate-coverage-ledger.cjs 会在创建 ledger 及后续更新后运行;validate-findings.cjs 在 Phase 4 和 Phase 5 replacement 后运行。
  • 输出层从验证记录生成 REPORT.mdFINDINGS-DETAIL.mdNEEDS-VALIDATION.md,适合把本轮确认项与历史未决事项分开管理。
  • What it does:Multiple runs against the same repo are additive
  • What it does:stale or unresolved work 不视为 covered
  • What it does:两个 zero-dependency validator 的运行时机
  • What it does:三类 Markdown 报告由 verified records 派生
security audit this codebase
材料未说明:README 未说明如何计算代码、依赖或部署配置的变更范围,也未说明如何选择需要重跑的 coverage units。;README 未提供大型代码库的运行时间、模型调用量或并行 agent 成本数据。
适合 我审计的是包含原生目标的代码库,需要覆盖内存安全、二进制和内核攻击面;同时我能提供禁用外网、清理环境变量、资源限制和限定写入路径的 OS 级沙箱,这个 skill 是否适合?
适合读者: 维护原生代码库、需要检查内存安全、二进制和内核路径的安全研究员

适合,前提是你的 OS 级沙箱确实满足 README 对目标代码执行的限制。

  • 文件清单为原生目标提供了 MEMORY-SAFETY-AND-BINARY.md,覆盖内存安全、二进制和内核 hunting classes。
  • 流程会把构建、测试、进程、浏览器、模拟器、fuzzer 和 fixture 等目标控制活动放进沙箱。
  • Requirements 要求禁用外部网络、使用清理后的 allowlisted 环境、实施资源限制,并只允许写入指定 scratch 路径。
  • 缺少这些控制时,流程会把相关线索保留为 needs_validation,而不是执行目标代码后升级为 confirmed,因此沙箱能力直接影响验证深度。
  • Files:`MEMORY-SAFETY-AND-BINARY.md`
  • Requirements:OS-enforced sandbox、禁用外部网络、清理环境、资源限制和限定写入路径
  • Requirements:缺少控制时保持 `needs_validation`
security audit this codebase
材料未说明:README 未说明该沙箱应使用哪一种具体 OS 实现,也未给出 native build、fuzzing 或 kernel fixture 的最低资源配置。;README 未说明该 skill 能否直接调用现有的编译器、调试器或 sanitizer 工具。
适合 我希望把 AI 辅助审计接入现有自动化流程,团队已经使用 Node.js,并要求 findings 和 coverage ledger 在进入下游系统前通过无依赖校验;这个 skill 是否适合?
适合读者: 希望把 AI 辅助审计接入自动化安全流程的平台安全团队,使用 Node.js 并要求 JSON 结果可机器校验

适合,项目的机器接口正是结构化 JSON 加 Node.js 无依赖校验器,但它不等于完整的漏洞扫描平台。

  • report-schema.json 定义三种 findings verdict,validate-findings.cjs 校验 findings.jsonvalidate-coverage-ledger.cjs 校验 coverage-ledger.json
  • README 明确要求在 Phase 4、Phase 5 replacement,以及 ledger 创建和后续更新后执行相应校验,便于把格式检查嵌入流水线。
  • 结构化记录再派生出三类 Markdown 报告,机器接口与人类阅读层分离。
  • 但项目依赖具备工具调用和并行子代理的 coding agent,且没有发布版本信息;版本固定、模型供应商、凭据管理和 CI 集成方式仍需团队自行建立。
  • Files:`report-schema.json`、`validate-findings.cjs`、`validate-coverage-ledger.cjs`
  • What it does:校验器在 Phase 4、Phase 5 和 ledger 更新后的执行要求
  • Project data:主语言为 JavaScript;latest_release 为空;release_count 为 0
  • Requirements:依赖支持工具调用和并行子代理的 coding agent
材料未说明:README 未说明 JSON 输出的稳定版本策略、schema 兼容性策略和 CI 失败时的退出码契约。;README 未说明如何固定 skill 提交版本,也未说明 Secrets、模型 API 凭据或审计产物的访问控制方案。
适合 我正在审计一个包含 prompt injection、agent/tool 调用和 output handling 的 LLM 代码库,希望把尚未证实的输入事实与真正的边界失败分开;这个 skill 是否能满足这种判定要求?
适合读者: 负责 AI 与 LLM 产品安全的研究员,代码库包含 prompt injection、agent/tool 和 output-handling 路径

适合,因为它把 AI 与 LLM 攻击面列为专门审计类别,并明确保留未决事实而不强行判定为漏洞。

  • 文件清单中的 AI-AND-LLM.md覆盖 prompt-injection、agent/tool 和 output-handling hunting classes,与你的代码路径直接对应。
  • confirmed 要求完整 source trace 和有边界的 observed result;无法闭合证据链的线索进入 needs_validation,且该状态没有 severity。
  • 候选验证由发现者之外的新代理执行,并要求尝试推翻原结论,适合检查模型代理对输入边界和工具权限的误判。
  • 报告由经过验证的结构化记录生成,能把确认项、待验证项和被证伪项分开输出,而不是只给自然语言结论。
  • Files:`AI-AND-LLM.md`:prompt-injection、agent/tool、output-handling
  • What it does:`confirmed`、`needs_validation`、`rejected` 的定义
  • Design principles:Adversarial validation;Only confirm established boundary failures
find security vulnerabilities in ./src
材料未说明:README 未说明使用哪一种 LLM、agent framework 或模型上下文窗口,也未说明如何评估模型特有的拒答和工具调用行为。;README 未提供 prompt injection 测试样例或 AI/LLM 领域的已知覆盖率数据。
视情况 我需要在同一个仓库里同时检查 HTTP request framing、cache、authentication protocol,以及 IAM、IaC、container 和 serverless 配置;这个 skill 能否覆盖这些不同攻击域?
适合读者: 维护 HTTP 协议和认证服务的产品安全团队,同时还要检查云部署、IAM、容器和 serverless 配置

视情况,攻击类别本身覆盖得较好,但最终覆盖质量取决于 agent 是否正确识别架构和执行环境。

  • WEB-PROTOCOL-AND-AUTH.md明确包含 HTTP request-framing、cache 和 authentication-protocol hunting classes。
  • CLOUD-AND-DEPLOYMENT.md覆盖 IAM、infrastructure-as-code、container、serverless、ingress 和 runtime-configuration。
  • 六阶段流程先建立架构、信任边界、输入面和 coverage ledger,再按 ledger unit 分派隔离 hunter,并由 coverage critic 找缺口。
  • README 同时警告 coverage ledger 只能证明执行过哪些检查,不能证明攻击提示完整,也不能保证 agent 正确理解每个覆盖单元;复杂构建或缺少测试也会降低验证能力。
  • Files:`WEB-PROTOCOL-AND-AUTH.md`
  • Files:`CLOUD-AND-DEPLOYMENT.md`
  • What it does:侦察、coverage-led hunting 和 coverage critics
  • Limitations:coverage ledger 不证明提示完整;复杂构建系统或缺少测试会降低验证能力
do a security review, output to ~/audits/my-project
材料未说明:README 未说明 HTTP 服务、云平台、IaC 工具或容器运行时的具体支持矩阵。;README 未说明跨多个攻击域时如何分配 agent 数量、上下文和执行时间。

✨ 核心亮点

  • 六阶段流程覆盖侦察、验证、报告与独立复核
  • findings.json支持confirmed等三类机器可读结论
  • Node.js零依赖校验器检查覆盖账本与发现记录
  • 重复运行测试中单次仅发现约半数漏洞

🔧 工程化

  • 通过coverage-ledger.json分配隔离猎手并追踪检查范围
  • 用validate-findings.cjs校验findings.json结构与记录
  • 从已验证记录生成REPORT.md与FINDINGS-DETAIL.md

⚠️ 风险

  • 缺少OS沙箱时不会执行目标代码,仅保留needs_validation
  • 要求支持工具调用和并行子代理的coding agent
  • README未提供版本发布,当前No releases且仅3位贡献者

👥 适合谁?

  • 需要审计JavaScript或多类型代码库的安全工程师
  • 已有支持并行子代理coding agent的团队
  • 需要findings.json和coverage-ledger.json审计产物的项目