📌 评测对象:cloudflare/security-audit-skill | 星数:10,720(2026-09-18)| 协议:MIT | 语言:JavaScript(技能+零依赖.cjs校验器)| 今日 GitHub Trending +3,607(爆发第一)| 出处:Cloudflare 官方漏洞发现 harness 提炼的种子技能,官方博客详述其如何长成多阶段车队级系统
一句话定位:"把安全审计从'让 AI 看代码找漏洞'的语言对话,重构成'覆盖账本驱动 + 隔离子猎手分治 + 对抗性验证 + 三档裁决'的工程管道——审计的可重复性被从 prompt 运气剥离到工程约束。" security-audit-skill 是 Cloudflare 把内部漏洞发现 harness 提炼出的开源种子技能:安装到任意支持工具调用与并行子代理的 coding-agent,一句 security audit this codebase 触发六阶段结构化审计,产出 REPORT.md / FINDINGS-DETAIL.md / NEEDS-VALIDATION.md。它不是让 AI 随便看看,而是把"绝不能出错"的覆盖、定位、裁决环节焊死在管道里。
站内昨天刚写过同项目的使用教程——教程讲怎么装怎么跑,本评测换评测视角:拆架构、量实证、算分。它的哲学和Open Code Review评测里的"确定性管道×LLM混合"同源——先约束、后智能,是 2026 年 agent 工具里少见的清醒分工。
| 维度 | 评分 | 说明 |
|---|---|---|
| 理念与定位 | 9.0 | "对抗性验证(检查者≠发现者)+ 三档裁决拒绝模糊"是对纯语言驱动审计的正面对答;纵深防御缺口不算漏洞的判定纪律性强 |
| 工程含金量 | 9.0 | 六阶段管道 + 覆盖账本 + 隔离子猎手 + 零依赖validate-*.cjs校验器 + report-schema.json,每阶段有独立校验点,工程结构清晰可审计 |
| 实证效果 | 8.0 | 官方诚实披露"单次仅找到约一半漏洞"是罕见的坦诚,Cloudflare内部fleet级系统生产验证背书;但无开放基准数据集(不如Open Code Review的AACR-Bench可复现) |
| 安全与规则 | 9.0 | 14类攻击面分类学成熟全面(内存/二进制/内核→AI/LLM→Web协议/认证→客户端→供应链→云部署→协议RPC→资源耗尽→数据隔离→桌面移动IPC),覆盖现代攻击面 |
| 上手成本 | 7.5 | npx skills add一条安装对任意coding-agent生效;但需支持工具调用+并行子代理的模型、Node.js、且要OS沙箱才能执行目标代码验证——门槛不低 |
| 文档质量 | 8.5 | README简洁但完整(六阶段+文件表+设计原则+需求+诚实披露);14个ATTACK-CLASSES分类文件各自成章;缺端到端实战案例 |
| 生态与扩展 | 7.5 | Skills CLI生态对任意agent生效是加分项;但本身是单repo种子技能,完整fleet级harness需自行扩展,攻击面提示库可加自定义 |
| 社区与维护 | 8.5 | Cloudflare官方背书、security-ai-research@cloudflare.com公开联系、MIT、今日+3607爆发;种子技能定位决定了它的演进看Cloudflare内部反哺 |
README 对通用 agent 找漏洞的痛点诊断和 Open Code Review 如出一辙:纯语言驱动对审计过程没有硬约束——覆盖会漏(大仓库偷工只审一部分)、位置会漂移(报告的漏洞对不上真实代码位置)、质量随 prompt 波动。security-audit-skill 的解法是把审计重构成六阶段工程管道,每阶段有独立校验点:
| 阶段 | 做什么 | 工程约束 |
|---|---|---|
| 1 侦察 | 映射架构、信任边界、输入面、先验证据、确定性覆盖 | 产出 architecture.md + coverage-ledger.json;父代理跑 validate-coverage-ledger.cjs 校验 |
| 2 覆盖引导狩猎 | 从账本单元分配隔离子猎手,记录检查,覆盖批评找缺口 | 子猎手隔离上下文分治;账本保证不漏审 |
| 3 候选验证 | 每条唯一候选给新鲜验证器试图证伪 | 对抗性验证:检查者≠发现者,杜绝自我确认偏误 |
| 4 结构化输出 | 写 confirmed/needs_validation/rejected 到 findings.json | 按 report-schema.json 校验;validate-findings.cjs 零依赖校验 |
| 5 独立记录验证 | 新鲜代理核实最终源声明;材料替换再一轮独立验证 | 材料替换后再跑 validate-findings.cjs;双重独立核实 |
| 6 目标中立报告 | 从已验证记录和覆盖账本派生 REPORT.md / FINDINGS-DETAIL.md / NEEDS-VALIDATION.md | 报告与证据分离,目标中立不预设结论 |
关键在 对抗性验证——验证候选的 agent 永远不是发现它的 agent。这直接消灭了 LLM 自我确认偏误(自己找的漏洞自己验证倾向于确认)。三档裁决则拒绝模糊地带:confirmed 必须有完整源追溯和有界观察结果,needs_validation 只记确切未解事实不带严重性,rejected 记录证伪逻辑避免重复审计。这套和 Open Code Review 的"确定性管道×LLM混合"是同一个 2026 年共识——见Open Code Review评测的分工哲学对比。
安全审计工具的基准大多是不可复现的营销话术,security-audit-skill 反着来——README 设计原则里直接写:"In our test runs, a single run found roughly half of the vulnerabilities that repeated runs found in total."(单次运行约只找到重复运行总漏洞的一半)。这不是缺陷披露,是设计哲学的明示:AI 安全审计的本质是渐进覆盖而非一次到位,所以技能做成累加的——使用先前账本和 findings 定位缺口、重验变更源、延续当前源证据,不把陈旧或未解工作当已覆盖。适合在 CI 里定期跑,每次只看增量。
Cloudflare 官方博客 Build your own vulnerability harness 补了背书:这个种子技能是 Cloudflare 内部漏洞发现 harness 的单 repo 起点,harness 已长成多阶段、车队级(fleet-wide)系统。换句话说你在 GitHub 上看到的 skill 是生产级系统的提炼版,不是玩具。但要注意:开源版没附带 AACR-Bench 那样的开放基准数据集(见Open Code Review评测的 AACR-Bench 对比),实证主要靠 Cloudflare 内部背书 + 你自己的实测。
ATTACK-CLASSES.md 是入口,下分 13 个分类文件,覆盖现代软件几乎所有攻击面。这套分类学的价值在于它不是漏洞列表,而是审计提示库——按目标特征挑选聚焦,比让 agent 笼统"找漏洞"高效得多:
| 分类文件 | 覆盖攻击面 | 典型目标 |
|---|---|---|
| MEMORY-SAFETY-AND-BINARY.md | 内存安全、二进制、内核 | 原生 C/C++/Rust、内核模块、固件 |
| AI-AND-LLM.md | 提示注入、agent/工具、输出处理 | LLM 应用、agent 系统(本站主战场) |
| WEB-PROTOCOL-AND-AUTH.md | HTTP 请求框架、缓存、认证协议 | Web 服务、API 网关 |
| CLIENT-SIDE.md | DOM 注入、消息信任、UI 伪装、原型污染 | 浏览器端、SPA |
| SUPPLY-CHAIN-AND-RELEASE.md | 依赖、CI、发布、签名、更新、插件 | 发布管道、第三方依赖 |
| CLOUD-AND-DEPLOYMENT.md | IAM、IaC、容器、serverless、ingress、运行时配置 | 云原生服务 |
| PROTOCOLS-RPC-AND-MESSAGING.md | RPC、序列化、队列、broker、webhook、流协议 | 分布式系统、消息中间件 |
| RESOURCE-EXHAUSTION-AND-AVAILABILITY.md | 共享资源、配额、队列、worker、operator 花费 | 多租户服务、计费系统 |
| DATA-ISOLATION-AND-LIFECYCLE.md | 租户隔离、缓存、搜索、导出、备份、迁移、删除、恢复 | SaaS 多租户、数据合规 |
| DESKTOP-MOBILE-AND-LOCAL-IPC.md | 原生应用、deep-link、webview、导出组件、helper、daemon、本地 IPC | 桌面/移动应用 |
对站内读者最相关的是 AI-AND-LLM.md——覆盖提示注入、agent/工具滥用、输出处理三类 LLM 专属攻击面,和Claude-红队技能库教程的攻击技能互补:Claude-Red 是按对话触发加载的攻击技能集合,security-audit-skill 是完整审计管道。两者组合——审计管道做结构化覆盖,红队技能做按需攻击——是 LLM 应用安全的双轨。
# 安装技能(Skills CLI,对任意支持工具调用+并行子代理的coding-agent生效)
npx skills add https://github.com/cloudflare/security-audit-skill \
--skill security-audit --global
# 在要审计的代码库启动coding-agent,然后说:
# security audit this codebase
# find security vulnerabilities in ./src
# do a security review, output to ~/audits/my-project
# 技能自动走六阶段管道,产出 REPORT.md / FINDINGS-DETAIL.md / NEEDS-VALIDATION.md
上手体验:一条 npx skills add 装好,对任意已装的 coding-agent(Claude Code/Codex/Cursor 等)生效,触发词匹配即自动走管道,这点比 Open Code Review 的 ocr CLI 更"无感"——它寄生在 agent 里而非独立命令。输出默认写到 ~/security-audit-skill/<repo-name>/run-<N>,只在显式选版本控制忽略的目录时才写进目标仓库——干净。真实成本:软件 $0(MIT),LLM 费用走 agent 自带模型,无额外 key 配置;但沙箱门槛是隐形成本:要执行目标代码(构建/测试/fuzzer/浏览器/模拟器)验证候选,需 OS 沙箱禁外网+allowlist环境+资源限制+scratch路径写控制,没有的话 lead 保持 needs_validation 不执行——仍能审计但 recall 受限。
1. 单次仅找约一半漏洞。官方明示的渐进覆盖哲学——意味着把它当"一次审计定生死"的工具会漏。正确姿势是 CI 里定期累加跑,每次看增量缺口。这和追求"一次到位"的预期有落差,需要团队接受"审计是持续过程"。
2. 沙箱门槛高。要执行目标代码验证候选就得 OS 级沙箱(禁外网+sanitize环境+资源限制+scratch写控制),多数团队没现成。没沙箱仍可跑但只能到 needs_validation,recall 受限。这是它和 Open Code Review(只读 diff,无沙箱需求)的关键差异。
3. 是种子技能不是完整 harness。README 诚实定位为"单 repo 起点",Cloudflare 内部 fleet 级系统是它演化来的但没全开源。攻击面提示库可加自定义,完整多阶段车队编排需自行扩展——想要开箱即用的车队级系统会失望。
| 方案 | 哲学 | 适合 |
|---|---|---|
| security-audit-skill | 六阶段工程管道+对抗验证+三档裁决,覆盖账本驱动 | CI定期累加审计、需可重复审计过程、原生/LLM/云全攻击面 |
| Open Code Review(评测) | 确定性管道×LLM混合,precision优先,无沙箱需求 | CI代码审查门禁、高误报敏感、大规模changeset |
| 通用agent直接审(Claude Code等) | 全语言驱动,灵活但无过程硬约束 | 个人快速过一遍小仓库,不介意漏审误报 |
| 传统静态分析(SonarQube等) | 纯规则无LLM,零误报成本但召回语义能力弱 | 合规强要求的存量代码基线 |
| Claude-红队技能库(教程) | 按对话触发加载的攻击技能集合 | 按需攻击测试,与审计管道互补 |
推荐:要在 CI 里加一道可重复、可累加的 AI 安全审计的团队(六阶段管道+覆盖账本保证不漏审,对抗验证消灭自我确认偏误);审计原生二进制/LLM 应用/云服务等多攻击面项目的人(14类分类学覆盖现代攻击面,按目标挑聚焦);用 Claude Code/Codex/Cursor 又想要专门化安全审计能力的开发者(skills add 一条装好,寄生在 agent 里无感触发)。不建议:追求"一次审计定生死"的场景(单次仅找约一半,需多次累加);没有 OS 沙箱又要执行目标代码验证的环境(recall 受限);想要开箱即用完整车队级 harness 的人(这是种子技能,需自行扩展)。
综合评分 8.4/10:这是站内评测过的安全审计类工具里工程哲学最清醒的一个——对抗性验证(检查者≠发现者)和三档裁决(拒绝模糊地带)是直击 LLM 审计自我确认偏误的结构性解法,14 类攻击面分类学成熟到可当教材,Cloudflare 内部 fleet 级系统生产背书给了它新秀没有的底气。扣分在单次 recall 减半的渐进哲学需团队接受、OS 沙箱门槛高、无开放基准数据集、种子技能非完整 harness。当 2026 年的 agent 工具都在卷"更多自主度"时,它和 Open Code Review 一起反着来——先约束、后智能——这两条评测放一起读,能看到今年代码质量与安全工具的设计共识。
cloudflare/security-audit-skill(10.7k星,MIT,JavaScript)是Cloudflare官方漏洞发现harness提炼的coding-agent种子技能:把AI代理变成结构化安全审计员,走六阶段管道(侦察→覆盖引导狩猎→候选验证→结构化输出→独立记录验证→目标中立报告)。区别在结构化管道vs自然语言驱动——直接让AI审代码会漏覆盖、位置漂移、质量不稳;本技能把覆盖账本、隔离子猎手分治、对抗性验证(检查者≠发现者)、三档裁决焊死在管道里,AI只做动态决策。官方诚实披露单次运行仅找到约一半漏洞,需多次累加。
confirmed=有完整源追溯和有界观察结果,可直接修复;needs_validation=有确切未解事实但无严重性判定,分配人工验证或补沙箱执行;rejected=已证伪候选,记录证伪逻辑避免重复审计。每条都按report-schema.json校验,validate-findings.cjs零依赖校验器在Phase 4和Phase 5替换后各跑一次。三档拒绝模糊地带——宁可留needs_validation也不许confirmed硬塞。
不会,技能是累加的:使用先前账本和findings定位缺口、重验变更源、延续当前源证据——不把陈旧或未解工作当已覆盖。官方实测单次运行约找到重复运行总漏洞的一半,适合CI里定期跑,每次只看增量变化和缺口。
ATTACK-CLASSES.md是核心入口,下分13个分类文件:内存安全/二进制/内核、AI与LLM、Web协议与认证、客户端、供应链与发布、云与部署、协议RPC消息、资源耗尽、数据隔离生命周期、桌面移动本地IPC。按目标特征挑选——Web服务重点看WEB-PROTOCOL-AND-AUTH+CLIENT-SIDE,云服务重点看CLOUD-AND-DEPLOYMENT,原生二进制重点看MEMORY-SAFETY-AND-BINARY,LLM应用重点看AI-AND-LLM,不必全跑。
沙箱需禁用外网、用sanitize的allowlist环境、强制资源限制、只允许写分配的scratch路径,用于目标控制的构建/测试/进程/浏览器/模拟器/fuzzer/fixture。没有这些控制时,工作流会把lead保持为needs_validation而不执行目标代码——即仍可跑审计但无法验证需执行目标代码的候选,安全但recall受限。