cloudflare security-audit-skill
security-audit 是一个编码代理技能,可将你的代理转变为安全审计员。它通过侦察、覆盖驱动的猎查、候选验证、结构化输出、独立记录验证和目标中立报告来编排隔离代理。这个技能孕育了 Cloudflare 的漏洞发现框架,详见 Build your own vulnerability harness。该框架后来发展成为一个多阶段、全舰队范围的系统;而这个技能是它演变而来的单仓库起点。
功能概述
该技能分六个阶段运行结构化审计:
- 侦察——在 architecture.md 和 coverage-ledger.json 中绘制架构、信任边界、输入面、先前证据和确定性覆盖。
- 覆盖驱动的猎查——从账本单元分配隔离的猎查员,记录他们的检查,并使用覆盖批评者查找缺口。
- 候选验证——将每个唯一候选交给新的验证者,由其尝试证伪。
- 结构化输出——将 confirmed、needs_validation 和 rejected 记录写入 findings.json,并根据 report-schema.json 进行验证。
- 独立记录验证——新的代理验证最终来源声明。实质性替换会接受另一个独立验证者。
- 目标中立报告——从已验证记录和覆盖账本派生 REPORT.md、FINDINGS-DETAIL.md 和 NEEDS-VALIDATION.md。
父代理在创建账本后以及之后每次账本更新后运行 validate-coverage-ledger.cjs。它在第 4 阶段运行 validate-findings.cjs,并在每次第 5 阶段替换后再次运行。判定结果是不同的:confirmed 具有完整的来源追踪和有界观察结果,needs_validation 具有确切未解决事实且无严重性,rejected 记录被证伪的候选。对同一仓库的多次运行是累加的。该技能使用先前的账本和发现来定位缺口、重新验证已更改的来源,并延续当前来源证据,而不将过时或未解决的工作视为已覆盖。
文件
| 文件 | 用途 | | --- | --- | | SKILL.md | 设置、核心原则、平台术语、工作流概述和审计反模式 | | RECONNAISSANCE.md | 第 1 阶段侦察提示和综合指令 | | HUNTING.md | 第 2 阶段编排、猎查方法和验证规则 | | ATTACK-CLASSES.md | 核心、通配符和显而易见事项的攻击提示 | | MEMORY-SAFETY-AND-BINARY.md | 针对原生目标的内存安全、二进制和内核猎查类别 | | AI-AND-LLM.md | 针对 LLM 支持目标的提示注入、代理/工具和输出处理猎查类别 | | WEB-PROTOCOL-AND-AUTH.md | 针对 HTTP 协议和认证目标的 HTTP 请求帧、缓存和认证协议猎查类别 | | CLIENT-SIDE.md | 针对客户端/浏览器目标的 DOM 注入、消息信任、UI 伪装和原型污染猎查类别 | | SUPPLY-CHAIN-AND-RELEASE.md | 依赖、CI、发布、签名、更新、插件和扩展猎查类别 | | CLOUD-AND-DEPLOYMENT.md | IAM、基础设施即代码、容器、无服务器、入口和运行时配置猎查类别 | | PROTOCOLS-RPC-AND-MESSAGING.md | RPC、序列化、队列、代理、webhook 和流协议猎查类别 | | RESOURCE-EXHAUSTION-AND-AVAILABILITY.md | 共享资源、配额、队列、工作进程和操作员支出猎查类别 | | DATA-ISOLATION-AND-LIFECYCLE.md | 租户隔离、缓存、搜索、导出、备份、迁移、删除和恢复猎查类别 | | DESKTOP-MOBILE-AND-LOCAL-IPC.md | 原生应用、深度链接、webview、导出组件、辅助程序、守护进程和本地 IPC 猎查类别 | | VALIDATION-AND-REPORTING.md | 第 3–6 阶段候选验证、结构化输出、记录验证和报告 | | report-schema.json | 所有三种 findings.json 判定的 JSON schema | | validate-findings.cjs | 第 4 和第 5 阶段 findings.json 的零依赖验证器 | | validate-findings.test.cjs | 发现验证器测试和生产者兼容的夹具检查 | | validate-coverage-ledger.cjs | 第 1–5 阶段 coverage-ledger.json 的零依赖验证器 | | validate-coverage-ledger.test.cjs | 覆盖账本验证器测试 |
安装
使用 Skills CLI 安装该技能:
npx skills add https://github.com/cloudflare/security-audit-skill \
--skill security-audit
使用 --global 进行用户级安装:
npx skills add https://github.com/cloudflare/security-audit-skill \
--skill security-audit \
--global
运行 npx skills --help 查看代理选择和非交互式选项。
用法
在你想要审计的代码库中(或指向该代码库)启动编码代理,然后让它进行安全审计:
security audit this codebase
find security vulnerabilities in ./src
do a security review, output to ~/audits/my-project
当请求匹配其触发条件(security audit、find vulnerabilities、pen-test the code 等)时,该技能会自动激活。直接的代码库审计或渗透测试请求使用完整审计模式。安全问题和不涉及报告的聚焦漏洞工作使用指导模式,除非你请求报告产物。在完整审计模式下,未指定输出目录时默认为 ~/security-audit-skill/。仅当你明确选择版本控制忽略的目录时,工作流才会写入目标仓库内部。
要求
- 具有支持工具使用和并行子代理的模型的编码代理
- 用于零依赖发现和覆盖账本验证器的 Node.js
- 用于目标控制的构建、测试、进程、浏览器、模拟器、模糊器和夹具的操作系统强制沙箱。它必须禁用外部网络、使用经过清理的允许列表环境、强制执行资源限制,并仅允许写入分配的暂存路径。没有这些控制,工作流会将线索保留为 needs_validation,而不是执行目标代码。
- 仅确认已确立的边界失败。
- 将基于来源的受阻线索保留为 needs_validation,并附上其确切的未解决事实。
- 对抗性验证。检查发现的代理永远不是发现它的代理。
- 严重性需要影响。可能性 x 影响,无