这帮人把安全审计做成了六道流水线,结果真挖出不少东西

admin 2026-07-04 04:44:51 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: Cloudflare开源了一个安全审计codingagent技能,将审计流程分为侦察、猎杀、验证、报告、结构化输出和独立复核六个阶段。其核心设计理念包括只报告可实际利用的漏洞、通过独立agent进行对抗性验证以消除误报,以及多次运行可扩大漏洞覆盖面。该工具通过agent间的协作与验证机制,提升了自动化审计的准确性和深度,为安全团队提供了可借鉴的工业化对抗性思维。 综合评分: 86 文章分类: 安全工具,漏洞分析,渗透测试,红队,安全运营


cover_image

这帮人把安全审计做成了六道流水线,结果真挖出不少东西

幻泉之洲

2026年7月3日 10:35 北京

在小说阅读器读本章

去阅读

Cloudflare 开源了一个 coding-agent skill,把安全审计变成了六阶段流水线。侦察、猎杀、验证、报告、结构化输出、独立复核——每一步都有专门的 agent 干活。实测下来,单次运行能覆盖约一半漏洞,多跑几次覆盖面会明显扩大。他们坚持“只报告你真正能利用的”,这个标准挺狠。

这玩意儿是怎么来的

先说背景。Cloudflare 的安全团队一直在搞自动化漏洞挖掘,他们内部折腾出了一套多阶段、跨舰队规模的漏洞猎杀系统。这套系统的原型,就是今天要聊的这个 security-audit skill。

它本质上是给 coding agent 用的技能包,装上之后你的 agent 就摇身一变成了安全审计员。Cloudflare 写了篇文章详细讲他们怎么搭建这套系统[1],这个 skill 就是一切的起点——单仓库版本,麻雀虽小,五脏俱全。

六个阶段,环环相扣

审计流程拆成了六步,每一步都有明确的分工。说实话这个设计挺务实的,不是那种花架子。

Phase 1:侦察

多个 parallel agent 同时开工,把应用的架构、信任边界、输入面全部摸一遍,输出一份 architecture.md。这一步相当于战前测绘,后续所有攻击都建立在这张地图上。

Phase 2:猎杀

平行运行的通用 agent 从不同角度进攻代码库:注入、访问控制、业务逻辑、密码学、功能滥用、链式攻击,再加一个 wildcard 兜底。每个 agent 如果嗅到可疑点,可以自己 spawn 子 agent 深挖。这种自主决策机制让覆盖深度上了一个台阶。

Phase 3:验证

最关键的一步。每个发现都会交给另一个独立 agent 去证伪。对抗性审查直接干掉误报。Cloudflare 强调一条铁律:检查漏洞的 agent 永远不能是发现漏洞的那个。这条规则从根本上杜绝了确认偏差。

Phase 4:报告

产出两份文件:REPORT.md 给人看,FINDINGS-DETAIL.md 给 MEDIUM 级别以上的漏洞保存详细追踪记录。两层设计,兼顾可读性和可追溯性。

Phase 5:结构化输出

所有发现写进 findings.json,格式严格遵循 report-schema.json。然后用零依赖的 Node.js 校验器 validate-findings.cjs 做 schema 验证。这一步确保下游工具能可靠消费这些数据。

Phase 6:独立验证

全新的一批 agent 重新进场,拿着结构化输出中的每一条事实声明,去和源代码逐条比对。双重确认,把质量底线守住。

设计理念:有点激进,但很管用

这个 skill 有几个设计原则值得细说,因为它们直接决定了输出的可信度。

只报告你能利用的。没有具体攻击场景的东西不报。不说“攻击者理论上可能”,只说你到底能不能打进去。这个标准一下子砍掉了大量 noise。

对抗性验证。前面提过了,查漏洞的和找漏洞的不是同一批 agent。有点像 red team 和 blue team 分离,但这里是在 agent 层面实现的。

严重度看影响,不看 checklist 偏离。Likelihood 乘以 impact,不是因为你少了个 header 就给你标高危。这避免了那种“合规式审计”的毛病。

纵深防御缺口不算漏洞。如果 Layer A 已经挡住了攻击,Layer B 的缺失只是 hardening note,不会当作漏洞报。这个判断标准挺有争议性,但确实减少了假阳性。

多次运行会扩大覆盖面。他们的测试显示,单次运行大约只能发现总漏洞的一半。因为每次都探索不同的代码路径,skill 还会自动读取之前的 findings.json 文件,跳过已知问题,集中火力打新目标。

安装和使用,出奇地简单

装这个 skill 只需要一条命令:

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

想全局安装加 --global 就行。然后让 agent 指向目标代码库,说人话就行:

security audit this codebase

或者更具体一点:

find security vulnerabilities in ./src

甚至指定输出路径:

do a security review, output to ~/audits/my-project

skill 会自动匹配触发词(security audit、find vulnerabilities、pen-test the code 等等)。输出目录默认是 ~/security-audit-skill/<repo>/run-<n>,你也可以自己指定。

限制条件和前提

  • 需要一个支持 tool use 和 parallel sub-agent 的 coding agent 模型
  • Node.js 环境,Phase 5 的 schema 验证要用

除此之外没有别的依赖。那个 validate-findings.cjs 是零依赖的纯 Node.js 脚本,不引入任何第三方包,这点考虑得很细致。

文件清单

整个 skill 就 7 个文件,结构清晰:

| 文件 | 作用 | | — | — | | SKILL.md | 安装配置、核心原则、平台术语、工作流概览、审计反模式 | | RECONNAISSANCE.md | Phase 1 侦察提示词和综合指令 | | HUNTING.md | Phase 2 编排、猎杀方法论、验证规则 | | ATTACK-CLASSES.md | 核心攻击类、wildcard、基础攻击提示词 | | VALIDATION-AND-REPORTING.md | Phase 3-6 的验证、报告和复核流程 | | report-schema.json | findings.json 的 JSON Schema 定义 | | validate-findings.cjs | 零依赖 Node.js 校验脚本 |

我的一些观察

这套系统最大的价值不在于自动化本身——自动化审计工具多得是。它的亮点在于把对抗性思维和独立验证这两个概念工业化了。

传统的 SAST 工具经常被诟病 noise 太多,安全工程师花大量时间排误报。这个 skill 用 agent-on-agent 验证来解决这个问题,思路很巧。但这也意味着计算成本不低:每个漏洞要经过发现、挑战、复核三轮处理,相当于至少三个 agent 在接力。

另外,“只报告能利用的”这条原则,对 agent 的能力要求很高。它需要 agent 真正理解漏洞的利用链条,而不仅仅是模式匹配。Cloudflare 的模型显然能满足这个标准,但换成其他模型效果会不会打折扣,这是个问号。

多次运行扩大覆盖面的特性也很实用。安全性审计没法穷尽,但通过随机性和增量分析,可以在有限时间内逼近一个比较完整的覆盖面。读取历史 findings 来跳过已知问题的设计,避免了重复劳动。

如果你也在搞自动化安全审计,这个 skill 的设计文档值得仔细读。哪怕不直接用,里面的很多理念——尤其是对抗性验证和分级报告——都可以借鉴到自己系统里。


参考资料

[1] https://blog.cloudflare.com/build-your-own-vulnerability-harness

[2] https://github.com/cloudflare/security-audit-skill


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:幻泉之洲 《这帮人把安全审计做成了六道流水线,结果真挖出不少东西》

评论:0   参与:  0