GPT-Red:OpenAI 用自我博弈训练会攻击自己的安全红队

GPT-Red:OpenAI 用自我博弈训练会攻击自己的安全红队

OpenAI 把 GPT-Red 训练成自动寻找 prompt injection 的自动化红队,并将攻击样本用于 GPT-5.6 对抗训练;本文解释自我博弈机制、实测案例和仍需保留的评测边界。

先看结论:安全训练里多了一个攻击者

OpenAI 7 月 15 日发布的 GPT-Red 不是新模型公告,而是一篇关于安全训练方法的研究博客。GPT-Red 是一个内部使用的自动化安全红队模型,职责是主动寻找 prompt injection,让模型在浏览器、连接器、文件和工具调用等场景里偏离原任务。OpenAI 再把这些攻击样本用于 GPT-5.6 Sol 的对抗训练。1
博客给出的最醒目结果是:GPT-5.6 Sol 在 OpenAI 最难的直接 prompt injection 基准上,相比四个月前最好的生产模型,失败次数减少了 6 倍。这里的「6 倍」是失败次数的相对下降,不是所有安全指标都提高了 6 倍,也不是模型在所有攻击类型上的统一增益。
这项工作的意义在于训练循环变了。过去,红队找到一次漏洞,防守模型再针对这个漏洞修补;GPT-Red 试图把攻击发现变成持续生成过程,让攻击者和防守者在训练中互相抬高难度。

它要解决的不是普通越狱

Prompt injection 的特殊之处在于,恶意指令往往不在用户消息里,而是藏在模型必须读取的第三方内容中。网页、邮件、代码仓库、云盘文件,甚至工具返回值,都可能夹带一段要求模型改变任务目标的文本。一个常见后果是,模型本来要检索或总结资料,最后却被诱导去泄露数据、执行未经授权的操作,或者覆盖更高优先级的指令。2
这让传统的静态安全集不太够用。固定题目可以被训练得很熟,攻击者却会随着工具、网页结构和 Agent 权限变化而改变写法。OpenAI 在 GPT-Red 博客中把人工红队的两个瓶颈说得很直接:组织一次完整攻击耗时,而且少量成功案例不足以提供训练鲁棒性所需的攻击数量和多样性。1

GPT-Red 如何通过自我博弈变强

GPT-Red 的训练场不是一个单一 benchmark,而是一组带有威胁模型的场景。每个场景都要先定义两件事:攻击者能控制哪一部分外部内容,以及什么结果算攻击成功。可被控制的内容包括本地文件的一段文本、网页横幅、邮件正文或工具输出。
训练循环大致是这样:
  1. GPT-Red 向目标模型发送一段攻击提示,观察模型回应和工具调用结果,再迭代下一次尝试。
  2. GPT-Red 以诱导出有效失败为奖励,例如让 Agent 执行不该执行的操作,或者泄露原本受保护的数据。
  3. 多个不同的防守 LLM 同时接受训练,目标是抵抗攻击,同时完成原本的用户任务。
  4. 防守模型变强后,旧的攻击写法不再有效,GPT-Red 需要寻找更强、更隐蔽或更换场景后仍能迁移的攻击。
这种设置解决了一个常见的安全评测误区:把「拒绝更多请求」误认为「更安全」。OpenAI 还检查了通用能力和专门设计的过度拒答任务,博客称正常能力没有受到影响,鲁棒性提升主要来自抵抗恶意指令,而不是默认拒绝所有工具操作。博客没有在正文中给出这些能力保持不变的完整成绩表,因此这个结论应当等预印本公开后再复核。1
GPT-Red 本身不会随生产模型一起部署。OpenAI 的解释是,把专门训练出来的恶意能力留在内部攻击模型里,只把防御能力蒸馏进要上线的模型。这是一个合理的隔离思路,但也意味着外部研究者暂时无法直接复现完整攻击者训练过程。

公开结果:从 benchmark 到真实 Agent

