安全审计技能(Cloudflare Security Audit)
把编码代理变成多阶段安全审计员,产出经独立验证、机器可读、有源码证据的漏洞结论。
该技能展示了极强的最小权限与安全设计:源码检查只读,目标代码仅在严格的OS沙箱内执行(禁外网、空环境白名单、只读目标、scratch写入、资源限额),写入隔离与防竞态的逐项提升(promotion)流程详尽,明确禁止探测生产端点与持久化,误用时报告needs_validation而非继续。扣分项:复杂的提升与沙箱要求在多数宿主环境可能无法完全满足,回滚/清理主要靠'丢弃'语义,且缺少对宿主侧可信父代码自身实现的验证。
SKILL.md内部指令高度自洽,模式区分、预算门槛、终止状态(两种终态)都明确定义,异常路径有明确的incomplete_reason机制。扣分项:依赖RECONNAISSANCE.md、HUNTING.md等伴随文件及report-schema.、validate-findings.cjs、validate-coverage-ledger.cjs等工具,本次证据中未见其内容或测试,静态审查无法复现关键路径;工作流复杂度高,跨文件一致性无法核实。
description与Operating modes明确规定了触发条件(明确要求审计/渗透测试/完整审查才进入完整工作流),含糊时要求澄清一次,边界与不适场景(guidance vs full audit)清晰,攻击类覆盖面广。扣分项:文档全英文,无中文支持说明;未声明对平台子代理能力的最低要求之外的适用限制;对目标环境的假设(Task tool、沙箱能力)未给出不可用时的降级路径以外的说明。
MIT许可、分层文档结构(SKILL.md+多领域companion+渐进式按块注入)、明确的文件契约与命名规范、抗歧义的agent ID规范。扣分项:发布者身份未经注册表验证,未见版本号、changelog与维护者/更新路径声明;安装与依赖说明隐含(依赖本地已有工具),未提供FAQ或已知限制清单。
声称产出结构化、可机读、独立验证的findings.与报告,最小有效修复建议,相对纯人工审计的边际价值主张合理且设计上可验证。扣分项:静态审查下无法验证实际产出可用性, validators 与 schema 的实际效果未在证据中出现,效果主张(发现的数量/质量)完全依赖未执行的复杂流程。
主张可追溯性设计良好:证据契约、指纹、coverage ledger、needs_validation须给出确切缺失事实。扣分项:仅有源码文本,无第三方执行证据、无已提交的测试套件或CI运行结果覆盖关键路径,无法独立复现其结论,静态审查最多给中等分数。
- 沙箱、空环境、文件描述符保留与防竞态提升等控制在多数实际代理平台上可能无法完全强制执行;技能要求无法满足时降级为needs_validation,用户应预期完整工作流常以不完整状态结束。
- 伴生文件与校验工具(RECONNAISSANCE.md、HUNTING.md、report-schema.、validate-findings.cjs、validate-coverage-ledger.cjs)未在本次证据中提供,使用前应核实其存在与一致性。
- 发布者身份未经验证,且无版本号与更新路径,长期维护与变更追踪存在不确定性。
- 文档仅英文,无中文支持;完整审计模式的token/代理调用成本可能很高,请设置预算并接受可能的incomplete结果。
这个 Skill 能做什么,适合哪些场景?
这是 Cloudflare 开源的编码代理技能,源自其内部漏洞发现系统的单仓库雏形。它以六阶段工作流运行审计:侦察、覆盖清单驱动的猎捕、候选验证、结构化输出、独立复核与中立报告。核心纪律是只确认真实跨越信任边界的漏洞,不把缺少最佳实践当成漏洞。每个确认结论必须有源码路径、有界本地复现和独立验证;无法闭环的线索保留为 needs_validation 且不打分。同一仓库的多次运行是累加的,会依据先前账本补漏并复核变更过的源码。
全量审计模式下,它解析仓库架构与信任边界并生成 architecture.md 和 coverage-ledger.;从账本单元派发相互隔离的 hunter 子代理,用覆盖批评者检查盲区;每个候选交给全新的 verifier 尝试证伪;把 confirmed / needs_validation / rejected 记录写入 findings.,并用零依赖的 Node.js 校验器(validate-findings.cjs、validate-coverage-ledger.cjs)做结构校验;再用全新代理独立复核最终记录,最后生成 REPORT.md、FINDINGS-DETAIL.md 和 NEEDS-VALIDATION.md。对目标受控代码的一切构建、测试、模糊测试只能在满足无外网、白名单环境、资源限制和 scratch 隔离的 OS 沙箱内执行;文件晋升经父代理用无符号链接跟踪、fstat 校验等竞态安全步骤完成。支持 quick / standard / deep 三种档位、范围裁剪和严格的代理调用次数预算门控。
- 安全工程师在发布前对自有代码库做一次全面审计,并要一份可归档的机器可读报告。
- 维护者在修复漏洞后重跑审计,让技能基于先前账本复核变更源码并补齐盲区。
- 开源接受者对某个子系统做范围裁剪(scoped)审计,只覆盖指定路径或两个提交之间的 diff。
- 安全团队用预算控制把代理调用次数限定在固定上限内完成一次快速初查。
- 研究者在目标包含原生代码或 LLM 组件时,按配套攻击类文件(内存安全、提示注入、供应链等)定向猎捕。
这个 Skill 有哪些优点和局限?
- 结论纪律严格:确认项要求源码追踪、有界复现和由非发现者代理的独立验证,needs_validation 不打分。
- 只认真实信任边界违规,明确把检查清单式偏差和纵深防御建议排除出漏洞。
- 结构化输出带 JSON Schema 和零依赖校验器,报告与数据不会脱节。
- 多次运行累加覆盖:官方测试中单次运行约找到重复运行合计漏洞的一半。
- 执行安全设计细致:无外网、白名单环境、竞态安全的文件晋升、预算门控一应俱全。
- 要求代理平台支持工具调用和并行子代理,且需要外 OS 级沙箱,很多环境下只能降级为 needs_validation 流程。
- 完整六阶段全量审计对代理调用次数消耗大,小预算下可能直接无法启动侦察。
- quick 档和范围裁剪运行只做部分覆盖,不能视为通过安全检查。
- 源文档未提供独立的基准测试结果或第三方评估,效果数字仅来自 Cloudflare 自己的测试运行。
如何安装这个 Skill?
使用 Skills CLI 安装:npx skills add https://github.com/cloudflare/security-audit-skill --skill security-audit。用户级安装追加 --global。也可从仓库的 skills/security-audit/ 路径直接复制该技能目录。未在源文档中说明其他安装方式。
如何使用这个 Skill?
在目标代码库目录(或将其路径告诉代理)中启动你的编码代理,然后直接提出审计请求,例如:security audit this codebase、find security vulnerabilities in ./src、do a security review, output to ~/audits/my-project。技能会按触发词自动激活;默认输出到 ~/security-audit-skill/<repo-name>/run-<N>,只有你明确指定一个被版本控制忽略的目录时才写入目标仓库内。运行零依赖校验器需要 Node.js;执行目标受控代码需要满足严格条件的外 OS 沙箱,否则相应结论将保持 needs_validation。
这个 Skill 与同类方案有什么区别?
源文档未直接点名竞品,但明确定位为 Cloudflare 漏洞发现套件(见其博客 Build your own vulnerability harness)的单仓库起点版本,因此与整套 fleet 级工具相比,它更适合单仓库场景而非大规模编排。