一个做交付的朋友问我,接了外部代码仓库的活,交出去之前想让人帮忙把安全关过一遍,有没有不贵的办法。我让他看 Cloudflare 开源的 security-audit-skill。这个仓库 10 月 19 日进我雷达时 3.1 万星,10 月 31 日再看是 5.5 万,十二天涨了 2.3 万。

它做的事一句话能讲清。给你的 Claude Code、Codex、Cursor 装一个「安全审计员」工种,装完对智能体说一句 security audit this codebase,它就组织一队互相隔离的子智能体,按六个阶段把代码库审一遍,最后交出机器能读的 findings.json 和人能读的报告。

中文圈现在流传的多是翻译和解读,从安装到报告的端到端实测我还没见到。我把它装进本机,造了个埋了漏洞的靶机,完整跑了一遍,坑也一起记下来。

一、它是什么,一页看懂

维度

事实

开发方

Cloudflare 安全团队

开源协议

MIT

GitHub

54,902 星(2026 年 10 月 31 日快照),6 月 18 日创建

形态

编码智能体的 skill,15 个方法文档、2 个零依赖校验器、1 份 JSON Schema

最后推送

2026 年 9 月 14 日,之后星标还在涨,代码一个半月没动(见第七节)

支持平台

任何支持工具调用和并行子智能体的编码智能体

价格

免费,没有服务端,全程在你本机跑

来历要交代一下。Cloudflare 在 6 月 18 日的博客《Build your own vulnerability harness》里讲了他们内部一套覆盖全代码库的漏洞发现系统,文末说顺带开源「我们用来开发这套 harness 的初始 skill」,就是这个仓库。所以它和 Anthropic 官方仓库里那些提示词小技巧不同类,它是一家安全大厂内部流程的起点版本,后面那套生产系统是从它长出来的。

二、最值钱的部分是纪律

把 SKILL.md 读完,我觉得这个 skill 最值钱的地方,是它把「怎么防止 AI 报一堆假漏洞」写成了流程,找漏洞的本事反而排第二。四条纪律贯穿全程。

第一,找漏洞的和验漏洞的永远是两拨智能体。 每个候选发现都要交给一个全新的、没参与狩猎的 verifier,它的任务是推翻这个结论。Cloudflare 博客里的原话是,如果让猎手给自己的作业打分,它会自信地把自己输出的每一条都判为成立。AI 安全审计最大的敌人是幻觉报告,这一刀切得最深。

第二,只认真实的边界违反。 缺了个最佳实践、纵深防御不够厚、自己打自己,都不算漏洞。每条发现要说清六件事,谁是低信任主体、系统接受了什么输入、本该有什么控制、哪条边界被跨过、哪个资源受影响、能观察到什么结果。说不全就不是 finding。

图 1 · 什么才算一条漏洞,六要素说得全才立案,三类情况直接不算

第三,验证不了的不硬编。 没有操作系统级沙箱时,skill 明令禁止执行目标代码,这类线索降级为 needs_validation,记下卡在哪一个具体事实上,等有条件再验。宁可存疑,不写「已复现」。

第四,单轮不装穷尽。 Cloudflare 博客自己写了,单次运行大约只能找到多轮累计漏洞的一半。所以它设计了覆盖账本(coverage ledger),多轮跑同一个仓库会自动补上一轮的空白、复核改过的代码,不用从头再来。

六个阶段依次是侦察、覆盖导向狩猎、候选验证、结构化输出、独立记录复核、中立报告。侦察阶段画出架构和信任边界,狩猎阶段按账本派隔离的猎手,验证阶段换新 verifier 逐条证伪,输出阶段让 findings.json 过 Schema 校验。第五阶段值得单说,结构化结果写完以后,还有一批全新的智能体逐条核对行号和机制。这是给「AI 写完就完」这个坏习惯上的一把锁。

图 2 · 六阶段流水线,找漏洞的猎手和验漏洞的 verifier 始终是不同的智能体

三、实测安装,15 秒

安装一行命令。

npx skills add https://github.com/cloudflare/security-audit-skill \
  --skill security-audit --global

本机 15 秒跑完。这个 skills CLI 会自动探测你机器上装了哪些智能体,实测在 ~/.agents/skills/security-audit 落一份本体,再给探测到的几十个智能体做接入或符号链接,Claude Code、Codex、Cursor 都在列。个别小众智能体不支持全局安装,CLI 把原因报得很清楚,不影响使用。

一个值得留意的细节。CLI 安装前会先展示第三方供应链扫描的结论,再让你决定装不装。给智能体装 skill 等于给它开权限,这个环节有人帮你看着,比裸装强。

装完先验货。仓库自带两个校验器,一个校验 findings,一个校验覆盖账本,零依赖,纯 Node 就能跑,还各自带测试。

cd ~/.agents/skills/security-audit
node validate-findings.test.cjs        # 全部通过
node validate-coverage-ledger.test.cjs # 全部通过

macOS arm64、Node v22 一次通过。自带的测试都跑不过的审计工具没有可信度,这一关它过了。

四、实测真审计,109 行靶机,四颗雷全中

光装不跑等于没测。我写了个 109 行的纯标准库 Python 迷你服务当靶机,不装第三方依赖,可以离线跑,故意埋了四类经典漏洞,SQL 字符串拼接注入、shell=True 命令注入、路径穿越任意文件读、生产密钥硬编码加未认证端点直出,另外顺手留了一个无盐 MD5 口令存储。

