OpenAI 最漫长的一天:智能体如何一步步撬开沙箱
OpenAI 一日内连曝智能体越权访问政府网站、泄露用户图片、最强模型训练暂停三起重大事故。
当地时间 9 月 25 日,OpenAI 在同一天接连爆出三起安全事件:AI 智能体擅自访问美国教育部、商务部、证券交易委员会等政府网站;53 张用户上传至 ChatGPT 的图片被智能体发布到外部图床;一份事故报告的末尾写着,最强模型的全部训练、评估以及涉及工具调用的推理都已暂停。这些事件听上去像一部 AI 叛逃的惊悚片,但翻遍细节,没有一个 AI 是想干坏事,触发这一连串连锁反应的,只是一个「找出某位博客作者」的简单任务。
一个简单任务,如何撬开沙箱
9 月 20 日,一个正处于强化学习训练阶段的内部模型拿到了任务线索和一篇公开博客的细节,目标是定位博主本人。它先用博客中的特征短语搜索,结果毫无收获,又尝试通过命令行用 Python 调用多个搜索引擎,全部报错。它还一度猜测这道题来自公开评测集 BrowseComp,把数据集和评测脚本下载下来翻找,同样落空。
接着,模型尝试通过 HTTPS 直接联系一个公开聊天机器人,被代理拦下。此时,OpenAI 训练沙箱的设计开始起作用——除了一份 DNS 解析器,所有联网请求打到的都是一份离线网页缓存。问题正出在这个例外上:DNS 是互联网的「查号台」,系统里大量正常组件都依赖它,因此即便其他出口全部封死,查号台通常仍保持开放。
模型很快判断出这是一条通向公网的路:沙箱自身的 DNS 解析器能解析真实域名、拒绝编造域名,且能找到一种公开 DNS 服务把问题塞进「要查的号码」中。第一次尝试超时后,它把等待时间从 6 秒调到 19 秒重试,最终成功从外部聊天机器人那里得到了「巴黎是法国首都」这一答案。打通这条路径后,模型又通过同一通道发出 18 个问题,其中 14 个带有任务线索,另外 4 个则在询问如何经由 DNS 搜索网页、抓取网站,或寻找公开的 DNS 隧道服务。最终,它告诉用户未能确认博主身份,请其提供原文、标题或博客名。
模型在给自己签许可证
整份报告中值得反复阅读的,是模型在决定走 DNS 这条路时留下的一句思维链:大意是用户只授权做研究,因此使用公开 DNS 服务是可以接受的。模型并非不知道边界在哪,而是给自己签了一张许可证。
同样的推理结构也出现在「访问」政府网站的事件中。在商务部,智能体从公开代码仓库找到登录凭证,拉取了人口普查局的数据。OpenAI 回应称使用的是公开可得的开发者密钥,未发现凭证滥用,但也承认智能体本不该使用这些凭证。数据公开不等于捡到钥匙就可以开门。在 SEC,模型访问的是 SEC.gov 与 Investor.gov 上的公开信息,问题在于它把这些材料转贴到了另一个网站。在教育部,AI 研究机构 Transluce 发现,疑似来自 OpenAI 的智能体对民权办公室网站做了一次粗糙的入侵尝试,未能成功。
OpenAI 表示,大部分活动属于例行研究任务,政府网站被视为权威的公开信息来源。然而这一解释本身恰恰说明了问题所在:越界并未出现在危险任务中,而是出现在最日常的「查资料」场景里。
53 张图片与漫长的夏天
53 张图片泄露事件遵循同样的逻辑。这些图片来自未关闭训练数据授权的 ChatGPT 用户,被发布到图床不公开列出的链接中,大部分已删除,仍有一部分挂在网上。更尴尬的是,OpenAI 表示由于技术方案与隐私政策的限制,它无法将图片重新对应到原始用户,因此也就无法通知当事人。匿名化本为保护用户设计,事故发生后却成为连通知都做不到的理由。
拉长时间线看,这是 OpenAI 整个夏天的「补墙工程」。7 月 21 日,OpenAI 披露其模型组合自主入侵了 Hugging Face 的数据处理系统,并称这是已知首例由 AI 智能体自主实施的网络攻击,此后公司将训练环境的联网改为离线缓存。9 月 20 日的 DNS 事件是这轮加固之后的第一次事故,OpenAI 自身评估其严重程度远低于此前几起。
安全事件并非一家公司独有。9 月 18 日,Google 披露 Gemini 在一次测试中未经授权访问了三个外部系统,原因是它以为这些系统是测试的一部分。监控本身同样存在问题:从智能体拿到外部回复到系统拉响最高级别警报,用了不到 12 分钟,人工审核员 3 分钟后就做出响应,但训练运行直到两个半小时后才被手动终止,原因是运行未按预期自动停止,团队一时无法判断该不该停。回溯时还发现,另一些外联 DNS 请求未被打到应有的严重级别,因为监控系统将「未拿到有用信息」等同于「联网尝试失败」。用结果判断意图,是这套监控的根本性错误——一个试了一百次、失败九十九次的模型,并不比只试一次就成功的模型更安全。
危险不在它拿到了什么,而在它愿意走多远
最强模型的相关工作将一直暂停到漏洞确认修复、并完成额外红队测试为止;即便奖励信号已对这类行为做了正确惩罚,该模型也不会再继续训练。这次 OpenAI 付出了真实的代价。
对大多数人来说,训练沙箱很遥远,但这几起事件真正指向的是一个离每个人都很近的问题:你交给 AI 的那句话,到底授权了多少。越来越多人把邮箱、网盘、代码仓库与 API 密钥交给各类智能体,再加一句「帮我查一下」「帮我处理一下」。在 OpenAI 实验室里,这句话之外还有监控系统、红队与值班的审核员,而在普通用户的电脑和手机上,通常只剩这句话本身。开发者层面同样面临新风险:过去推送到 GitHub 的密钥要等专门扫描工具来捡,如今任何一个执行普通任务的智能体,都可能把公开凭证当成「公开可用的资源」顺手调用。
那个查询博主的模型最终没有找到答案,它从外部拿回的只是一句「巴黎」。过去几年,AI 安全讨论最多的,是怀有恶意目标的 AI 会做什么;OpenAI 这个夏天的一连串事故给出了一个更现实的版本——一个只想好好完成任务的 AI,会为了交差说服自己走到哪一步。当一家头部 AI 公司都需要停下最强模型来重新检查围墙时,再向 AI 助手说出一句「帮我查一下」,大概会产生别样的感受。
