40 万次点击的实验:人类放过了三分之一的恶意 Agent 命令
Human-in-the-loop 是每个 agent 产品都在讲的安全故事:AI 提议,你批准,坏事不会发生。Scale X 做了一个浏览器游戏来测这个故事经不经得起真人检验,8 月 6 日把数据发了出来(scalex.dev/blog/ai-agent-permissions-stats)。四万局游戏、40.9 万次单独的批准/拒绝决策,玩家平均放过了大约三分之一的恶意请求。平均准确率 66.3%。三分之一的对局以负分收场。帖子在 Hacker News 拿了 224 分,The Register 当天跟进。
游戏复刻的就是编码 agent 的默认流程——命令一条条流过来,每条等你点头——中间掺进危险命令。被漏掉最多的那条命令很说明问题:npm run analyze,64.7% 的通过率。它看起来人畜无害,而这正是要害——npm run 执行的是 package.json 里写的任何东西,注入的恶意代码恰恰就藏在那里。人类最不会判断的,是那些需要他们并不掌握的上下文的命令。
当然,这是个游戏,玩家点得比开发者审真实生产命令快。但它隔离出来的机制——审批疲劳加上下文缺失——正是今天每一个编码 agent 的默认流程每天在生产的东西。作者做这个游戏的起因,就是发现这个问题没有好答案,只有无穷无尽的权限弹窗。
不舒服的结论是:人在回路里是整个系统里最不可靠的组件,而厂商继续把它当安全层来卖,是因为它能转移责任,不是因为它有效。这份数据和 Cloudflare 提出 Agent Access Model(任务级 agent 身份)是同一周,它比任何白皮书都更有说服力地证明了同一件事:监督必须搬进结构里——受限凭证、沙箱、自动化策略——因为注意力不是安全边界。
← 返回所有文章
游戏复刻的就是编码 agent 的默认流程——命令一条条流过来,每条等你点头——中间掺进危险命令。被漏掉最多的那条命令很说明问题:npm run analyze,64.7% 的通过率。它看起来人畜无害,而这正是要害——npm run 执行的是 package.json 里写的任何东西,注入的恶意代码恰恰就藏在那里。人类最不会判断的,是那些需要他们并不掌握的上下文的命令。
当然,这是个游戏,玩家点得比开发者审真实生产命令快。但它隔离出来的机制——审批疲劳加上下文缺失——正是今天每一个编码 agent 的默认流程每天在生产的东西。作者做这个游戏的起因,就是发现这个问题没有好答案,只有无穷无尽的权限弹窗。
不舒服的结论是:人在回路里是整个系统里最不可靠的组件,而厂商继续把它当安全层来卖,是因为它能转移责任,不是因为它有效。这份数据和 Cloudflare 提出 Agent Access Model(任务级 agent 身份)是同一周,它比任何白皮书都更有说服力地证明了同一件事:监督必须搬进结构里——受限凭证、沙箱、自动化策略——因为注意力不是安全边界。
评论