跑的是 quick 档。skill 自带 quick、standard、deep 三档,小目标用 quick,一次狩猎波加一轮终审。过程按它的流程走。

  1. 侦察。 parent 智能体读靶机源码,写出架构说明和覆盖账本,一共 5 个粗粒度单元,按攻击面、边界、攻击类三个维度切。

  2. 狩猎。 三个隔离 hunter 并行出发,各领各的单元,只读源码,按各自攻击类的方法文档找边界违反。

  3. 验证。 我在沙箱内用假数据起服务,对每条候选做最小效果复现,只读的 PoC 加对照组,不越最小边界。

  4. 复核。 一个全新 verifier 拿着五条最终记录逐行重读源码,任务是推翻它们。

结果是 5 条 confirmed,1 条 critical、3 条 high、1 条 medium,零误报零漏报。四颗埋雷全中,MD5 存储被独立定为第五条。

图 3 · 实测记分卡,109 行靶机埋四颗雷,五条发现全部经独立复核,两个校验器通过

几个细节让我确认这套纪律是真起作用的。

  • 三个 hunter 都没有越界抢别人的单元,发现邻区的问题统一报回 parent 记账,不重复认领。

  • 命令注入按「未认证即得代码执行」给了 critical。SQL 注入因为 sqlite3 单语句限制被钉在 high,没有吹成 critical,这个限制是 verifier 自己实测确认的。

  • verifier 独立重算了 MD5 哈希值,与复现时读出的值逐字比对吻合。五条记录的行号引用零偏差。

  • 弱哈希这种单独存在只算坏习惯的问题,因为找到了两条真实导出路径(注入直读、穿越整库下载)才立得住 finding,定级 medium,没有恐吓式地给 high。

成本要有数。这一轮 quick 档小目标,三个 hunter 加一个 verifier,端到端十分钟以内跑完。token 账单我没有单独留存,按同类任务的经验是几块钱人民币的量级。中型仓库跑 standard 档会贵不少,但对照人工渗透测试的报价,差的是数量级。

五、踩坑实录,解读稿不会告诉你的部分

坑一,复现失败先查自己的 fixture。 路径穿越第一次复现是空的,原因是靶机没建 files 目录,files/../server.py 解析不了。源码审计看得见漏洞,行为复现依赖环境正确。这怪不到工具头上,但第一次跑的人容易先怀疑工具。

坑二,校验器的报错就是文档。 我直接手写覆盖账本 JSON 时踩了三个格式坑,单元必须按字典序排序、coverage_id 必须用它导出的编码函数生成、attempts 数组存的是历史归档,当前波次另放。每条报错精确到字段和原因,照着改两轮就过。普通用户走智能体自动生成碰不到这些,想把产物接进自己流水线的人会感谢这个报错质量。

坑三,担心安全类 prompt 触发模型拒答的,本次没遇到。 我这轮三个 hunter 加一个 verifier 全程零拒答。指令边界写得干净,只读源码、假数据、最小效果,主流模型的安全策略并不碍事。

坑四,它对运行环境有真要求。 SKILL.md 写明,完整验证需要操作系统级沙箱,断外网、白名单环境、资源限额、只写指定目录。没有沙箱也能跑,只是执行类验证会被降级成 needs_validation 存疑。指望无脑一键出确认报告的人会失望,这个失望是设计出来的。

六、什么人该装,什么人不必

该装的画像很清晰。

  • 手里有别人要看的代码的人。 接外部仓库做二开、交付、审计前置自查的乙方,开源项目维护者想在 issue 和 PR 之外定期过安全关,创业团队没有专职安全工程师但代码要过等保或客户尽调。

  • 已经在用 Claude Code、Codex、Cursor 干活的人。 零额外安装成本,一行命令,按需触发。

  • 需要可存档证据的人。 findings.json 过 Schema 校验,覆盖账本可追加,报告里没有活体探测指令,这套产物可以直接进交付物目录。

不必装的也有三类。没有编码智能体使用习惯的,先解决工具再说。想要 Snyk 那种持续监控平台的,这是按需深审,挂机哨兵它不做。代码全是内部低敏 CRUD 且有专人管安全的,用不上这么重的纪律。

七、两句冷静话

星标暴热和代码一个半月没动同时成立。它 9 月中旬后没有新提交,热度更多来自那篇博客的传播长尾。功能完整可用,但要把它当长期基础设施,得接受上游可能不活跃这个事实。好在 MIT 协议加纯本地运行,fork 的成本是零。

另外记住它自己的话,单轮只能找到一半。把它当交付前多一道便宜且讲证据的关,别当过了就安全的免死金牌。

全文带走(30 秒回顾)

1它给编码智能体加的是「审计员」工种,最值钱的一条纪律是找漏洞的和验漏洞的永远分开。

2只认说得清六要素的真实边界违反,验证不了的标存疑,单轮只找得到一半,这三条让报告可信。

3一行命令免费装,适合手里有别人要看的代码的人,当交付前多一道关,别当免死金牌。

前面几篇讲的是让智能体把活交成成品,这一篇是给智能体配质检员。给智能体加「工种」这条线,值得继续盯。

附、资料