security-audit-skill

1个月前发布 56 00

Cloudflare 开源了 security-audit-skill,一个专为编程智能体设计的安全审计技能包。它通过六个严格隔离的阶段——侦察、覆盖导向狩猎、候选验证、结构化输出、独立记录验证、目标无关报告——将通用 AI 助手转变为可重复、可验证的安全审计员。

所在地:
美国
收录时间:
2026-09-20
security-audit-skillsecurity-audit-skill

Cloudflare 开源了 security-audit-skill,一个专为编程智能体设计的安全审计技能包。它通过六个严格隔离的阶段——侦察、覆盖导向狩猎、候选验证、结构化输出、独立记录验证、目标无关报告——将通用 AI 助手转变为可重复、可验证的安全审计员。该技能是 Cloudflare 内部漏洞发现工具架的种子项目,现已作为单仓库起点开放,支持对代码库进行累加式、证据驱动的安全评估。

核心设计理念强调对抗性验证与证据边界:发现问题的智能体绝不能验证自身发现;所有确认漏洞必须有完整来源追踪和有界观察;未解决的线索明确标记为 needs_validation 而非强行定性;纵深防御缺口不被误报为漏洞。多次运行同一仓库可累积覆盖,避免将过时或未解决工作视为已审计。

六阶段审计流程与裁决体系

  1. 侦察(Reconnaissance)
    生成 architecture.md 与 coverage-ledger.json,映射系统架构、信任边界、输入面及历史证据。父级智能体在每次 ledger 更新后运行 validate-coverage-ledger.cjs 确保结构合规。
  2. 覆盖导向狩猎(Coverage-Guided Hunting)
    从 ledger 单元分配隔离猎手智能体,执行针对性检查。覆盖批评者持续分析差距,确保无盲区。狩猎方法按目标类型细分(Web、AI/LLM、内存安全、供应链等),每类有专属提示模板。
  3. 候选验证(Candidate Validation)
    每个唯一候选漏洞交由全新验证者智能体尝试反驳。只有经受住对抗测试的发现才能进入下一阶段。
  4. 结构化输出(Structured Output)
    将结果写入 findings.json,严格按 report-schema.json 校验。三种裁决状态定义清晰:

    • confirmed:完整来源链 + 有界观察 + 影响评估
    • needs_validation:确切未解决事实,无严重性赋值
    • rejected:被成功反驳的候选,保留反驳证据
  5. 独立记录验证(Independent Record Verification)
    全新智能体验证最终声明的真实性。重大替换触发二次独立验证,杜绝单点认知偏差。
  6. 目标无关报告(Target-Agnostic Reporting)
    从已验证记录与覆盖 ledger 自动生成 REPORT.md(摘要)、FINDINGS-DETAIL.md(技术细节)、NEEDS-VALIDATION.md(待办清单),格式与目标技术栈解耦。

文件结构与安装使用

技能包包含 15 个核心文件,涵盖各攻击面提示模板(如 AI-AND-LLM.md、MEMORY-SAFETY-AND-BINARY.md)、验证脚本及 schema。安装通过 Skills CLI 完成:

# 项目级安装
npx skills add https://github.com/cloudflare/security-audit-skill --skill security-audit

# 用户级全局安装
npx skills add ... --global

在代码库中触发审计只需自然语言指令:

security audit this codebase
find security vulnerabilities in ./src
do a security review, output to ~/audits/my-project

技能自动识别触发词(security audit / find vulnerabilities / pen-test 等)。完整审计模式默认输出至 ~/security-audit-skill/<repo-name>/run-<N>,仅当显式指定版本控制忽略目录时才写入仓库内部。

关键要求与设计原则

硬性前提:

  • 编程智能体必须支持工具调用与并行子智能体
  • Node.js 环境(用于零依赖验证器)
  • OS 级强制沙箱:禁用外网、白名单环境、资源限制、仅允许写入 scratch 路径。无此控制则所有动态测试 lead 永久停留于 needs_validation

核心原则:

  • 只确认已建立的边界失败,受阻 lead 保持 needs_validation 并附未解决事实
  • 严重性 = 可能性 × 影响,非检查清单偏离度
  • 纵深防御缺口 ≠ 漏洞,仅为加固建议
  • 单次运行仅发现约半数漏洞,重复运行是提升覆盖的必要手段

适用场景与局限

推荐用途:

  • CI/CD 集成安全门禁
  • 代码审查辅助(尤其新模块/重构)
  • 合规审计证据收集
  • 红队测试前的自动化预筛

明确局限:

  • 依赖底层智能体能力,弱模型会导致假阴性
  • 沙箱缺失时无法执行动态验证,仅能做静态分析
  • 不替代人工渗透测试,尤其针对业务逻辑漏洞
  • 累加式覆盖需手动管理多轮 run 的 ledger 合并

相关导航