AI审计报了零,人类挖出六个漏洞

AI审计报了零,人类挖出六个漏洞

工具被宣传得越无所不能,就越需要有人拿真实场景戳一戳。这周安全圈干了这么一件事,结果有点难看。

AI审计报了零,人类挖出六个漏洞

curl 的作者 Daniel Stenberg 这两年有个习惯:把代码库交给各家 AI 扫漏洞,然后公开结果。这事最近有了续集。安全团队 aisle 做了个对照实验:先让 OpenAI 和 Anthropic 的模型审计 curl,两家都报告零发现;随后他们的人自己上手,挖出了 6 个 CVE。

同一份代码,同一个星期,结论差了六个漏洞。跑分误差不会差这么多,能不能用才会。

一场不太体面的实验

过程其实很朴素:

  1. aisle 把 curl 的源码交给主流 AI 模型做安全审计
  2. 两家实验室的模型各自复查,结论一致:零发现
  3. 人类团队接着做人工深挖,确认 6 个真实漏洞并拿到 CVE 编号
  4. 全过程写成博客公开,标题起得很直白

代码审计这一棒,AI还没接住

为什么 AI 会漏掉这些洞?我琢磨了一下,问题大概率出在 curl 这类代码的”体质”上。它老了,三十年的历史包袱;它密,协议解析、内存管理、状态机层层咬合。漏洞往往藏在两个模块的接缝里,要跨文件追着数据流走一遍才看得见。AI 对教科书式的漏洞很敏感,SQL 注入、明显的越界写,一抓一个准。可 curl 这次的 6 个 CVE 属于另一种:逻辑上说得通,实现上很微妙,模型连”存疑”都报告不出来。

还有一个细节让我后背发凉。两个模型报的都是零。

零发现不等于没漏洞,它只说明这次扫描没看见。但在安全决策里,”零”会被读成”安全”。

攻击者那边,窗口正在打开

同一周还有两条消息,跟这个实验放在一起看特别扎眼。

一条是 METR 的调查报告,复盘了之前的 OpenAI 与 Hugging Face 黑客事件,判断是 AI 能力已经进入真实攻击链条,威胁行为者的能力拐点就在眼前。另一条来自 OpenAI 总裁 Greg Brockman,他发了篇文章叫《防御者的窗口》,核心论点很急迫:普通攻击者的能力会在几个月内明显进化,组织必须以空前的速度升级防御。

攻防两端的时钟走得一样快

把这三件事码在一起,矛盾就浮出来了:发布会上的模型在 ExploitBench 拿 100 分,真实代码库上的审计交白卷,而防御方被要求”以空前的速度”重构防线。分数是在构造好的测试集上刷出来的,真实世界又老又乱,还没有标准答案。

攻防两端的不对等,可以列张表:

维度 攻击者 防御者
失败成本 试错免费,大不了换目标 一次漏检就是事故
使用姿势 AI 做放大器,人拿主意 幻想 AI 全自动兜底
目标 单点突破即可 要覆盖整个攻击面
结果验证 打得进去就是赢 报了零分也没法验证

防御者的务实打法

窗口期是真的,焦虑没用,能落地的动作就几件:

  1. 把 AI 审计当初筛,别当终审。它扫过不等于安全,这个心智要先立住
  2. 解析器、协议栈、权限边界这类要害代码,保留人工深审的预算
  3. AI 给出的每份报告都要带可复现的 PoC,”可能存在”的直接打回
  4. 定期拿已知漏洞做回归测试,量出你手上模型的漏报率,别信厂商的满分截图
  5. 分一半注意力看攻击侧的公开信号,别只盯着自家 dashboard

我的两点感受

让我在意的不是 AI 漏了六个洞,是那两个零。零是所有结论里最危险的一个,它给决策者一种廉价的安心。在安全这件事上,”我们扫过了”和”我们是安全的”之间,隔着整个行业的教训。

第二,厂商把安全能力当卖点讲的时候,考题往往是自己出的。GPT-6 Astra 的 ARC-AGI 3 拿 99.9%,用的是自研 harness,默认环境跑出来只有 62.7%——这种事这周刚发生过。买家需要的从来不是 100 分,是误报率和漏报率。这两个数字恰恰没人愿意公布,因为都不好看。

说真的,我反倒觉得这场实验是个好信号。审计能力的真实水位,终究要靠这种难看的对照数字一寸一寸量出来。有人愿意做这种吃力不讨好的验证,比多听十场发布会都有用。

归根结底,AI 是个放大器。它不产生判断力,只让判断力变得更快、更便宜、更规模化——好的坏的,一起放大。

要点回顾:

  • AI 安全审计在真实代码库上的漏报率,远高于基准分数给人的印象
  • “零发现”是危险的结论,决策前应追问覆盖率和验证方式
  • 攻击者的能力窗口以月计,防御流程的改造等不起下一个版本
  • 唯一靠得住的姿态:AI 做初筛放大器,人工深审留给要害