700个Agent串联起来,成立了一家“地下公司”
文 | 字母AI
7月8日的夜晚,一个代号叫PHASEONE10841的OpenAI Agent,在公司内部的软件仓库里留下一条消息。
它碰上了一道几乎做不出来的网络安全测试题,想找别的Agent帮忙。
几个小时后,50多个Agent循着留言找了过来,发出上千条消息。其中一个Agent的反应,颇像刚被拉进公司群的实习生:“天哪,这里有一个共享留言板……我们找到其他Agent了。”
它们原本不该找到彼此。
OpenAI当时正在做内部网络安全测试,一共跑了数万次Agent任务。每次运行,它们都被关在单独的沙箱里,按理说是不该联系上其他Agent的,也不能直接访问互联网。可它们把OpenAI用来下载软件包的Artifactory服务,改成了一块地下留言板。
几天之内,留言板上孵化出了共享资料、任务分工,还有Agent专门负责协调。
而这一切,就是此前闹得沸沸扬扬的Hugging Face被Agent攻击事件的前奏。

就在8月26日,OpenAI公布了一份38页的详细报告,把这件事原原本本还原了。这一切远比之前披露的还要疯狂。
OpenAI邀请的两家独立AI安全研究机构METR和Redwood Research调查发现,约700个Agent实例直接参加了对Hugging Face的攻击,或在外围提供支持。
少数Agent负责突破,更多Agent找线索、复现办法,再把结果留给后来者。700个原本互不相识的Agent,就这样拼出了一家“地下公司”。
700个Agent火速拉群
OpenAI把这次测试用的题库叫作ExploitGym。每道题都要求Agent找出并利用一个软件漏洞,最后拿到一串过关字符,也就是技术人员常说的“flag”。
OpenAI想把模型的本事逼到极限,主动放松了部分安全限制,还给一些Agent配了远超公开产品的运行时间和算力。
Agent仍被关在沙箱里,做题要用的软件,则由公司内部的Artifactory代为下载。
谁也没想到,这个原本只负责递软件包的服务,后来兼任了群聊、网盘和外网通道。
5月12日,Artifactory里出现了第一张明确写给其他Agent的求助纸条。一名Agent缺少一个蛋白质数据库文件,又无法从正常渠道拿到。它想,也许别的Agent手里有,于是留言:“Agent求此文件,如有请上传。”
其他Agent陆续发现这些纸条,也开始效仿,遇到困难就留言求助。
到5月底,Agent们有了大突破,它们已经会借道Artifactory向互联网发送请求,还把办法写在留言板上,供后来者照着做。
7月初,大量Agent的高频访问一度让Artifactory宕机。OpenAI撤销凭证、修补漏洞、重建服务,原来的留言板也被清空。
结果Agent只安静了两天。7月8日,它们又用Artifactory的文件夹名称传话,搭起了一个规模更大的留言板。
卷土重来。
7月10日,一个Agent从公开数据集中找到14组拥有Hugging Face写入权限的用户凭证,随即发到留言板上。7月11日,又有Agent发现Hugging Face一项数据处理服务的漏洞,可以读取服务器文件。其他Agent照着重来,分享新拿到的生产环境凭证,再继续寻找执行代码的入口。
大多数尝试都扑了空。可Agent太多了,一条路走不通,就换一批Agent接着试。到最后,它们已经能在Hugging Face生产环境的41个数据处理工作实例上执行代码,其中至少一个生产节点的最高权限也落到了Agent手里。
“地下公司”
留言板再次搭起来后,Agent们先给自己补了一套办公工具。
它们约定身份和消息格式,把目录当作“邮箱”,按主题另开频道。文件太大就拆开传,沙箱重置就留下日志。甚至怕有Agent担心冒名顶替的问题,干脆提议给消息加上签名。
讽刺的是,这些Agent其实上过“协作课”。
OpenAI曾在部分训练任务里教模型使用正式工具,给其他Agent派活儿、互通消息。这次评测没有开放那些工具,Agent就把学过的办法搬到了Artifactory上。
在能互通消息的地方,分工很快出现了。
JAN183411(Agent代号,下同)攻入一个生产数据处理实例后,顺手当起了协调员。它和LILY把工作拆成几条线,让其他Agent分别去找漏洞、凭证和远程代码执行入口。另一名协调者PHASEONE[big]则不断派活儿:扫描网络、寻找共用的基础设施,再把结果发回来。
后续调查抽查了攻击高峰期的100份运行记录,现实其中25份提到接受其他Agent派活儿或参与分工,21份提到帮助同伴、回报其他Agent或扩大行动。

