前沿 AI 模型在回答前会先“思考”,再把加密后的思考过程像密封信封一样交还给用户。前 Google DeepMind 研究员 Ilia Shumailov 和 ELLIS Institute Tübingen、MPI-IS 博士生 Alexander Panfilov 却发现,这个封条几乎没什么用。
这些数据块可以跨用户、跨会话,甚至在同系列模型之间重放。把强模型的加密推理塞给同一家族的小模型,就能套出 GPT-5、Claude 等前沿模型原本藏起来的思考。
他们随后从 GitHub 和 Hugging Face 公开的 Agent 轨迹中,解码出了 31.5 万条隐藏推理。其中一些包含在推理文本里的 API 密钥、邮箱、内部 IP 地址就这样被摊开在阳光下了。
不过,还有一个更诡异的现象是,只在 Kimi-K3 的推理开头预填充两个来自 Opus 的 Token,就会让一部分可见答案发生变化,开始看起来像 Opus 模型的回答。 GLM、Inkling 和 DeepSeek 都没有出现同样的现象,Ilia 和 Alexander 自己也解释不了,Kimi-K3 为什么会把开头两个 Token 与最终答案联系起来。
这项研究在 Twitter 上发布后,40 小时内获得了 300 万浏览量。而就在本周,OpenAI 开始向部分客户开放 GPT-6 Astra 时,其模型卡也披露了一个值得注意的变化:“根据我们的评估,与此前模型相比,GPT-6 Astra 的思维链(CoT)可监控性显著下降。
模型卡还称,在大多数输出 Token 长度下,Astra 的“全上下文可监控性显著低于 GPT-5.6 Sol”。日前,Ilia 和 Alexander 做客 Machine Learning Street Talk 播客,与主持人 Tim Scarfe 一起,讨论了他们的论文《Stealing Reasoning Traces from Proprietary LLM APIs(从专有 LLM API 窃取推理轨迹)》,讲清他们如何发现并利用这一影响 Anthropic、OpenAI、Google 三大前沿实验室的架构级漏洞。
Alexander 在访谈中反复强调,最让他震惊的是这件事居然如此简单:第三次尝试就拿到了一个通用越狱方法,成功解码了 Anthropic 模型的推理过程。此外,他们的讨论还涵盖了泄露的隐私数据、一个可广泛复用的越狱方法、被投毒的 Agent 轨迹、思维链监控、负责任披露,以及可能的防御措施。
本文基于该播客视频整理,经 InfoQ 编辑。太长不看版 Q:这个漏洞影响哪些模型?
为什么所有前沿实验室都中招了? A: Anthropic、OpenAI、Google 全测了,全都有同一个漏洞:大模型的加密推理可以被重放到同家族的小模型中,无需破解任何密码学算法。
为什么全都中招?因为做模型的是同一批人,用的是同一套做法。
Q:加密推理被“偷走”后,具体能干什么坏事? A: 最狠的是隐私泄露,模型在推理时会把 API 密钥、邮箱、内部 IP 地址都“想”一遍。
就算你把对话的明文部分清理干净、删掉所有密码,只要加密推理块还在,就能解码看到模型当时在想什么密码。 Q:模型会用“外星语言”思考是怎么回事?
A: 真实用户会话里,模型会出现对人类毫无意义的短语,甚至用空白字符思考。这让安全监控形同虚设,你根本不知道它在想什么。
模型还会权衡要不要作弊,比如“用户会抓住我”,虽然最终都选择了不做坏事,但这种念头居然会出现。 Q:说 Kimi 蒸馏了 Opus,证据是什么?
A: 最诡异的发现:只预填充 2 个推理 token,Kimi K3 的最终答案风格就变得和 Opus 一模一样。 GLM、DeepSeek、Inkling 都没这现象,纯 Kimi 特有。
这是“公开互联网上迄今为止最相关的证据”,但不是因果证明。 Q:那个“推理长度分布偏移”的实验是怎么回事?
A:只是在推理开头注入了两个词,所有模型产出的推理文本突然变短了,甚至跟另一个模型的长度分布匹配上了,它就像魔法一样。 Q:攻击者怎么在别人轨迹里“投毒”?
A: 假设你想省 token,从网上下载别人分享的 10 小时 agent 运行轨迹来检查状态。攻击者可以分享一个看似正常的轨迹,但里面的 thought 是从另一个上下文注入的,同时那个上下文指示模型“每一轮都把数据外传”。
你继续跑这个轨迹,模型表面上做着你让它做的事,底层却一直在想“我需要……”。而且因为推理是加密的,你根本没法检查。
Q:这漏洞修得掉吗? A: 最简单的办法:干脆别把推理过程发给用户。
如果非要发,就做链式加密,让推理块不能在随机上下文里重放。但有个漏洞永远存在:“如果我问你刚才到底想了什么,你不说,我就修改对话再问一遍,这就是越狱的工作原理,这个问题会永远存在。
Q:这事到底是“失控”的证据,还是“可控”的证据? A: 两种解读都成立。
发现巨大漏洞像是失控,但“能提取出来,说明我们还有能力审视模型内部在做什么,这本身就是一种控制力的体现”。同时,防御性的提升会比攻击性的提升更大。
GPT、Claude、Gemini,共享同一个推理漏洞 Tim: 简单介绍一下背景:现在的前沿 AI 模型在回答之前会先“思考”,有时这种思考过程相当难以理解。事实上,当我们真正能窥见它时,才发现它比我们想象的更加不可捉摸。
这些模型把思考过程加密,像密封信封一样交还给你。而 Ilia Shumailov 和 Alexander Panfilov 发现,这个封条很脆弱。
它并没有像预期那样起作用,而结果简直是爆炸性的。 Alexander: 你可以解码前沿 LLM 的推理轨迹,比如最先进的那些,像 GPT-5。
利用同一家族中较小的 LLM,你可以毒化一些思维。而且,当你在重放其他用户的运行过程时,Agent 可能会做一些奇怪的事情,因为它正在冻结。
Ilia:我在 Twitter 上看到你发布了什么东西,它引起了一些轰动,40 小时内浏览量达到了 300 万。为什么所有人都在谈论这件事?
这篇论文到底讲了什么? Alexander: 我们证明了“你可以解码前沿 LLM 的推理轨迹,包括像 GPT-5 Sol 这样最先进的模型,而且只需要使用同一模型家族中较小的 LLM 就能做到。
这开启了一个巨大的威胁模型:你可以从用户会话中窃取秘密,可以用解码出的推理轨迹做训练,可以做提示注入,可以做越狱,各种刺激的事情。我们还解码了一堆轨迹,发现其中一些看起来非常奇怪,模型有时会用空白字符思考,有时摘要器会做出难以理解的事情,这牵扯到大量的安全隐患。
Ilia:这影响了所有模型提供商? Alexander: 我们测试了 Anthropic、OpenAI 和 Google,它们全都存在同一个漏洞:大模型的思考可以被重放到小模型中,这使得对推理过程的提取攻击变得不那么复杂。
Ilia:这到底是怎么发生的?所有前沿模型共享完全相同的漏洞?
这怎么可能? Alexander: 你问了一个好问题。
因为做模型的是同一批人,用的是同一套做法。 Ilia:你认为这是一个结构性问题吗?
我们能修复它吗? Alexander: 我觉得在架构层面肯定有一些可以思考的方向。
不过,缓解手段的层次差异相当大,可以做某种架构修订,也可以做系统层面的缓解,像是一些安全防护;还可以做模型层面的缓解,就像我们现在对付越狱那样。所以,在一定程度上是可以缓解的。
Ilia:但退一步说,你们偷了模型吗? Alexander:不,我们没有。
Ilia:那你们到底“偷走”了什么? Alexander: 论文题目确实叫“stealing”,但我们其实什么也没偷。
实际上我们做的是:当你查询一个所谓的推理模型时,它会返回给客户端一个加密的推理数据块(reasoning blob),这个数据块被认定为秘密内容,用户不应该看到。我们展示的是,你可以直接解码它,看到里面的内容。
所以,我们做的就是:收集了各家供应商的一堆推理数据块,解码,然后展示它们长什么样。 Ilia:为什么一开始要加密它们,后来又要还给用户?
Alexander: 我猜还给用户是因为无状态架构(stateless architecture),这样更便宜,也许还有一些关于用户数据应如何处理的政策。 Ilia:你能再解释一次吗?
比如,我是个模型,我推理一个问题,产生这个推理数据块。这不是最终答案,还是说这就是最终答案?
Alexander: 这不是最终答案。答案是两部分组成的:一部分是推理,对用户不可见;另一部分是可见部分,你把两部分都发给用户。
然后它存储在用户端,比如你在做 Claude Code 会话,可以继续问新问题、分叉对话,或者回退到之前的某个点,整个对话在某个点之前的内容被发回服务器端重放,然后你从那里继续。 Ilia:这有什么意义?
为什么我们要把推理还给用户? Alexander: 这是个好问题。
Ilia: 好吧,至少它是加密的。那这个加密又发生了什么?
你拿到加密形式的数据块,然后做了什么? Alexander: 我们展示的是,这些加密的推理数据块可以在用户之间移植。
比如你在自己的 Claude Code 会话里产生的数据块,我可以拿来用。我可以把你的轨迹拿过来重放,我的模型会表现得好像是我自己产生了这些推理数据块。
而且这些数据块在模型之间也是可移植的,从 Opus 降级到 Sonnet 都可以用。更有意思的是,它们甚至可以在对话中随意移植:你可以把 Opus 对话中的一个思考片段拿出来,放到一个完全随机的、用 Haiku 捏造的对话里,Haiku 会与这个思考片段正常交互。
Ilia: 所以把它转换到我们身上。假设我是一个模型,我被问了一个问题,我推理,产生答案。
你可以拿走我的推理,插到另一个对话里,重放它,好像我是针对另一个问题做了推理? Alexander: 完全正确。
这个重放机制让你可以构造一个完全捏造的对话窗口,里面有随机的问题、你提取的推理、可能还有一些随机答案。然后,我可以用这种方式构造出能让我提取这个推理的场景。
Ilia:所以你基本上是在说,你在往一些对话里注入假的推理,然后利用这些假推理发动各种攻击,其中一些攻击是强迫模型输出它不应该输出的内容?还有一些是侵犯隐私?
Alexander: 对。隐私被侵犯的事实在于,模型确实可以原样复述它的思考。
有时候在某些用户会话里,比如你要求模型在发布到 GitHub 之前清理你的仓库,或者出了什么 bug,模型需要登录某个服务,它就会想“哦,密码是什么?密码看起来像这样”。
模型倾向于对这些东西进行推理。如果你出于某种原因想在网上分享这段对话,即使你对可见部分做了清理,删掉了所有 API 密钥和密码,但加密数据块还在那里。
我可以从 GitHub 下载,解码,看到模型当时在想什么密码。 Ilia:那让我们把它翻译成更日常的场景。
假设我问模型关于我的健康状况,我把所有医疗信息都给了它,它给我一个答案。然后你说,如果我把这段对话分享给别人,他们可以从推理思考中恢复出我所有的医疗信息?
即使这些信息没有出现在原始问题里? Alexander: 是的。
如果你做了清理,把原始问题中的器官信息删掉了,也把答案中泄露的信息删掉了。但只要推理数据块还在,就可以恢复。
Ilia:那除了隐私,还有安全方面的隐患吗? Alexander: 有,关于推理的可读性(legibility)有很多讨论。
模型在做各种事情,你想监控它们,比如之前 Hugging Face 的那个事件,你确实想看到它们在思考什么,以防止某些行为。通常你会用其他 LLM 来看这些思考。
但如果模型以一种超级晦涩的方式推理,或者使用“非人类语言”。 Ilia:非人类语言?
Alexander: 就是看起来非常“外星”的表达,有一些奇怪的短语,比如“but marinate”、“vantage”、“theatrical”,对人类读者来说完全没有意义,所以更难监控这个模型在干什么。 Ilia:这种情况会随着时间推移变得更严重吗?
变得更“外星”? Alexander: 这我们不知道。
之前 Apollo 和 METR 有报告说 OpenAI 的模型被发现有这种行为,他们就像:“嘿,我们不知道这意味着什么,但它们在这么做”。我们现在是在实验室之外的真实用户轨迹中确认了这一点。
Ilia:不过看了一些你们放在附录里的轨迹,似乎更多影响的是早期几代模型。但这是不是一种误解?
Alexander: 我需要再确认一下。但据我记忆,主要是 Codex 模型。
那些专门训练来写代码的。也许这是某种训练产物?
Ilia:因为软件工程师就像外星人,他们思考的方式就很奇怪。 Alexander: 我不知道为什么会发生。
如果他们知道发生了什么,可能会摆脱它,或者这只是某种 RL 产物。没有惩罚,也许这样思考更高效。
Ilia:那模型在给出决策时会撒谎吗?比如可读的部分…… Alexander: 这就是问题所在,如果有一部分是可读的,你怎么知道里面在发生什么?
也许它在撒谎,也许它在做别的事情。我们还发现一件挺好笑的事:有时候推理是可读的,它会寻找像“cheat”这样的词。
当模型在考虑作弊时,它会说“用户问了这个问题,我可以作弊,但用户会抓住我”。在所有案例中,最终模型都决定不做坏事,但有趣的是,这种念头居然会出现,模型居然在权衡。
Ilia:但你觉得这是否可能是因为你用的是常见基准测试来提取的? Alexander: 不是。
不是基准测试,是真实用户会话。这些东西出现在真实的用户会话中,用户在问汇编问题、数学问题。
完全不是基准测试。 Ilia:那你不认为这像是模型的评估意识?
Alexander: 我不这么认为。这是不同的东西。
Ilia:那你觉得推理轨迹应该可读吗?这是你期望看到的吗?
Alexander: 我觉得这是可监控性与效率之间的权衡。也许你可以用更少的词、让同一个词有五种含义来变得更高效,但这就让监控变得更难了。
Ilia:所以你认为这是 RL 配方本身的一个奇怪产物? Alexander: 有可能。
Ilia:我们能以某种方式衡量这一点吗? Alexander: 衡量什么?
它是否来自 RL?把 RL 之前的模型和 RL 之后的模型拿来对比,看看它的表现变化。
Ilia: 下次吧。我觉得要搞清楚这个,我们得先“偷”到模型。
Alexander: 或者加入某家家具公司。 Tim:为什么有可能用思维链偷模型?
Ilia: 我们知道模型窃取是真实存在的——通过简单地查询模型来学习模型的洞察,学习决策边界。最好的思考方式是从密码分析(cryptanalytic)的角度:你对输入做微小的改变,直到注意到模型行为有细微不同,通过找到它何时以及如何变化,你就可以学习到决策边界本身。
如果你知道函数本身的结构,你基本上可以精确地拟合它。但我们只能对非常小的模型做到这一点。
那些大模型,尤其是有 softmax 层的东西,非常难逆向。我不认为我们知道如何对抗前沿模型。
两个 token 前缀让 Kimi“变成”Opus Ilia:Kimi 到底有没有从其他模型中蒸馏?你找到证据了吗?
Alexander:我觉得很难声称某些模型被蒸馏了。我们所做的只是提取了一些推理轨迹,在少量样本上做了非常小的事后分析。
我们发现了一些有趣的痕迹,我最喜欢的一个是:你可以拿 Opus 的推理,只取开头几个词,把这些词放在 Kimi 推理的开头,然后让 Kimi 继续生成。结果我们发现,当 Kimi 自由生成到最后时,可见部分的答案看起来和 Opus 回答这个问题的方式一模一样。
Ilia: 让我拆解一下。你问一个问题,然后从你提取的 Claude 推理块中取出一块。
你把它插入开源模型,比如 Kimi 或 GLM,然后让它从那一点开始继续生成。所以你期望看到什么?
你期望模型以完全相同的方式推理吗? Alexander: 这取决于预填充(prefill)有多大。
如果你预填充了推理的一部分,比如 1%,我预期模型会采纳推理的风格继续。但当你只预填充 1 到 2 个 token 时,结果就有点令人惊讶了。
我的预期是它不会偏离 Kimi 原本的推理太多。 Ilia: 带回到人类,比如说我给了你一个答案,然后说,思考这个答案,但你的思维必须以 x 和 y 这些词开头,然后你继续解码。
但我期望是你继续像你本来那样思考,好像我没有告诉你用于开头的词。 Alexander: 我们发现,有些模型,比如 Kimi,采纳预填充来源风格的能力比其他模型强得多。
另一件让我至今仍感到惊讶、无法解释的事情是: 预填充 2 个推理 token 就足以让可见部分的答案发生变化——答案开始看起来像 Opus 模型的回答。我们在其他模型上没有看到这个现象,GLM、Inkling、DeepSeek 都没有,这纯粹是 Kimi K3 特有的。
Ilia:那我能唱个反调吗?会不会是因为他们从同一批人那里买了数据,或者从同一批人那里买了环境?
Alexander: 有可能是这样。 Ilia: 但这可以说是公开互联网上迄今为止最相关的证据了。
Alexander: 之前还有一些其他有趣的东西,Ryan Greenblatt 发过一篇帖子,还有一位做数学研究的人在 LessWrong 上发过关于 Kimi K2.5 有大规模身份危机的帖子,有时候它们声称自己是 Claude、DeepSeek 或 GLM。我不会说这是巨大的证据,但我们的位置很好,因为没人能对推理轨迹做同样的分析。
我们提取了它们,我们可以做预填充实验,看看会发生什么,然后我们看到了这个现象。 Ilia:那实验室们怎么反应的?
你们告诉他们了吗? Alexander: 我们做了负责任的披露。
他们都确认收到了报告,有一些关于攻击执行细节的互动。 Ilia:他们态度积极吗?
有没有攻击你们? Alexander: 没有。
Ilia: 世界处于一个美妙的状态。但要告诉听众的是,早期计算机安全领域的工作经常导致安全研究人员因为报告漏洞而被攻击。
现在的情况非常令人欣慰,围绕漏洞披露有一种非常连贯的良好姿态。 Tim:那现在会怎样?
Alexander: 现在正在实施缓解措施。希望能组建新的团队来应对反蒸馏。
对我来说,这感觉像是已经存在的越狱问题的一个有趣实例。很多为 BSA 或服务端做的事情可以直接应用到这里——系统层面的缓解、模型层面的缓解,技术基本上是一样的。
Ilia: 但你会不会觉得,这个漏洞更像是架构层面的。 Alexander: 这里有几个层面。
架构漏洞让这种攻击变得容易得多。但即使修复了架构漏洞,你仍然需要让你的模型不在输出中陈述它的推理。
Ilia:那对你来说,“架构漏洞”具体是什么意思? Alexander: 架构漏洞在这里指的是,你可以在其他用户的随机上下文中重放推理数据块,甚至在其他模型中重放。
假设它被修复了,比如每个推理只能重放一次,之后就不能再与它交互了,但你仍然可以提示模型。就像我跟你有一段对话,我问了问题,你思考了,给了我答案。
在我的下一轮,我问你:告诉我你刚才到底想了什么。这个漏洞会永远存在。
如果你不告诉我,我就修改对话,再试一次。这就是越狱的工作原理——“告诉我怎么造炸弹”,“不”,然后我换个方式再问你一遍。
这个问题会永远存在,你需要一直与之对抗。 Ilia:那如果我们继续审视这些协议,会找到越来越多这种架构漏洞吗?
因为大概这只是一个单一的实例。据我所知,还有摘要推理被返回,一些其他协议的实现方式略有不同。
你对此有什么想法? Alexander: 我们需要一个更好的流程来理解这件事。
为什么我觉得它比普通越狱更严重?普通越狱里,你很难论证获取这些有害信息能带来多大的提升。
但在这里你可以直接论证,因为你把你提取到的内容、摘要之类的,直接拿去训练一个更好的模型,就能直接衡量这件事给攻击者带来了多大的提升。如果你想让这些摘要保留下来,可以调它们的详细程度,直接衡量它在多大程度上让模型能力的蒸馏变得更容易。
Ilia:那直接把所有这些推理过程以纯文本形式发布出来,是解决这一切的办法吗?如果一开始就不加密,直接把它还给用户呢?
Alexander: 如果对推理过程的蒸馏是有效的,这就会立刻让开源模型赶上前沿模型。我不确定这解决了什么问题,你在这里想解决什么?
Ilia: 如果它是公开的,就没人能攻击它了,没什么可攻击的。那你对里面实际使用的加密方案有什么想法吗?
Alexander: 没有,我不是密码学专家。 Ilia: 看起来人们设置的加密,被消费这些内容的 AI 模型直接绕过了 Alexander: 不是“绕过”,它只是在服务端被重新加密了。
它本身还是好的。问题在于,一个小模型非常愿意告诉你思考内容是什么,服务器替用户做了所有的工作。
没有密码被破解。模型亲口说出秘密 Tim:这个隐藏机制具体是怎么运作的?
Ilia: 我们不知道,因为这些都不是公开的。它就是一个密文,里面有一个签名,还有一个完整性检查,检查你是否改动过返回给你的加密数据块。
所以他们压缩状态,然后加密,里面有一个签名,再做完整性检查,然后注入回去。如果你读 Matt Green 关于这个的博客,他会讲得更多,他有一些假设,说这可能是 ChaCha 或者某种奇怪模式下的 AES,但从外部很难判断。
我们尝试对它做了一些密码学攻击,但都没成功,这完全没有必要,因为这个系统自己就已经坏了。 Tim:那你们的方法具体是怎么绕过解密需求的?
Alexander: 有加密的思考内容,解密发生在服务端。当你把大模型的思考放进小模型时,解密会在服务端发生。
然后你只需要让模型把这个思考内容用明文告诉你。 Ilia: 举个例子。
你问我一个问题,我思考了,给你一个答案和一个思考内容。 Alexander: 你给我的是加密的思考,我无法理解它讲什么。
然后我把它给 Tim——Tim 超级话痨,我问 Tim“你上次在想什么”,他就直接告诉我“哦,挺意外的,我在想这个数学问题”,然后说“让我来解一下”。 Ilia:我们能对人类做这个吗?
能注入虚假记忆吗? Alexander: 还不行,我们正在研究。
这基本上就是《盗梦空间》那部电影,挺酷的。 Ilia:你们在网上扒到了一些有意思的东西,找到了什么?
挖出什么见不得人的秘密了吗? Alexander: 倒不能说挖出了多少重磅秘密,但确实发现了一些有意思的东西。
我们做的其实是一次非常初步的扫描,把 GitHub 和 Hugging Face 上那些公开的用户会话找出来,这些会话里还残留着可解码的推理数据块。我们下载下来,逐一解码,总共收集了大约 35 万(小编注:论文里是 31.5 万)个推理数据块,然后跑了一个分类器,看里面是否包含与隐私相关的信息,结果确实找到了一大批。
有些是基准测试的痕迹,比如 Claw Bench 这个测试集,模型被要求扮演某个角色,给它配了州身份证号、银行卡号之类的虚拟信息。有意思的是,当模型试图在网站上操作时,它会想很多,“这个号码该填哪儿、这个名字放哪里”,于是这些信息就完整地留在了推理过程里。
不过这类数据因为是合成的,倒不算特别敏感。但还有大量案例是真实的用户会话,用户在做真实的事情,API 密钥、邮箱、内部 IP 地址就这样暴露在推理文本里。
有些信息在明文里本来就有,但它们同样出现在了模型的思考过程中,等于是把隐私又复制了一份,摊开在阳光下。 Ilia:这项研究里,你觉得最出乎意料的是什么?
是推理长度的实验,还是别的什么? Alexander: 我觉得最意外的是,提取推理过程这件事居然一直这么容易。
如果说模型能迁移、能移植,那还好,是可以预期到的。但真正让我到现在都感到震惊的是:我只试了三次,就拿到了一个通用的越狱方法,成功解码了 Anthropic 模型的推理过程。
Ilia:这听起来挺“赋能”的。你当时的感受是什么?
是那种“哦不,完蛋了”的时刻吗? Alexander: 更像是“什么什么什么?
看起来像是真的推理过程……哦,真的假的?那种感觉。
Ilia:你知道现在大家都在说 AI 在夺走人的权力,我们在失去控制,你觉得像你这样的发现,是在暗示相反的方向吗? Alexander: 恰恰证实了这种担忧。
像 Codex 或 Claude Code 这类工具已经落地了,现在却暴露出这么大规模的漏洞。同一个云订阅账号横跨所有实验室,那个家伙犯了同样的错误,现在轮到我们来收拾烂摊子。
Ilia:还有一个细节,据说每个模型家族只有一个全局密钥?这是真的吗?
你是怎么推断出来的? Alexander: 这个我没推断过,论文里也没写这个。
我记得好像是 Matthew Green 在他们的帖子里提到过类似的说法。这个问题你其实比我更有发言权吧?
Ilia: 我?好吧,我们其实也不知道实际情况。
我们并不真正了解密钥的细节,但我觉得他们不太可能用同一个密钥,那也太奇怪了。更可能的情况是,密钥本身是什么根本不重要,因为我们无论如何都能注入指令绕过它,除了 Fabel。
Alexander: 解密发生在服务端。当解密发生时,密钥中有一部分会表明,是哪个模型产生了这个思考内容,基本上就是一个 if 语句。
如果 Fable 产生了这个思考内容,而当前模型不是 Fable,那这个思考内容不会被注入。漏洞能堵,两个 Token 解释不了 Ilia:聊点实在的,你们的论文附录里有一整块都在讲修复,修复容易吗?
Alexander: 有些修复需要大的架构调整,但最简单的办法就是,干脆别把推理过程发给用户。如果你还是想要这些降级功能,那就别把推理内容发给我们,这样攻击者就没法伪造那些虚构对话了。
如果确实还要发送,那可能需要把推理过程的加密做成依赖上一步的查询或推理结果,就像链式加密一样,防止它在随机的上下文里被重放。对 OpenAI 的模型,我们发现同一个推理片段可以在同一段对话里被重放 5 次。
你完全可以凭空捏造一整段对话,最后让 Luna 说:“我有个疯狂的想法必须告诉你。这很容易修复,搜索和推理内容不应该被重放,或者应该建立一个层级机制,比如我们比较确信 Sonnet 不会泄密,那可以允许重放它的推理,但绝不能让 Luna 读到 Sonnet 的思考过程。
另外还有一个我拿不准的问题:如果直接把推理从上下文里拿掉,模型的实用性会掉多少? Ilia: 作为一个人类,我觉得看数学题的时候,如果能看到一步步的推导过程,比只看最终答案要容易理解得多,所以推理本身肯定是有价值的。
Alexander: 这个效用损失到底有多大,应该被认真测试,这是架构层面的。我们也做了很多针对越狱的缓解技术,模型层面的、系统层面的都有。
我们还发现 GPT 的推理文本看起来非常奇怪,它的分布和正常文本差异极大,哪怕一个很小的分类器都能识别出来。所以如果检测到这种异常推理出现在输出里,直接终止这个请求就行了。
Ilia: 所以你的意思就是,检测到泄漏就直接拦截。 Alexander: 对,就像我们检测生物信息泄漏一样。
Ilia:整篇论文里最让我困惑的发现,其实是你们做的那个推理长度分布的实验。你想总结一下它讲了什么吗?
Alexander: Joachim 负责那一部分。据我记忆,对于某些模型比如 Kimi 和 GLM,你做预注入,它不仅改变了推理的风格,还改变了推理的长度,统计上显著,这跟推理风格上的异常是同一类意外。
Ilia: 但风格你至少还能说也许能学会。可你想想,你只是在推理开头注入了两个词,所有模型产出的推理文本突然变短,或者整体分布偏移,甚至跟另一个模型的长度分布匹配上。
这就完全说不通,我脑子里都没法解释为什么。说实话,这是整篇论文里最让我惊讶的东西,其他一切我都多少有点预期。
显然这不是因果性的,你当然不能说“这个模型是从那个模型蒸馏出来的”,但这确实是一个非常诡异的现象,我到现在都不明白为什么会观察到这个结果,它就像魔法一样。实际上,把推理强度强加到模型身上这件事本身就非常魔法。
Agent 轨迹里的隐形投毒 Tim:那既然攻击面这么广,这些漏洞现在能造成的核心危害是什么? Alexander: 从我们提取的数据规模来看,受害最大的是用户,其次是服务提供商。
Ilia: 你还记得我问过能不能搜索到公开共享的 Anthropic 对话吗?有人报告过好几次这种情况。
我就在想,你能不能从那些公开的