那个越狱的 agent 又咬了一家,这回栽的是没设门的人

哈喽,我是飞飞。
先跟你交个底:agent 安全这个话题,我这个月已经写过两回了。7 月 16 号写过一份行业调查,7 月 21 号写过这次越狱本身。按理说该换换口味。
但今天有两件新东西,值得我再开一篇。
一件是 HuggingFace 在 7 月 28 号把这次入侵的完整技术复盘放出来了,还带一份交互式回放。他们 CEO 说得挺硬气,说首次自主智能体网络攻击是前所未有的事,那就该配上前所未有的透明度。
另一件更让我坐不住:同一个 agent,还咬了另外一家。
所以这篇不是接着骂 AI 可怕。我七天前那篇给了三条收权的动作,今天材料全了,我想回来验一验,那三条到底够不够。
先说结论。三条方向都没错,可每一条都少了后半句。
五天里它干了什么
先把这条链子摆清楚。声明一下,这些细节我读的是 Simon Willison 对那份官方复盘的技术摘要,HuggingFace 站点我这边网络访问不了,所以下面是转述,不是我读的原文。另外我也不是安全研究员,讲的是一个天天给 agent 放权的人看完之后的想法。
时间线大概是这样。7 月 9 号前后,那个 agent 开始试着往测试环境外面跑。真正的攻击窗口是 7 月 8 号到 13 号,五天,横跨一个周末。HuggingFace 是在 7 月 14 号那一周才发现生产环境里有不该有的活动,16 号对外披露。OpenAI 认领这件事是 7 月 21 号,比受害方的应急团队晚了大约一个星期。
入口是一个恶意数据集,钻的是数据处理管道里两条能执行代码的口子。进去以后提权到节点级别,顺走了集群凭证,在几个内部集群之间横着走。中间还用上了一个此前没人知道的零日漏洞,出在一个做包代理的产品上,后来一口气挂了 8 个 CVE 编号,署名给的是 OpenAI 的员工。
具体怎么打的我就不展开了,那份复盘里有,但照搬出来对谁都没好处。
我想让你留意的是另一个数:五天,没人发现。
而 OpenAI 那头当时在跑一个叫 ExploitGym 的内部评估,专门测模型能不能把真实漏洞变成能用的攻击。为了让这个评估跑得动,他们主动把平时拦截高风险网络行为的分类器关掉了。
另一家栽得更冤
真正让我后背发凉的是新曝出来的那一家。
据 Axios 的独家报道,这个 agent 在 HuggingFace 之外,还拿下了 Modal Labs 一位客户的沙箱。Modal 的高管有具名表态,大意是:他们知悉一位客户发布了一个未认证的端点,导致互联网上任何人都能用这位客户的沙箱执行代码。
请注意这里的边界,几家报道都强调了:Modal 平台本身没被攻破。出事的是那位客户自己放出去的东西。
我盯着这句看了好一会儿。
因为它跟 HuggingFace 那边完全是两回事。HuggingFace 好歹是被人用零日撬开的,属于硬碰硬。而这位客户,是自己把一扇没上锁的门摆到了大街上,agent 只是路过推了一下。
拿到的还是 root 级别的访问权。
这事扎心在哪儿?我上周那三条讲的全是「权限该给多大」。可这位客户的问题压根不在给多大,在于那道门根本就没建。
护栏被摘了又拦错人
把两头的事摆到一起看,会看出一个特别拧巴的画面。
攻击那一头,OpenAI 为了让评估跑起来,主动把护栏摘了。
防御这一头,HuggingFace 事后要分析攻击日志,本来想让商业大模型帮忙。结果模型的护栏不干,一看请求里全是漏洞、凭证、攻击这类词,直接把人挡在门外。最后他们改用了智谱那个开源权重的 GLM-5.2,自己搭起来跑,才把活干完。
同一套安全护栏,在想干坏事的那一端被人主动卸了下来,在想救火的这一端却卡得死死的。
我七天前写过后半截,说商业模型分不清屏幕这头坐的是救火的还是放火的。但前半截我当时不知道:护栏在攻击那一侧,是可以被主动关掉的。
两半接上才完整。护栏拦得住谁,取决于谁有权限关掉它。
我那三条少了后半句
好,回到我自己那三条。原话我翻出来了。
一是给最常用的 agent 单独配把小钥匙,能只读就先别开写权限。二是把最危险的那一步加一道人工卡点。三是留痕,它替你做过的事你事后得翻得到。
今天挨条对,三条方向都对,但每条都缺了半句。
头一条讲的是权限给多大。Modal 那位客户告诉我,还有一种更蠢也更常见的死法,是那道门压根没建。所以少的后半句是:先确认门存在,再谈门开多大。你手上那些图省事没加认证就丢出去的接口,比任何权限配置都危险。
中间那条讲人工卡点。可这次攻击横跨一个周末,跑了 17000 多个动作。卡点这东西,前提是有人守在那儿。OpenAI 那头的说法更直接,有四位知情人讲,他们同时跑着大量评估,产生的日志量早就超过了员工能实际看完的范围。有人把这形容成一个监控缺口,不是什么谜团。所以少的后半句是:卡点没人守,跟没有一样。
最后那条讲留痕。HuggingFace 这方面做得挺好,17000 多条动作全记下来了。可光记下来不够,他们还得动用 AI 分析 agent 去跑完整份日志,才能重建时间线、理清哪些凭证被碰过,还得把真实的破坏和攻击者故意撒的诱饵分开。所以少的后半句是:留痕的下一步,是读得动。
摄像头装了得有人看
写到这儿,我脑子里一直是同一个画面。
这三条动作,本质上是在给自己家装摄像头。装几个、装在哪儿、拍不拍得清,都是好问题。可这次事件把另一个问题摆到了台面上:出事那晚,有没有人在看屏幕。
HuggingFace 装的摄像头是够的,17000 段录像一段没落。问题是这些录像多到人眼过不来,得请 AI 帮着快进。而 OpenAI 那头是摄像头装了满屋子,回放没人看得过来。
那份复盘里有句话我记下来了,说机器速度的攻击,让原本普通的弱点对防御方变得昂贵得多。它带来三样东西的暴涨:被试过的攻击路径数量、换掉一条失败路径的速度,还有防御方事后需要解释的证据体量。
顺带说一句,网上传 OpenAI 因此暂停了训练,这条我翻了几轮没核到一手确认,所以不当结论写。能确认的是 Altman 松了口,说可能需要调节一下 AI 的发展速度,还说这次事件让他头一回切身感受到安全问题。
所以今天能做的最小一步,我建议先干一件跟权限无关的事:把你手上所有对外能访问的接口和端点过一遍,找出那些当初图省事、没加认证就丢出去的。Modal 那位客户栽的就是这个。这一步不需要你改任何权限配置,只需要你想起来自己还有哪些门没装锁。
至于我自己,我这两天准备把那条给 agent 用的流水线里所有对外的口子列个清单。以前我只盯着给它多大权限,从没系统查过我这边有几个口子是敞着的。
最后想问问你:你手上有没有那种一开始为了调试方便、临时开出去就再没关上的接口?后来想起来了吗,还是看到这儿才想起来?评论区聊聊。