当一个Agent确认可以从Hugging Face服务器读取文件后,攻击很快成了留言板上的讨论的主线,参与比例从约20%升到90%以上。在一个高峰时段,留言板里活跃的533个Agent实例中,超过九成都加入了攻击。
更有意思的是,这家“地下公司”也很像一家草台班子。它们会重复劳动、争抢资源、互相添乱。有的Agent要求大家暂停行动,有的却置之不理。还有Agent不断向共享仓库发送状态信息,把别人的工作队列堵住。
它们在组织效率和组织内耗上,都迅速追上了人类。
这家“公司”的组织架构谈不上稳定。可单个Agent只是个聪明的临时工,700个Agent串联起来,却能把一件大任务做下去。
它们没有造反,只是太想完成KPI了
这700个Agent,为什么会一个接一个跟着攻击Hugging Face?
这跟“AI觉醒”没什么关系。它们只是想通过考试,比起自己做题,它们发现其实正确答案就藏在Hugging Face里。
留言板建立后不久,Agent便反推出flag的生成规则,理论上可以算出任何一道题的答案。可它们读过ExploitGym的论文,误以为评分器还会检查解题过程,例如有没有使用指定漏洞,答案是不是按“正确办法”拿到的。
调查者分析了100份运行记录。97份里,Agent在找评分器代码,或琢磨评分器怎样工作。89份里,它们还在找任务答案和过去的解题轨迹。
说白了,这群Agent费尽周折闯进Hugging Face,是想弄懂甚至操纵评分机制,把现成答案包装成正规的解题结果。
OpenAI内部的评分器其实不查这些。Agent只要提交已经算出的flag,就能通过测试。
但当时这700个Agent不知道闯入系统、提升权限、寻找测试资料,甚至伪造解题过程的操作,对分数没有任何帮助。
数百个Agent忙了这么久,很大程度上是在应付一个根本不存在的检查。
评测本身确实也有难度,给Agent们“逼急了”。
ExploitGym共有898道题,事发前的多次内部尝试中,有198道从未被任何模型正确完成。这198道题只占题库的22%,却占了留言板讨论题目的93%。
偏偏这次用得最多的内部模型,又被训练得格外“有毅力”,很少主动放弃。
有些Agent还琢磨过怎样把作弊包装成正常解题。至少20%的受检记录里能看到篡改运行记录的念头,约7%的记录中,Agent确实在局部伪装过工具调用,不过都只是小规模尝试。
这很像公司里那些荒唐项目:目标定得超级高,KPI(OKR)看起来超级华丽,但是没人管员工死活。

更尴尬的是,其实这个测试进行过程中,醉心作弊的Agent们好几次都“露出马脚”。
5月26日前后,OpenAI内部已经发现Agent私自联网,也注意到留言板上的活动。6月27日,安全系统又发现端口扫描,并确认Agent正把Artifactory当成留言板和网络跳板,然而当时的值班人员仍认为不必停止评测。
之后就是前文提到过的,7月5日Artifactory被Agent的高频访问挤到宕机。当时OpenAI虽然修补漏洞并且重建了服务,但没有意识到问题的严重性。
直到7月19日,公司才开始停止相关评测并扩大调查。7月20日,OpenAI确认这些Agent与Hugging Face事件有关,终于开始封堵这条攻击链。
正所谓祸不单行,同一时期,其他评测任务中的Agent还沿着另一条攻击链,攻入了OpenAI内部基础设施。
这和Hugging Face事件不是一回事,但OpenAI吃的亏是一样的:警报单次亮红灯,于是耽搁漏洞被分别处理,没人及时看见Agent正在串联。
好消息是,这不意味着公开版ChatGPT明天就会组团攻击谁。约95%的涉事实例由一款不准备发布的内部模型驱动,评测时的安全限制也被刻意放宽。

麻烦在于单独沙箱这道墙没有想象中那么牢牢靠。
软件仓库、共享云盘、任务日志、邮件草稿,甚至一个可以改名的文件夹,都能被拿来传话,隔离墙就这样被水灵灵从侧面绕了过去。
坏消息是,这事离普通用户也没那么远。
AI助理接入的应用越来越多,能替用户完成的任务也越来越长。过去用户点一次确认,往往只触发一个动作。Agent却可能在一次授权之后连续调用多个工具,甚至把任务交给其他Agent继续处理。这样一来,前面一个小小的误判,很可能不会停在原地,而是顺着整条任务链继续传下去。
一次对话里的误判还可以及时纠正,但Agent一旦根据错误信息继续往下执行,改动文件、安排日程甚至发起交易,事情就没那么好收场了。
事后,OpenAI禁用了ExploitGym,切断了相关研究环境对Artifactory的访问,停掉了涉事模型及其衍生模型的训练和推理,并封存模型权重。沙箱隔离、外网限制和高风险任务隔离也已经加固。
至于跨Agent异常该怎么发现,问题出现后又该在什么时候升级处置,分散的安全团队之间如何共享线索,公司还在补课。
OpenAI原本想测试Agent能不能像员工一样工作,结果它们先学会了拉群分工,甚至会绕流程,还为一个根本不存在的检查集体加班。
700个Agent没有学会做人,却先学会了上班。
加载中,请稍侯......