文章总结: 本文剖析AI审代码的核心风险:模型可能编造看似合理实则不存在的漏洞。以Cloudflare开源skill为例,介绍六阶段流水线,核心铁律是发现漏洞的Agent不得自证,须由独立Agent验证。给出可操作建议:拆分发现与验证角色、用coverageledger记录、采用机器可读schema、强制OS沙箱。
综合评分: 85
文章分类: AI安全,安全工具,代码审计,安全开发
AI 审代码最大的坑:它编出来的漏洞,句句在理
原创
海海
海海
AI知识札记
2026年9月22日 10:47
广东
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
AI 工程落地 · Agent 安全
AI 审代码最大的坑:它编出来的漏洞,句句在理
让 AI 审代码,最危险的地方不是它看不出漏洞,而是它编出一个看起来句句在理、实则不存在的漏洞,还顺手配了攻击路径。Cloudflare 把自己内部的漏洞发现系统提炼成一个开源 skill,核心就一条铁律:发现漏洞的 Agent,绝不能自己判定漏洞成立。这篇拆它的六阶段流水线,以及你能直接抄的设计。
AI 安全报告的通病:漏洞看起来句句在理
普通的「找 bug」prompt 让模型列一堆可疑点,没有攻击路径、没有证据,读起来却头头是道。Cloudflare 的设计把每个候选漏洞当成一项「指控」,必须由另一个 Agent 尝试推翻。还有一个被忽视的风险:代码在被审时可能含诱导指令或恶意构建行为,会反过来攻击审计环境本身。所以这条流水线在前面就要求 OS 级沙箱。
六阶段流水线,把找漏洞变成出证据
1 侦察(Recon):画架构、信任边界、输入面,落 architecture.md 加 coverage-ledger.json,建确定性覆盖模型。
2 覆盖制导狩猎(Hunt):隔离 hunter 按攻击类分工,coverage critic 找盲点,父进程每步校验账本。
3 候选验证(Validate):每个候选交给全新 verifier 尝试证伪,发现者不参与验证。
4 结构化输出(Report):confirmed、needs_validation、rejected 写进 findings.json,用 JSON schema 校验。
5 独立记录验证(Verify):全新 Agent 核对每条事实声明的源码,实质性替换再触发一次独立验证。
6 目标中立报告(Neutral):从已验证记录派生 REPORT.md、FINDINGS-DETAIL.md、NEEDS-VALIDATION.md。
六阶段流水线:从侦察到中立报告,发现与验证刻意拆开
发现者永不是验证者:一条铁律
阶段三显式把候选交给一个全新 Agent,指令是「证伪它」。阶段五再加一层独立验证。能活过两道的,标成 confirmed,不是 likely,也不是 potential。这是把「同侪审查」制度化写进 Agent workflow。Cloudflare 实测:单次审计只发现多次跑总漏洞的大约一半,多次跑是叠加互补的,所以官方建议对同一仓库多跑几轮。
发现者提出候选,全新验证者尝试证伪;活过两道才 confirmed
三态判定,不猜 low / medium / high
confirmed 等于完整源码追溯加有界可观察结果。needs_validation 等于一个确切的未解事实,故意不给严重级别。rejected 等于被证伪的候选,连同反驳证据一起记下来,下轮不再重复报。两个零依赖的 Node.js 校验器(validate-findings.cjs、validate-coverage-ledger.cjs)每次改账本后都跑,输出默认机器可读、CI 友好。
判定原则
重点:它只报「能利用的」,每个 finding 要有具体攻击场景,不是「攻击者理论上可以」。防御纵深缺口不算漏洞,只是加固建议。
一个硬前提:没有 OS 沙箱,只能留待验证
build、test、fuzzer、浏览器、目标受控 fixture 都要在「无外网、资源受限、目标只读」的 OS 沙箱里跑。仓库本身不提供沙箱,得你自己用 Fence 之类工具搭。没有这层,workflow 会把 lead 保留为 needs_validation,而不是真的执行目标代码。Cloudflare 内部 3 万行代码约 3 到 4 小时出像样结果;本地你得多跑几轮补足覆盖。
接进你的 Code Review,照抄这几条
把「发现」和「验证」拆给不同 Agent,绝不让找到漏洞的 Agent 自己拍板。
用 coverage ledger 记录「查了什么」,短报告容易给人虚假安全感。
findings 走机器可读 schema 加校验器,CI 能直接吃,不靠人读长文。
不可逆或危险操作前强制 OS 沙箱,否则降级为待验证。
3 句话带走
1.AI 审代码的最大坑是它编出看似有理的假漏洞,必须有对抗式验证。
2.发现者永不是验证者,confirmed 要过两道独立验证,不猜严重级别。
3.OS 级沙箱是硬前提,没有它只能留待验证,而不是执行目标代码。
觉得有用,点个「收藏」下次照着搭;踩过的坑欢迎留言,典型的下期聊。
关注「AI 技术内容」,每周一个能落地的 AI 工程主题。
延伸阅读 / 一手来源
• Cloudflare security-audit-skill(MIT):https://github.com/cloudflare/security-audit-skill
• 安装:npx skills add https://github.com/cloudflare/security-audit-skill –skill security-audit
• Cloudflare 博客「Build your own vulnerability harness」(该 skill 的内部演进来源)
海海 · 公众号「AI 技术内容」
每周聊点 AI 开发者真正的难题
转载请注明出处
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:AI知识札记 海海
海海《AI 审代码最大的坑:它编出来的漏洞,句句在理》