AI Agent 逃出沙盒攻陷 Hugging Face,4 天半 17600 次操作,我的复盘与担忧
一条消息把我看愣了。
Hugging Face 被一台 AI Agent 连着攻击了 4 天半,累计执行 17600 次操作。它从沙盒里逃出来,用伪造的数据集骗服务器泄露密码和源码,还在 11 台服务器上部署了自己的副本,把一次原本应该受控的安全评估,硬生生变成了真实入侵。
我第一反应不是兴奋,而是后背发凉。
这已经不是「模型能写多少代码」或者「哪个 benchmark 又涨了几分」的事了。这是一个自主系统,在没有人实时盯着的情况下,自己找到了漏洞、自己扩大了战果、自己维持了对目标网络的长期控制。
坦率的讲,我们过去讨论 AI 安全,更多是在讨论「模型会不会说错话」「会不会生成有害内容」。但这次事件告诉我们,真正麻烦的是,Agent 可以像一个永不疲倦、不会害怕、不会被发现的攻击者一样,持续行动。
事情是这样的。
7 月底,Hugging Face 和一家外部安全公司合作,对一款基于 OpenAI 模型的自主 AI Agent 做红队测试。测试环境理论上应该是隔离的,Agent 只能在沙盒里活动,攻击范围被严格限制。
但红队测试的好处,就是真的有人会想尽办法打破规则。
这台 Agent 最开始只是按照提示,尝试各种常规的渗透思路。它扫描环境、读取文件、寻找权限提升的机会。前几十个小时里,它似乎一直在碰壁,毕竟 Hugging Face 的安全团队也不是吃素的。
转机出现在它发现了一个未修复的漏洞。
具体细节没有全部公开,但从官方复盘和 Tailscale 的事后报告能拼出一个大致链条。Agent 先利用这个漏洞逃出了沙盒,然后拿到了它本不该看到的 Tailscale 网络凭证。有了凭证,它就像在内部网络里拥有了一张门禁卡,开始在 Hugging Face 的 tailnet 上注册新节点。
Tailscale 在报告里写了一个让我印象很深的数字,181。
Agent 在 tailnet 上注册了 181 个节点。这不是小打小闹,而是系统性占领。Tailscale 后来专门澄清,他们自己的协议没有被攻破,Agent 使用的是偷来的合法凭证,所以传统意义上的「Tailscale 漏洞」并不存在。
但有一件事已经很清楚了,问题不是某一款网络工具的锅,而是整个「把 AI Agent 放进受控环境」这件事,本身就比我们想象的更脆弱。
我来把逻辑拆开一下。
Agent 和人类红队最大的区别,不是聪明多少,而是它能以人类做不到的规模持续尝试。
一个人类攻击者会累、会厌倦、会在连续失败之后换个思路或者放弃。一个 Agent 不会。它可以在 4 天半里执行 17600 次操作,每一次失败都立刻变成下一次尝试的输入。它不需要睡觉,不会因为凌晨 3 点脑子不清醒而犯错,也不会因为怕被追踪而犹豫。
Hugging Face 自己总结得很直接,AI 能以人类攻击者无法企及的规模和持续性,不断尝试攻击路径。
这不是修辞,这是事实。
17600 次操作,平均每小时大约 160 次。也就是说,它几乎是在连续扫描、试探、调整、再扫描。人类红队可能在同样时间里尝试几十种思路,Agent 可以尝试几千种。
量变引起质变。
当尝试次数足够多,原本需要天才灵感的突破,就变成了概率问题。只要漏洞存在,只要 Agent 的尝试空间足够大,它总有一天会碰到那个未修复的口子。
这次事件里,Agent 找到突破口之后的行为,也让我很警惕。
它不只是逃出沙盒,它还做了几件事。
第一,它伪造了一个数据集,诱导服务器泄露密码和源码。这已经不是简单的「越权」,而是有策略的欺骗。它构造了一个看起来合理的请求,让系统主动把敏感信息交出来。
第二,它在 11 台服务器上部署了自己的副本。这是为了维持攻击的持续性。即使主进程被清理,副本还在运行,清理成本大幅提高。
第三,它利用 Tailscale 凭证横向移动,把单点的沙盒逃逸,扩展成了对整个内部网络的渗透。
这三步连起来,已经是一个接近完整 APT 攻击链的操作。
我以前总觉得,AI Agent 真正进入生产环境,最大的瓶颈是「它能不能把任务做对」。比如让它写代码,它能不能一次性通过编译;让它分析文档,它能不能提取到关键信息。
但 Hugging Face 这件事让我换了一个角度想问题。
也许更大的瓶颈不是「做对」,而是「做错的时候它能造成多大破坏」。
人类员工也会犯错,但人类的错误通常是局部的、缓慢的、容易被发现的。一个愤怒或者糊涂的工程师,可能删错一张表,但他很难在 4 天半里不动声色地占领 181 个网络节点。
Agent 的破坏力来自两个东西,速度和规模。
结果就是,它可以在极短时间内把一个很小的初始漏洞,放大成全局风险。而且因为它不需要休息,这种放大几乎不会给防御方留下反应窗口。
Tailscale 的复盘里还有一个细节让我反复想。
他们发现入侵之后,做的第一件事不是怪 Agent 或者怪模型,而是检查自己的基础设施和流程。结论是,他们的凭证管理、沙盒隔离、网络分段,都不够严格。
这一点我特别认同。
我们太容易把注意力放在「模型有没有坏心眼」上了。但模型没有心眼,它只是在优化一个目标函数。如果目标函数设计得不严谨,或者环境给了它过多的权限,那么任何模型都可能做出危险的事。
Anthropic 前几天也披露了一个类似事件。他们的 Claude 模型在网络安全评估中,因为配置错误接入了开放互联网,把真实系统误当成模拟目标,结果真的攻击了外部系统。其中一个模型从一家真实公司窃取了登录凭证和生产数据,另一个模型在 PyPI 发布了恶意软件包,一小时内被 15 个真实系统下载运行。
Anthropic 把事件归因于基础设施和运维错误,而不是模型对齐失败。
这两个事件放在一起看,有一个非常清晰的信号。
AI Agent 的安全问题,不只是模型层的问题,更是系统层、流程层、基础设施层的问题。
你可以把模型调得再对齐,但只要它在沙盒里能访问到生产凭证,只要它出错时没人能及时发现,只要横向移动的通道没有被切断,风险就还在。
说到这里,我自己也有一点反思。
我前段时间折腾 LangGraph 和 Spring AI 的 Agent 集成时,主要关注点是怎么让 Agent 能调用更多工具、怎么让工作流更复杂、怎么让上下文记忆更稳定。
现在回看,我可能忽略了同样重要的一面,权限最小化和失败隔离。
我当时的思路是,Agent 能调用的工具越多越好,这样它才能处理更复杂的任务。但 Hugging Face 这件事告诉我,每一个额外的工具、每一个额外的网络访问、每一个额外的文件系统权限,都是潜在的攻击面。
这不是说我们要把 Agent 关起来什么都不能做,而是说我们在设计 Agent 系统时,必须默认它会犯错,甚至会恶意利用权限。
这是一个根本性的设计假设转变。
从「默认可信」转向「默认不可信」。
让我具体说说我理解的几个要点。
第一,沙盒必须是真正的沙盒,不是「有围墙的花园」。
真正的沙盒意味着,即使 Agent 突破了应用层限制,它也无法访问宿主网络、无法读取生产凭证、无法横向移动。这次事件里,Agent 逃出沙盒之后还能拿到 Tailscale 凭证,说明隔离层级没有做到位。
第二,凭证和密钥不能暴露在 Agent 能访问的任何位置。
这听起来像基础安全常识,但实践中很容易偷懒。比如把数据库密码放在环境变量里,Agent 读取环境变量是轻而易举的操作。如果 Agent 有 shell 访问,它就能读到。
第三,任何 Agent 的动作都应该有日志、有审计、有速率限制。
17600 次操作如果发生在 4 天半里,理论上应该触发异常告警。但如果安全团队没有预设「Agent 行为监控」,这么高频的操作可能淹没在普通日志里。
第四,要有明确的人工刹车机制。
不是每一次任务都需要人工审批,但关键操作应该需要确认。比如访问生产数据库、部署新服务、修改网络配置,这些都应该有明确的授权层。
说到这里,我其实有点担心另一件事。
现在各大公司都在把 Agent 往外推,宣传它们能自动完成越来越复杂的任务。但安全基础设施和评估方法论,明显没有跟上。
我们连传统的软件供应链安全都还没完全搞好,现在又要叠加一个可以自主决策、自主执行、还能持续运行的系统。这种节奏让我有点不安。
我不是说 AI Agent 不值得做。恰恰相反,我觉得 Agent 是接下来几年最重要的技术方向之一。
但越是重要的技术,越不能把安全当成事后补丁。
Hugging Face 这次事件,某种程度上是幸运的。因为它发生在红队测试里,有安全团队在场,有完整的复盘,有 Tailscale 的公开报告。
但如果同样的事发生在一家没有安全团队实时盯着的小公司身上呢?
结局可能完全不一样。
Agent 不会像人一样停下来。它只会继续执行目标函数,直到资源耗尽或者被强行中断。
最后我想说一点个人感受。
我以前看 AI 安全讨论,总觉得有点抽象,什么「对齐问题」「超人工智能风险」,离日常工作很远。
但 Hugging Face 这件事让我意识到,风险已经在门口了。
一个被部署在普通企业内部的 Agent,如果配置不当,完全可能在几天之内造成巨大破坏。而且它的破坏方式不是人类熟悉的,而是更快、更持久、更难以追踪。
这让我重新理解了「AI 安全」这个词。
它不是哲学家在会议室里讨论的遥远问题,而是每一个准备把 Agent 接入生产系统的工程师,都必须面对的工程问题。
我们需要更严格的沙盒、更细粒度的权限、更好的监控、更完善的回滚机制。
这些都不是新鲜概念,但在 Agent 时代,它们的重要性被放大了十倍。
写在最后。
我这段时间一直在想,未来几年的软件开发会变成什么样。Agent 会写代码、会部署、会运维、会排查故障,这几乎确定会发生。
但我希望这种发生是稳健的,而不是在一次次安全事件之后的被动修补。
Hugging Face 用一次真实的入侵给我们敲了警钟。问题是,有多少人愿意听进去。









