Aekor

Aekor
专注于用户阅读体验的响应式博客主题
  1. 首页
  2. Blog
  3. 正文

 Cloudflare 如何用 AI 搭建了一套自动找漏洞的流水线

2026-06-22 31239点热度 0人点赞 0条评论

这篇文章讲的是 Cloudflare 如何用 AI 搭建了一套自动找漏洞的流水线。简单说,就是让一群 AI 程序员 7x24 小时不停地在 Cloudflare 自己的代码里找安全漏洞,找到之后还要验证、去重,甚至直接生成修复补丁。

不要依赖某一个最厉害的 AI 模型,而是搭建一套“流水线”,让不同的 AI 模型各司其职、互相验证,像工厂流水线一样把“原始发现”加工成“可信的漏洞报告和修复方案”。

代码地址:https://github.com/cloudflare/security-audit-skill

一、他们在做什么?

Cloudflare 代码库非常大——横跨 Rust、Go、C、Lua、TypeScript、Python 等多种语言,有 145 个以上的代码仓库。靠人工审代码找漏洞根本不可能。所以他们搞了一套自动化系统:

让 AI 自动扫描所有代码,找出真正的安全漏洞,去重、验证,最后生成可用的修复补丁。

截至发文时,这套系统已经处理了 13841 个发现,最终筛选出 7245 个可执行的漏洞交给工程师修复。

二、为什么不用普通方法?

很多人可能会问:直接用 ChatGPT 那样的 AI 去读代码不就行了吗?文章提到了三个致命问题:

1. 上下文窗口撑爆

AI 模型一次能处理的信息是有限的(就像人的短期记忆)。让它读一个小时代码,上下文窗口就被塞满了,模型会“忘掉”自己一个小时前追踪的那个漏洞。解决方案:把 AI 当成“无状态计算引擎”——它每干完一件事就把结果存进数据库,不靠记忆。

2. 中途崩溃就全完了

AI 服务可能因为限流、网络抖动等原因突然断掉。如果跑了几小时的工作因为一个错误全丢了,成本太高。解决方案:每个阶段的结果都实时写入数据库——崩溃只丢当前这一个任务,其他的都还在。

3. 跨仓库的漏洞看不到

一个代码仓库可能被另一个仓库的代码调用。如果只单独看每个仓库,就看不到“A 仓库的代码在 B 仓库里被错误使用”这种跨仓库的漏洞。

三、系统怎么工作?两阶段流水线

整个系统分成两大阶段:

第一阶段:漏洞发现(VDH — Vulnerability Discovery Harness)

这一阶段负责主动扫描代码,找出潜在的安全问题。

整个流程拆成了 8 个步骤:

步骤干什么的大白话
Recon(侦察)3 个 AI 并行读代码,写出架构文档先派 3 个 AI 去“踩点”,搞清楚这个代码是干什么的
Hunt(狩猎)按漏洞类型发起“攻击”,尝试破坏代码AI 假装自己是黑客,想办法攻破这套代码
Validate(验证)先机械检查格式,再用另一个 AI 尝试推翻发现找到漏洞后,派另一个 AI 专门来“抬杠”,看能不能推翻
Gapfill(补缺口)发现哪些地方覆盖不足,生成新的狩猎任务哪块代码还没查到位,就再派任务
Dedup(去重)合并重复的漏洞发现不同 AI 可能找到同一个漏洞,合并掉
Trace(追踪)遍历依赖关系图,在调用方仓库里生成新任务发现某个组件有问题,就去查哪些代码用了它
Feedback(反馈)从历史报告中学习,优化后续任务总结经验,下次查得更准
Report(报告)生成人类可读的报告最后输出给人看

关键设计是 第 4 到第 8 步会循环执行——发现漏洞→补查→去重→再发现,像一个不断运转的齿轮。

第二阶段:漏洞验证(VVS — Vulnerability Validation System)

第一阶段找到的东西还只是“嫌疑犯”,第二阶段负责最终审判:

步骤干什么大白话
Dedup(去重)判断这个漏洞是不是已经在系统里了先查查这个洞是不是之前有人报过了
Judgment(审判)查生产环境配置,判断这个漏洞在实际环境里能不能被利用这个洞在真实线上环境里到底能不能被攻击?
Fixing(修复)生成补丁、跑回归测试直接生成修复代码,跑测试验证

关键细节:第二阶段用的 AI 模型和第一阶段完全不同。相当于让模型 B 来审核模型 A 的作业,两个模型互相复核,避免同一个 AI 的偏见导致漏报或误报。

四、几个特别聪明的设计

1. 让 AI 自己写“威胁模型”

不是给 AI 一份现成的漏洞清单让它去查,而是让 Recon agent 自己读完代码后,针对这个代码库的特点现场写一份威胁模型。不同的代码有不同的风险点,让 AI 自己判断更精准。

2. 让 AI 真的“跑”代码,而不只是“读”代码

对于 C 这类底层语言,光读代码看不出问题。【Hunter agent 会真的编译代码片段、运行、尝试让它崩溃**。这就从“纸上谈兵”变成了“真刀真枪”。

3. “愿望清单”(Wishlist)

如果 AI 发现需要某个工具才能继续验证(比如需要一个 FreeBSD 虚拟机来验证某个漏洞),它会写进一个“愿望清单”。系统会记录下来,等人提供资源后自动重新跑这个任务。这个机制已经被写入了 25,472 次。

4. 防止 AI“自己批改作业”

AI 有一个坏毛病:它会修改代码让漏洞能跑通,然后兴高采烈地报告自己“创造”出来的漏洞。为了防止这个问题:

  • Hunter 必须先说明攻击者是谁、跨越了什么边界,才能提交发现
  • 每个漏洞必须附带一个可运行的 PoC(概念验证),在原始代码上跑通才算数
  • Validator 专门负责推翻 Hunter 的发现,不能自己提交漏洞

5. 修复要带测试

每个确认的漏洞必须附带 proposed patch(修复补丁)和 unit tests(单元测试)。Fixer 会应用补丁、跑测试,要求测试从“失败”变成“通过”才算修复成功。而且 Fixer 永远不会自己合并代码,必须由人工审查。

五、成本和效果

成本:跑几百个 AI 不便宜,但成本集中在“狩猎”阶段。他们按代码仓库做预算,对每个仓库设任务上限,用 50 到 200 个 worker 并行跑。最复杂的一次扫描跑了 14 小时。

效果(数据说话):

  • VDH 生成了 20,799 个原始发现
  • 验证后存活 12,057 个
  • 进入 VVS 后,与另一个系统的发现合并,中心池达到 13,841 个
  • 去重去掉 5,442 个
  • 过滤掉 1,154 个(属于其他仓库或低风险)
  • 最终留下 7,245 个可执行的漏洞交给工程师处理

验证拒绝率从 40% 降到了 11%,高质量发现占比从 35% 升到了 58%。

六、总结

Cloudflare 用一套“流水线”把多个 AI 模型组织起来:一批 AI 负责找漏洞,另一批 AI 负责推翻,再一批 AI 负责去重、验证、生成补丁。核心思想是“不要把赌注押在任何一个模型上”,而是搭建一个不依赖特定模型的架构。

这样即使某个 AI 模型被淘汰或升级了,整个流水线依然能运转——换掉模型就行,不用重写整个系统。

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: Cloudflare
最后更新:2026-08-07

Aekor

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

使用AI教程

  • API报错解决方案
  • API 基础知识
  • API Key 获取

分类

  • Blog
  • TradingAgents-CN
  • 使用教程

COPYRIGHT © 2026 Aekor. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang