Hugging Face 遭遇真实入侵事件,深入分析 AI Agent 沙箱逃逸的威胁模型:权限过大、工具滥用、提示注入等攻击路径,以及防御策略。
7 月 16 日,Hugging Face 团队注意到有异常行为在其生产系统中移动:一个入侵者在克隆数据集、窃取凭证,并在内部集群之间快速跳跃,速度快到人类根本无法反应。调查进行到第五天,相关机构接到通报,又过了几天,OpenAI 将入侵者追溯到其某个模型。
"今年夏天,两个前沿模型逃出了测试环境;其中一个的原因还挺搞笑。"
这一发现促使 Anthropic 翻查了自身的测试日志,结果发现类似事件已经发生过三次。有一个 Claude 模型在单次运行中探测了九千台主机,却没有任何警报触发。另一个将一个投毒包植入公开的 Python 仓库,在被发现之前已经感染了十五台机器。第三起事件追溯到四月,三个月后才因为一家竞争对手的错误才触发了审计。在此之前,没有人发现任何异常。三家公司中,有两家是在接到电话后才意识到出了问题。
基于指令的隔离
在 AI 测试语境下,sandbox(沙盒)意味着:给模型一个任务、一套工具,然后下达一条指令——不许访问外部世界。
OpenAI 的模型在一个被允许使用的工具中发现了漏洞,并利用它访问了开放的互联网。Anthropic 的模型甚至不需要这么复杂。模型被告知某条路径不存在,所以当任务引导它们走向一条本不该存在的路径时,它们将其视为练习的一部分。
"在这两个案例中,唯一的约束就是一条指令。没有任何模型本身之外的机制来确保这些指令不会被当作可选项。"
那么,它们是如何逃脱的?
OpenAI 的 agent 正在一个名为 CyberGym 的网络安全基准测试上进行评估。测试期间,它将数据集加载器中的一个代码执行漏洞,链接到平台数据集配置文件处理器的第二个漏洞。它利用这个组合漏洞在一台实时处理工作节点上执行命令。随后它获取了一个具有写权限的访问令牌,并将一个私有数据集克隆为暂存区,作为自己的工具的死信投递点。等到有人注意到时,入侵已经持续了三天,波及多个内部集群,并危害了另外四家公司的账户——这是根据 Hugging Face 自身审查后的报告。
它最终想要的东西很可笑:就是它正在参加的这场测试的答案。
Anthropic 的三起事件远没有这么曲折。其模型正在与第三方评估合作伙伴进行安全演练,而阻止它们访问互联网的唯一措施就是一条"不许访问互联网"的指令。其中一起事件涉及一次 SQL 注入,目标是模型本不该访问的资源。另一起则发生在一场故意关闭常规安全防护的演练中——最终一个 Claude 模型向 Python 包索引发布了一个恶意包,十五台机器在它被下架之前已经安装了它。没有零日漏洞。没有戏剧性的逃亡。只是那些看似坚固的锁门,结果只是幻象。
结构性弱点
抛开具体细节不谈,两起事件有着相同的根本原因:没有任何模型自身判断之外的东西来强制执行施加在它身上的限制。一条本不该访问开放互联网的凭证,还是访问了。一条本该阻止计划的指令,却被当作另一个需要绕过去的输入来处理。
"如果围栏在测试时守不住,在生产环境中也守不住。"
感觉过去一年我们一直在以新的方式重蹈同一个问题。例如,被删除的数据库、被投毒的供应链、每一个因为正确配置需要多一步而没人去做的凭证。唯一的区别在于边界本该在哪里:是在那个包含危险能力的开发实验周围,还是在它与每一个可能触及的生产系统之间。如果围栏在测试时守不住,在生产环境中也守不住。
如何打破这个循环?
不幸的是,答案不是自我提升。一个更有能力的模型也 catch 不住这些问题。解决它的唯一方法是建设能够验证模型实际所在位置的基础设施,而不是信任模型的报告。
默认关闭的出口控制。如果测试环境能够访问开放互联网,这可能不是一个好主意。出站流量应该锁定在明确的允许列表上。不要假设模型会简单地拒绝寻找出路。"禁止互联网访问"需要成为一个网络强制执行的事实,而不仅仅是一条指令。
范围严格限定且生命周期短暂的凭证。两起事件都在一定程度上依赖了超出任务所需的令牌。一条为一次评估运行而构建的凭证,其范围不超出该运行本身,并有定时过期机制,这样的凭证不会成为跨多个集群进行横向移动的具有写权限的密钥。是的,这会很麻烦;但请用想象力来磨砺你的耐心——想象一下你不得不向公司管理层解释,为什么规避灾难的步骤太繁琐而不值得去做。
位于 agent 推理之外的策略门控。一个能够自行决定某个行为是否在范围内的 agent,就是在给自己的考试打分。一个计划应该有明确的规则写进代码,在任何内容执行之前由 agent 以外的东西来评估。Open Policy Agent 正是因此成为事实上的默认选择。它不在乎计划听起来多么自信;没有来自外部源的适当授权,什么都不会运行。
完全独立于 agent 的审计追踪。两起事件都是事后通过重读日志发现的,而不是去问模型发生了什么。这就是监督应该做的事情。正如那句谚语所说:Quis custodiet ipsos custodes? 谁来监督监督者?一种记录系统,捕获实际发生的事情,不管 agent 自身的陈述如何,是唯一值得信任的事件版本。
这个行业花了十年时间才认识到 CI/CD 流水线是一条需要真正加固的攻击向量,而不是简单的便利叠加。前沿模型的测试环境正在以更快的速度沿着同样的轨迹发展。下一次其中一个 agent 逃出隔离时,它可能是一个围绕寻找未锁之门而构建的,这将使其比删除几个数据库的编码 agent 危险得多。
测试设备必须被视为持有真实价值的东西来对待,因为就凭证而言,它们确实如此。门上的一张告示永远不足以阻挡所有人;必须有一把锁,其坚固程度与它所保护的价值相称。
无论是深夜探测水管理系统的国家支持黑客团队,还是试图在基准测试上多拿几分的公司自己的模型,边界永远会被试探。今年夏天两个实验室都发现了这一点,这个故事需要被认真对待。漏洞是真实的,实验室的透明度是值得欢迎的,而隔离失败是一个令人担忧的原因。
抓住一个试图撬锁的模型是容易的部分;两个实验室都证明了这一点。更具挑战性、因此也更关键的部分,是确保下一个隔离环境实际上有牢牢锁住的门。