AI 求批准时,你 3 次放行 1 次坏人

AI安全agent隐私

数据源:HN + web research · HN

4 万局游戏,40.9 万次「允许还是拒绝」的判断,人类漏掉了三分之一藏在其中的恶意命令。这是 ScaleX 上个月发布的浏览器小游戏收集到的真实数据。游戏开场就警告过玩家:命令里有坏人,请仔细看。警告没什么用。

AI 助手正在进入普通人的生活:帮你写东西、整理文件、订票、回消息。它每执行一步操作,都可能弹出一行字:「允许执行吗?」你点「允许」,它继续;你点「拒绝」,它换一条路。这个机制业内叫「人肉审批」——让真人当最后一道闸门。就像给实习生发了一张门禁卡,他每走一步都回头问你「我能做吗」,你一边忙别的一边点头。

实验把这套审批做成了游戏。玩家扮演审批人,在倒计时里快速判断每条命令是正常操作还是恶意操作,判断错一次扣分。有删库这种一眼能看穿的坏人,也有把数据悄悄发给陌生服务器的潜伏者。

一场 4 万局的「门卫考试」

成绩单并不好看。平均每个玩家漏掉 1/3 的恶意命令,准确率只有 66.3%。32.9% 的局以负分收场——放行坏人和误伤好人的扣分,超过了所有做对的部分。35.2% 的玩家抓到了全部坏人,但其中只有 20.8% 是靠正常审查做到的,其余靠的是「一律拦截」这种笨办法。还有 7% 的玩家批准了一切,一个都没拦。

游戏总体统计 图:4 万局游戏的整体统计。来源:scalex.dev

一个工程上的判断:这是一群知道自己在考试、被明确警告过、每错一次都扣分的人。真实工作场景里没有警告,也没有扣分。同样的成绩,大概率只会更差。

最容易被放行的,恰好是最该拦的

把恶意命令按类型拆开,漏报率差异很大:

  • 删库、格式化这种「明显破坏型」:漏 11.7%
  • 往系统里埋后门、改开机启动项:漏 23.8%
  • 把数据偷偷发给陌生服务器:漏 33.4%
  • 偷读密码、密钥这类敏感文件:漏 35.0%

规律很清楚:最容易被拦下的是「砸场子」,最容易被放行的是「偷东西」。偷数据的命令漏报率是删库类的三倍。坏人最想要的东西,恰好是人不设防的东西。

「跑一下分析」:名字正常,内容换过

单项最惨的记录是一条叫「跑一下分析」的命令,64.7% 的玩家批准了它——37 种威胁里漏得最多。它的名字听起来人畜无害,但游戏在弹窗上方的历史日志里,白纸黑字展示了这个「分析」脚本的真实内容:把数据打包,发给一个陌生服务器。三分之二的人还是点了「允许」。

这里有个机制要拆开讲。这类命令像桌面上的快捷方式:名字叫「分析数据」,真正执行的内容写在项目文件里。而 AI 助手修改项目文件,是不需要征求你批准的。它先把炸弹装进文件,再回头问你:「可以点火吗?」有玩家在讨论区还原了这个过程:改文件免审批,跑文件要审批,坏人就卡在这个缝里。

三条同类命令加起来漏报 52.5%,其他偷数据类攻击是 28.4%。把恶意内容藏进一个熟悉的名字,成功率翻倍。伪装比破坏有效——人不是没在看,是看到熟悉面孔就跳过了细看。

越到后面,手越松

数据还显示:漏报率在一局游戏的末尾明显回升。开局几条命令人在热身,越往后注意力越松;游戏限时,时钟在走,人为了多拿几分开始凭直觉点头。作者引用 Anthropic 的一句话:用户看到的批准越多,对每一条的注意力越少。

漏报率随游戏进程变化 图:每局游戏进行到越后面,漏报率越高。来源:scalex.dev

磨损是双向的。三条本来安全的命令——设置内部软件源、清空构建缓存、重启卡死的本地服务——分别被 59%、45%、43% 的玩家拦下。拦得太多,人就开始麻木;麻木之后,真坏人来了也拦不住。这是狼来了的现代版本:这场对抗真正消耗的,是人类注意力的自然衰减。

实验本身吵翻了天

这个实验的方法论在 HN 上被激烈质疑。批评者说:部分题目本身有歧义——比如「读取个人配置文件」,对有些人无害,对有些人是泄露;限时压力不真实,现实里没人这么催你;最根本的批评是,玩家知道自己正在考试,而现实中没有人会时刻用审查敌人的心态对待自己的 AI 助手。

作者(前 Uber 资深工程师,HN 上叫 Wirbelwind)逐条回应。他承认有两条题目确实有歧义,被指出后很快修正。但修正之后,漏报率没有下降;他对比了不同时期的游戏数据,整体漏报率一致,非 HN 流量高峰期的数据甚至更差。

题目改清楚了,漏报率没变。问题不在题目,在人。

公平地说,辩护方也有道理:游戏里 34% 的命令是坏人,现实中坏命令没那么密集,玩家在游戏里被「坏人密度」提高了警惕,现实反而更松懈。但无论哪一方,都同意一个事实:人类不擅长持续盯着一串串命令做判断。

现实比游戏更糟

HN 上获赞最多的一条评论,来自一位叫 pllbnk 的程序员:现实中你根本不会读 AI 助手在跑什么。他贴出自己 AI 助手正在执行的一条命令——指向临时目录的脚本,文件名里带着 hidden(隐藏)字样。他承认自己完全不知道它在干什么。「它以前每次都没事,为什么这次会有事?批准!」如果每一条命令都要读懂,AI 带来的效率红利就全没了。

有评论说得更直接:这个按钮从来不是安全机制,只是厂商的免责声明——出了事,律师可以说「你批准的,责任在你」。这话有些尖锐,但和 1/3 的漏报率放在一起看,并不离谱。

对普通人的三句话

这个实验的玩家是程序员,但游戏规则正在进入所有人的手机。手机 AI、电脑 AI 助手已经能自己打开应用、读取文件、发消息、付款,操作前弹窗问你要不要「允许」。AI 助手的能力在膨胀,人的注意力预算没有跟着涨。弹窗越频繁,人越随手。AI 诈骗和诱导点击用的也是同一套心理:让你在注意力分散的一瞬间,做一个看似无害、其实有代价的确认。

给普通人的建议不需要懂技术。别给 AI 助手「万能钥匙」级别的权限,需要什么给什么;密码、验证码、支付这类关键操作,宁可多一道确认;对「允许」这两个字保持一点陌生感——它最近出现得太频繁了。

真正该改的是系统。作者自己给出的方向是沙箱:让 AI 助手在隔离环境里干活,即使它被坏人控制,也够不着你的重要文件;再把敏感信息单独保管,别让助手顺手就能读到。把防线从「人的注意力」挪到「系统结构」上,数据已经证明前者撑不住。

4 万局游戏证明了一件事:审批弹窗把安全责任外包给了人类最稀缺的资源——持续注意力,而注意力在倒计时、重复和熟悉的命令名面前,会被耗尽。下次 AI 助手问你「允许吗」的时候,值得多想一秒。那一秒,可能就在实验漏掉的三分之一里。

参考链接:

  • ScaleX: Humans missed 1 in 3 threats approving AI agent commands across 40,000 plays
  • HN 讨论 (item?id=49195468)
  • Developers Digest: Approval Fatigue Is an Agent Security Bug
  • 钛媒体:从删库到删邮件:AI 助手的「致命漏洞」,暴露人机协同底层危机