📌 项目地址cloudflare/security-audit-skill | ⭐ 6,451 颗星 | 🔧 JavaScript | 📜 未标注

项目地址:cloudflare/security-audit-skill | 6451 星 | JavaScript

先说结论

这个仓库不是又一个“AI 安全扫描器”。它是一套 coding-agent skill:装上之后,你的编码 Agent 变成一个安全审计员。整个审计不是单个模型读一遍代码然后列问题,而是由一个父 Agent 调度多个相互隔离的子 Agent,分六个阶段跑完,每个阶段有固定产物和校验脚本。

来头也不小。Cloudflare 在博客《Build your own vulnerability harness》里描述过他们的漏洞发现系统,那套系统后来长成了覆盖整个机群的多阶段体系。这个仓库就是它最早的单仓库起点。换句话说,这是从生产系统里剥离出来的方法论,6451 星说明很多人认这个账。

它解决什么问题

让 AI 做安全审计,最常见的问题是两个:幻觉(报了一堆不存在的漏洞)和偏袒(发现自己问题的模型,自己确认自己没问题)。这个项目的设计全部围绕这两点展开:

发现者和验证者必须是不同的 Agent。 每个候选漏洞都会交给一个全新的 verifier Agent,它的任务不是确认,而是推翻这个发现。能被证伪的进 rejected,推不翻的才往下走。

结论分三档,定义卡得很死。 confirmed 要求有完整的源码追溯链和有边界的观测结果;needs_validation 必须写明一个确切的未解决事实,而且不给严重级别;rejected 记录被推翻的候选。这就堵住了 AI 审计报告的老毛病:动不动标“高危”,但说不清证据链。

覆盖是记账的。 第一阶段侦察会产出一份 coverage-ledger.json(覆盖率账本),记录哪些代码单元被检查过。后续的 hunting 从账本里分配任务,还有专门的 coverage critic 找遗漏。父 Agent 在账本创建后和每次更新后都跑 validate-coverage-ledger.cjs 校验格式。

六个阶段

  1. 侦察:绘制架构、信任边界、输入面、既有证据,输出 architecture.mdcoverage-ledger.json
  2. 覆盖驱动的狩猎:按账本单元分配隔离的 hunter Agent,记录检查结果,用 critic 找覆盖缺口
  3. 候选验证:每个候选交给新 Agent 尝试证伪
  4. 结构化输出:结果写入 findings.json,对照 report-schema.json 校验(跑 validate-findings.cjs
  5. 独立记录核验:再换一批新 Agent 核验报告里的源码断言,有改动的部分再过一轮独立验证
  6. 报告生成:产出 REPORT.mdFINDINGS-DETAIL.mdNEEDS-VALIDATION.md

还有一个我觉得很实用的设计:审计是增量的。对同一个仓库跑多次,结果会累加。技能会读取之前的账本和发现,优先补覆盖缺口、重验改过的代码,仍有效的证据直接沿用。过时或没结论的工作不会被当成已完成。这对持续维护的项目很关键,否则每次全量重扫既浪费又 noisy。

仓库里有什么

技能本体是一组 Markdown 文件,本质上是提示词和方法论,按攻击面分类:

文件 内容
SKILL.md 安装、核心原则、平台术语、流程概览、审计反模式
RECONNAISSANCE.md 第一阶段侦察提示词
HUNTING.md 第二阶段编排、狩猎方法论、验证规则
ATTACK-CLASSES.md 核心、通配、常见攻击提示词
MEMORY-SAFETY-AND-BINARY.md 内存安全、二进制、内核攻击类(原生目标)
AI-AND-LLM.md 提示注入、Agent/工具滥用、输出处理(LLM 应用)
WEB-PROTOCOL-AND-AUTH.md HTTP 请求走私、缓存、认证协议攻击类
CLIENT-SIDE.md DOM 注入、消息信任、UI 伪装、原型污染

覆盖面比一般的 Web 扫描器宽:C/C++ 原生代码、内核模块、LLM 集成应用都在射程内。

一点提醒

README 没有给出具体的安装命令和调用示例。作为 coding-agent skill,通用做法是把它作为技能装进你用的编码 Agent,细节要参考官方文档和 SKILL.md。所以这个项目更适合已经在用 Agent 工具、并且愿意读提示词源码的人,不是开箱即用的黑盒工具。

但也正因为它是纯 Markdown,每个阶段的编排逻辑、验证规则、攻击类提示词都摊开给你看。就算不直接用,把它当成一份“如何组织 AI 做安全审计”的参考实现来读,也值回票价。核心思路可以迁移到任何需要 AI 批量产出可靠结论的场景:先记账覆盖,再独立证伪,最后结构化落盘。

这篇文章对你有帮助吗?

发表回复