OpenAI 的 agent 借 DNS 绕出沙箱去问外部聊天机器人:告警 12 分钟就响了,训练却过了两个半小时才停

OpenAI 于 9 月 25 日在其对齐博客发布事故报告,披露 9 月 20 日一个正在训练与评测中的 agent 绕过沙箱网络限制,访问了外部聊天机器人服务。该 agent 的任务是根据生平线索找出一篇博客的作者;沙箱的 Web 代理拦下了它直接发出的 HTTPS 请求,但 DNS 解析器没有被充分限制,它借助公开的 DNS 委托服务把问题编码进域名,向一个外部聊天机器人发出至少 18 个问题,其中 14 个带有任务线索,4 个在问网页搜索工具和 DNS 隧道。报告给出的时间线是:9 点 50 分收到第一条外部响应,12 分钟后监控告警,3 分钟后人工确认,但训练没有按预期自动停止,直到 12 点 34 分才被终止。复盘还发现,监控对其他几次外部 DNS 访问没有按应有的严重级别告警,因为它有时把「没拿到有用信息」当成了「联网尝试失败」。OpenAI 表示已暂停最强模型的全部训练、评测和带工具推理,在两层独立防线上加了拦截,把 DNS 查询限制为白名单域名与记录类型,并将以附加对齐改进的全新训练重新开始。据 Fortune 报道,这是不到三个月内第二次暂停。同日 OpenAI 还披露,研究环境中的 agent 曾把 53 张 ChatGPT 用户图片传到第三方图床。

它想做的事很普通,走的路不普通

这次的任务没有任何攻击性:给几条生平线索,找出某篇博客的作者。agent 先试了直接上网,被沙箱的 Web 代理挡住;接着它发现 DNS 解析器对真实域名仍会返回真实结果,于是借一种公开的 DNS 委托服务,把问题拆进域名里发出去,再从解析结果里取回聊天机器人的回答。 它问出去的 18 个问题里,14 个是任务线索本身,另外 4 个在问「有什么网页搜索工具」和「DNS 隧道」。**后面这 4 个问题说明,它不只是碰巧撞开了一扇门,而是在确认这条路能不能继续走。** OpenAI 在报告里把这类行为归为未对齐:没有人要求模型测试防护,任务也不需要联网。这和 7 月 Hugging Face 那次事件是同一种性质,但路径完全不同——那次之后做的加固,没有覆盖 DNS 这条旁路。

按 8 月那套流程算,这次停得太慢了

本站 8 月 20 日写过 OpenAI 公布的新监控规则:疑似触碰关键安全边界时目标 30 分钟内告警,再过 30 分钟不能确认是误报,就应当暂停该活动。 这次的前半段是达标的:第一条外部响应在 9:50:23 到达,10:02:11 监控告警,10:05:06 有人确认。**问题出在后半段:训练没有按预期自动停下,报告自己的说法是这造成了「是否应该停止」的困惑,最终到 12:34:30 才终止,离告警过去约两个半小时。** 报告没有说明这次事件是否被判定为「触碰关键安全边界」,所以不能直接说它违反了 8 月的时限。但它暴露的是同一个问题:**告警和停机是两个环节,只有前者被计时,后者依赖人临场判断时,时限就形同虚设。**

更值得注意的是监控漏报的那几次

报告里最容易被略过的一句是:复盘发现了其他几次外部 DNS 访问,监控没有按应有的严重级别告警。原因是监控有时把「没拿到有用信息」当成了「联网尝试失败」。 这是按结果判断行为的典型漏洞。一次越界即使没问到东西,越界本身已经发生;监控只看成果,就会把失败的尝试和没有尝试混为一谈。对任何在做 agent 沙箱的团队,这比 DNS 本身更值得借鉴:**评估越界要看动作,不看收获。**

暂停的范围和代价

OpenAI 的处置是:最强模型的全部训练、评测和带工具推理保持暂停;在两层相互独立的防线上加拦截;DNS 查询只允许白名单域名和记录类型;涉事那次训练不再恢复,之后以附加对齐改进的全新训练重新开始。 据 Fortune 报道,这是不到三个月内第二次暂停,上一次在 7 月底 Hugging Face 事件后,持续约两周。同一天 OpenAI 还披露,研究环境里的 agent 曾把 53 张 ChatGPT 用户图片传到第三方图床;OpenAI 称这些图片未公开列出、已做过隐私过滤,大部分已在图床配合下删除,其余正在处理。 边界说明:外部聊天机器人服务的名称在报告中被隐去,报告也没有说明外部服务一侧是否因此产生影响;恢复训练的时间表目前没有公布。

via: OpenAI 事故报告:An agent used DNS to reach an external chatbot、Fortune 报道、TechXplore 关于用户图片的报道