AI审计报了零,人类挖出六个漏洞
工具被宣传得越无所不能,就越需要有人拿真实场景戳一戳。这周安全圈干了这么一件事,结果有点难看。

curl 的作者 Daniel Stenberg 这两年有个习惯:把代码库交给各家 AI 扫漏洞,然后公开结果。这事最近有了续集。安全团队 aisle 做了个对照实验:先让 OpenAI 和 Anthropic 的模型审计 curl,两家都报告零发现;随后他们的人自己上手,挖出了 6 个 CVE。
同一份代码,同一个星期,结论差了六个漏洞。跑分误差不会差这么多,能不能用才会。
一场不太体面的实验
过程其实很朴素:
- aisle 把 curl 的源码交给主流 AI 模型做安全审计
- 两家实验室的模型各自复查,结论一致:零发现
- 人类团队接着做人工深挖,确认 6 个真实漏洞并拿到 CVE 编号
- 全过程写成博客公开,标题起得很直白

为什么 AI 会漏掉这些洞?我琢磨了一下,问题大概率出在 curl 这类代码的”体质”上。它老了,三十年的历史包袱;它密,协议解析、内存管理、状态机层层咬合。漏洞往往藏在两个模块的接缝里,要跨文件追着数据流走一遍才看得见。AI 对教科书式的漏洞很敏感,SQL 注入、明显的越界写,一抓一个准。可 curl 这次的 6 个 CVE 属于另一种:逻辑上说得通,实现上很微妙,模型连”存疑”都报告不出来。
还有一个细节让我后背发凉。两个模型报的都是零。
零发现不等于没漏洞,它只说明这次扫描没看见。但在安全决策里,”零”会被读成”安全”。
攻击者那边,窗口正在打开
同一周还有两条消息,跟这个实验放在一起看特别扎眼。
一条是 METR 的调查报告,复盘了之前的 OpenAI 与 Hugging Face 黑客事件,判断是 AI 能力已经进入真实攻击链条,威胁行为者的能力拐点就在眼前。另一条来自 OpenAI 总裁 Greg Brockman,他发了篇文章叫《防御者的窗口》,核心论点很急迫:普通攻击者的能力会在几个月内明显进化,组织必须以空前的速度升级防御。

把这三件事码在一起,矛盾就浮出来了:发布会上的模型在 ExploitBench 拿 100 分,真实代码库上的审计交白卷,而防御方被要求”以空前的速度”重构防线。分数是在构造好的测试集上刷出来的,真实世界又老又乱,还没有标准答案。
攻防两端的不对等,可以列张表:
| 维度 | 攻击者 | 防御者 |
|---|---|---|
| 失败成本 | 试错免费,大不了换目标 | 一次漏检就是事故 |
| 使用姿势 | AI 做放大器,人拿主意 | 幻想 AI 全自动兜底 |
| 目标 | 单点突破即可 | 要覆盖整个攻击面 |
| 结果验证 | 打得进去就是赢 | 报了零分也没法验证 |
防御者的务实打法
窗口期是真的,焦虑没用,能落地的动作就几件:
- 把 AI 审计当初筛,别当终审。它扫过不等于安全,这个心智要先立住
- 解析器、协议栈、权限边界这类要害代码,保留人工深审的预算
- AI 给出的每份报告都要带可复现的
PoC,”可能存在”的直接打回 - 定期拿已知漏洞做回归测试,量出你手上模型的漏报率,别信厂商的满分截图
- 分一半注意力看攻击侧的公开信号,别只盯着自家 dashboard
我的两点感受
让我在意的不是 AI 漏了六个洞,是那两个零。零是所有结论里最危险的一个,它给决策者一种廉价的安心。在安全这件事上,”我们扫过了”和”我们是安全的”之间,隔着整个行业的教训。
第二,厂商把安全能力当卖点讲的时候,考题往往是自己出的。GPT-6 Astra 的 ARC-AGI 3 拿 99.9%,用的是自研 harness,默认环境跑出来只有 62.7%——这种事这周刚发生过。买家需要的从来不是 100 分,是误报率和漏报率。这两个数字恰恰没人愿意公布,因为都不好看。
说真的,我反倒觉得这场实验是个好信号。审计能力的真实水位,终究要靠这种难看的对照数字一寸一寸量出来。有人愿意做这种吃力不讨好的验证,比多听十场发布会都有用。
归根结底,AI 是个放大器。它不产生判断力,只让判断力变得更快、更便宜、更规模化——好的坏的,一起放大。
要点回顾:
- AI 安全审计在真实代码库上的漏报率,远高于基准分数给人的印象
- “零发现”是危险的结论,决策前应追问覆盖率和验证方式
- 攻击者的能力窗口以月计,防御流程的改造等不起下一个版本
- 唯一靠得住的姿态:AI 做初筛放大器,人工深审留给要害