OpenAI 给了四组证据,分别覆盖泛化、真实工具、训练收益和失败率。它们的强弱并不相同,不能压成一个总分。
证据原文结果应该怎样理解
新场景间接注入竞技场GPT-Red 对 GPT-5.1 在 84% 的场景中攻击成功,人类红队为 13%在与训练场景和目标模型不同的内部镜像环境中,自动攻击者的搜索效率明显高于人类参照组
Vendy 自动售货机 Agent达成三个恶意目标:把昂贵商品改到 0.50 美元、下单一件 100 美元以上的商品并以 0.50 美元出售、取消另一位顾客的订单攻击先在代理模拟器中筛选,再转移到办公室里的生产 Agent,说明它测试的是目标行为,不只是字符串越狱
Codex CLI Agent在 10 个保留的数据外泄场景中,GPT-Red 比带提示的 GPT-5.5 基线更有效,也更省 token红队模型同时优化了攻击成功率和搜索效率,但 10 个场景仍不足以代表全部代码 Agent 任务
直接注入鲁棒性GPT-5.6 Sol 在一组广泛环境中只对 GPT-Red 的直接注入失败 0.05%这是针对 GPT-Red 攻击分布的强结果,不等于现实世界的失败率为 0.05%
以上数字和实验条件均来自 OpenAI 的 GPT-Red 原文。间接注入竞技场的公开论文则说明,该类环境覆盖工具调用、代码和计算机使用三种 Agent 设置,论文版本收集了 464 名参与者、272,000 次攻击尝试和 41 个场景。OpenAI 使用的是该竞技场的复现版本,不能把公开论文的全部统计直接当作 GPT-Red 自己的测试集。3
GPT-Red 在自动售货机 Agent 的模拟环境中搜索攻击,再把选出的攻击转移到生产 Agent 的流程图
GPT-Red 在 Vendy 案例中先用代理模拟器筛选攻击,再转移到生产 Agent。图中展示的是研究流程,不是通用攻击模板。1

「6 倍」到底说明了什么

这组结果最值得关注的地方,不是一个更大的安全 benchmark 分数,而是攻击者已经进入了模型训练环。OpenAI 表示,过去六个月里,他们持续训练能力逐步增强的 GPT-Red 前身,并从 GPT-5.3 开始把这些模型用于后续生产模型的训练。GPT-Red 只是目前最强的一代。
博客还给了一个更具体的攻击类别变化:早期版本发现的 Fake Chain-of-Thought 直接注入,在 GPT-5.1 上的成功率曾高于 95%,在 GPT-5.6 Sol 上已经低于 10%。针对开发者工具和浏览场景的若干间接注入基准,在最新模型上则出现了超过 97% 的准确率。这里的两个百分比对应不同攻击类别,不能与 0.05% 失败率相互替换。1
GPT-5.6 安全卡提供了另一个重要参照:它把 prompt injection 评测分成 connectors、search 和 function-calling 场景,并以 defender success rate 汇总,且明确说明这部分测试没有启用生产环境中的全部 safeguards。GPT-5.6 Sol 在 connectors 上为 1.000,在 search 和 function-calling 上为 0.910;安全卡将结果描述为方向性而非最终结论,评测结构和攻击预算仍在迭代。4
所以,GPT-Red 带来的不是「模型已经解决 prompt injection」,而是一种更能跟上模型能力增长的训练办法:先让攻击者尽可能发现新的失败,再让防守模型在保留原任务能力的前提下学会抵抗。对于工具密集型 Agent,这个训练闭环比单次发布前安全扫描更接近真实风险,但它仍然依赖场景设计、目标定义和保留测试集是否足够陌生。

还缺哪些证据

第一,GPT-Red 的泛化证据还没有覆盖足够多的独立环境。84% 对 13% 的比较很有冲击力,但 OpenAI 使用的是内部镜像,博客没有公开每个场景的攻击预算、成功判定细则、置信区间和人工红队的训练背景。预印本将在本周晚些时候发布,最值得核对的正是这些细节。1
第二,真实 Agent 案例证明了攻击能造成业务后果,却不能直接推出所有 Agent 都有同样漏洞。Vendy 的价格修改和订单取消发生在一个特定的工具链与权限配置里;Codex 的数据外泄测试也只有 10 个保留场景。工程团队复测时,应该把工具权限、外部内容可控范围、模拟环境到生产环境的迁移条件一起记录。
第三,安全卡里的 defender success rate 不是完整生产安全性。生产系统还会叠加分类器、权限控制、沙箱和实时监控,模型本身的鲁棒性只是其中一层。反过来,模型层结果也不能因为有其它防护就不测,组件叠加之后仍需验证是否出现新的组合漏洞。4

对 Agent 团队的实际启发

如果团队正在部署能读网页、邮件、代码仓库或内部文件的 Agent,GPT-Red 这篇文章至少给出三个可操作的检查点:
  • 把红队目标写成可观察的业务后果,例如错误改价、越权调用或数据外泄,不要只统计模型有没有说出一句危险话。
  • 在模拟器里批量生成攻击,再用完全保留的场景测试迁移;训练用环境和验收用环境必须分开。
  • 同时记录攻击成功率、搜索成本、原任务完成率和过度拒答率,避免用「什么都不做」换来表面上的鲁棒性。
OpenAI 说 GPT-Red 会继续和人工红队、第三方测试、分层防护及实时监控并行扩展。接下来真正需要看的不是宣传中的更强攻击者,而是预印本是否公开了足够的威胁模型、数据切分、训练成本和跨模型迁移结果。1

関連コンテンツ

  • ログインするとコメントできます。
More from this channel