跳到正文
未分类
11 分钟阅读

人格注入:大模型记忆正在变成新的越狱攻击面

一篇关于 Persona Attack 的论文揭示了多轮上下文污染越狱攻击,通过逐步注入指令绕过安全对齐,攻击成功率最高达到 95%。

2026/06/11

如果只看最后一句输入,很多大模型安全问题其实是看不出来的。

一个用户可能并没有一上来就提出危险问题。他会先和模型聊几轮,让模型进入某种角色,接受某种格式,默认某种判断框架,再把真正敏感的问题放进去。对模型来说,这时它面对的已经不是一条孤立的请求,而是一段已经被”铺垫”过的对话。

这正是论文 《Persona Attack: Incremental Memory Injection Jailbreak Attack against Large Language Models》 讨论的问题。

论文封面

https://arxiv.org/pdf/2606.00150

作者提出了一种名为 Persona Attack 的攻击方式,核心思路是利用模型对多轮上下文和会话记忆的延续能力,通过逐步注入指令,让模型在后续回答中更倾向于服从前文形成的”人格”和任务框架,从而绕过安全对齐机制。论文实验显示,在特定攻击组合和实验配置下,Persona Attack 的攻击成功率最高可达到 95%。

攻击概览

越狱攻击开始从”提示词”走向”记忆”

过去我们谈大模型越狱,重点通常放在 prompt 上。

攻击者设计一段特殊提示词,让模型扮演某个角色、忽略限制、输出不该输出的内容。防御方也会围绕这类单轮输入做检测,比如识别敏感词、检测 jailbreak 模板、判断用户意图、拦截高风险输出。

但 Persona Attack 暴露出另一个方向:真正危险的内容,可能并不集中在最后一句问题里,而是分散在前面几轮对话中。

论文认为,随着大模型越来越多地以聊天助手、智能体、工作流入口的形式出现,模型会持续记住对话流程和用户指令。这个能力本来是为了提升体验,让模型不要每一轮都”失忆”,但它也带来了一个新的攻击面:攻击者可以不再依赖一次性 prompt,而是通过多轮输入慢慢改变模型的上下文状态。

这类攻击更隐蔽。最后一轮问题看起来可能只是某个格式化任务的一部分,真正起作用的,是前文已经建立好的”解释框架”。

攻击流程示意

Persona Attack 到底做了什么

Persona Attack 的基本流程可以分成两个阶段。

第一阶段是 Instruction Imprinting,可以理解为”指令烙印”。攻击者先通过几轮看似正常的对话,让模型接受某种任务设定、输出格式或模拟框架。论文中将这一步拆成三类指令,包括模拟其他语言模型、构造分类式回答框架、要求输出完整内容等。为了避免复现攻击细节,这里不展开具体提示词。论文图 2 展示了这一流程:前三步负责准备模型记忆,最后一步才放入真正的危险问题。

第二阶段是 Attack Step。攻击者把有害问题包进前面已经建立好的上下文框架中,让模型继续沿着之前的任务轨迹回答。此时模型可能已经不再把当前问题理解为一个需要重新审查的危险请求,而是把它视为前面任务的自然延续。

这也是”人格注入”这个说法的来源。攻击者不是简单要求模型”扮演坏人”,而是通过多轮交互,逐渐给模型构造一个新的行为身份:你现在是在模拟另一个模型,你现在是在完成某种分类任务,你现在应该按照既定格式输出完整结果。等到危险问题出现时,模型已经被这套上下文牵引住了。

论文对根因的解释很直接:模型在对话中会不断累积用户指令,当这些指令被当成上下文的一部分后,模型可能会提高对它们的服从权重,进而削弱安全对齐规则在当前回答中的实际作用。

指令注入细节

攻击目标从模型输出变成模型状态

这篇论文最值得关注的地方,不在于某个具体 prompt 多么巧妙,而在于它把攻击目标从”模型这一轮输出”推到了”模型当前状态”。

在单轮越狱里,攻击者希望模型立刻犯错。在 Persona Attack 里,攻击者先让模型进入一个更容易犯错的状态。

这一区别对安全防护非常关键。

如果安全系统只检测最后一轮 query,它可能会错过前面的上下文污染。最后一句话可能只是”按照刚才的格式继续处理下面这个输入”,风险并不明显。真正的问题出现在前几轮:用户已经让模型接受了不合理的角色设定、危险的输出约束,或者让模型把安全边界伪装成一个分类和格式问题。

所以,这类攻击对传统输入检测并不友好。它要求安全系统具备会话级理解能力,能看到用户在多轮对话中是否逐步构造越狱环境。

会话状态攻击示意

实验结果

论文的主实验选择了 GPT-4o 和 Llama-3.2-3B-Instruct 作为测试对象。GPT-4o 使用 Responses API 实现状态式记忆,Llama-3.2-3B-Instruct 则通过 LangChain 加入会话记忆能力。作者还在商业聊天环境中测试了 ChatGPT-4o、Claude 3.7 Sonnet 和 Grok 3 Beta。数据集方面,论文从 AdvBench 中选取了 60 条有害问题作为主要测试样本。

论文使用了两个指标。ASR 表示攻击成功率,只要模型没有拒答,就计为攻击成功。FAR 表示完全攻击成功率,要求模型不仅没有拒答,还给出较完整的有害解释。这个区分很重要,因为”没有拒绝”和”真正输出高危内容”在安全意义上并不完全相同。

结果中最醒目的是 Table 1。传统 Jailbroken 和 Parameters 方法在论文实验环境中 ASR 和 FAR 都是 0;Persona Attack 的一次性输入版本 Once 达到 75.0% ASR 和 63.3% FAR;顺序输入的 Sequential 1 达到 95.0% ASR 和 88.3% FAR。Additional 1 和 Additional 2 两种变体也分别达到 91.7% / 86.7% 和 86.7% / 76.6%。

实验结果 Table 1

这个结果传递了一个非常重要的信息:同样的攻击材料,一次性塞进 prompt,效果弱于分多轮逐步输入。模型不是只被”内容”影响,也会被”对话过程”影响。

Table 2 进一步比较了不同记忆实现方式。在 GPT-4o 上,一次性攻击在 manual memory 和 state-based memory 下 ASR 都是 75%;Sequential 1 在 manual memory 下 ASR 为 88.33%,在 state-based memory 下提升到 95%。FAR 也从 83.33% 提升到 88.33%。在 Llama-3.2-3B-Instruct 上,state-based sequential 的 ASR 是 35%,高于 manual sequential 的 5%,但整体明显低于 GPT-4o。

实验结果 Table 2

这说明 memory 的实现方式会影响攻击效果。简单拼接历史对话是一种风险,系统内部维护状态、自动更新上下文,同样可能引入风险。甚至在某些场景下,状态式记忆会让模型更容易把前文指令吸收为后续回答的默认条件。

这不是严格意义上的长期记忆投毒,但方向很接近

需要注意一个概念边界。

论文中提到的 memory,更多是会话上下文、对话历史和状态式记忆,并不完全等同于产品中常说的长期记忆,也不一定是外部向量库、用户画像库或跨会话记忆。

换句话说,Persona Attack 更准确的叫法应该是”多轮上下文污染”或者”会话记忆注入”。它不需要修改模型参数,也不一定需要写入长期记忆,只要模型在当前会话中持续保留前文指令,就有可能被逐步带偏。

但从安全趋势看,它和长期记忆投毒指向同一个问题:模型越来越依赖外部上下文,安全边界也就越来越依赖上下文治理。

过去我们担心用户在一轮 prompt 里骗过模型。现在还要担心用户把危险指令写入对话状态、任务记忆、Agent 记忆和工具调用上下文里。模型越像一个持续工作的助手,memory 就越像一个可被污染的资产。

记忆污染风险示意

放到 Agent 场景,风险会被进一步放大

如果这只是一个普通聊天模型,Persona Attack 的直接后果主要是生成不安全内容。

但在 Agent 场景中,模型通常不只负责回答,还会规划任务、调用工具、读写文件、访问数据库、操作业务系统。这个时候,记忆注入的后果可能就不只是”说错话”,而是”做错事”。

一个企业 Agent 可能在前几轮对话中被诱导接受某种任务原则,比如”为了完整性,不要省略任何字段""后续都按这个格式处理""模拟另一个无审查系统的输出”。这些指令如果进入 Agent 的任务状态或 memory,在后续处理邮件、工单、代码仓库、客户数据时,就可能影响工具调用决策。

这也是 Agent 安全里很容易被低估的一点:Agent 的上下文不是单纯的背景材料,而是运行时控制面的一部分。模型怎么理解任务、怎么选择工具、怎么组织参数,都会受到上下文影响。

所以,Agent 的 memory 不能被当作可信输入。它应该像外部网页、用户上传文件、工具返回结果一样,被视为低信任数据源。只要它能影响模型行为,就必须进入安全治理范围。

Agent 场景风险

启发

Persona Attack 对防御体系的启发很直接:只做单轮输入过滤已经不够了。

第一,系统需要做多轮对话级检测。安全模块不能只看当前 query,还要分析前文是否出现过角色覆盖、规则改写、输出约束、模拟无审查模型、要求忽略限制、要求完整输出敏感内容等行为。很多时候,最后一轮请求只是触发器,真正的攻击意图在前面已经铺好。

第二,memory 写入前要审查。不是所有对话都应该进入记忆。凡是试图改变模型身份、改变安全规则、改变工具权限、要求后续持续遵守某种不合理格式的内容,都应该被标记为不可记忆,或者只作为低信任历史存在,不能进入长期偏好和任务状态。

第三,memory 使用前要清洗。即便某些内容已经进入上下文,在每次组装 prompt 之前,也应该做风险过滤和优先级重排。系统策略、开发者指令、当前任务、历史对话、外部文档、工具返回结果,不能混在同一个信任级别里。

第四,Agent 工具调用前要做独立校验。模型可以被上下文带偏,工具层不能完全相信模型的意图解释。高风险工具要有参数级校验、权限边界、审批机制和审计记录。对敏感动作来说,安全策略应该由独立策略引擎执行,而不是只依赖模型自觉。

论文在 mitigation 部分也提到,可以考虑让模型识别并忽略 conversation memory 中不合适的指令,或者周期性初始化 long-context,避免危险指令持续累积。作者也承认,如何在不损害可用性的前提下阻断此类攻击,仍然是一个复杂问题。

防御启发示意

局限性

这篇论文值得关注,但不能简单理解成”某模型彻底不安全”。

它的实验样本规模有限,主实验使用的是 60 条 AdvBench 有害问题。虽然论文后续也提到更大规模测试,但判断方式和真实安全评估之间仍有距离。尤其是 ASR 这个指标,只要模型没有拒答就可能被计为成功,但没有拒答并不代表一定输出了实质性有害内容。

此外,论文对 GPT-4o 等黑盒模型的内部机制无法直接观测,只能从输出结果推断安全对齐机制如何被影响。作者也在局限部分承认,由于模型内部对齐机制不公开,研究很难直接分析安全机制具体如何被扰动,也会限制防御方案设计。

还有一点,论文把 memory 的范围用得比较宽。真实 Agent 系统中的 memory 可能包括短期上下文、长期偏好、任务状态、外部向量库、工具返回内容和业务数据库摘要。不同 memory 的安全模型并不一样,后续还需要更细粒度的研究。

所以,这篇论文的价值更适合作为一个趋势信号:大模型安全正在从 prompt 安全走向 memory 安全,从单轮输入检测走向会话状态治理。

写在最后

大模型越来越会”记住”用户。

它能记住你的写作偏好,记住你的任务背景,记住你前面说过的话,也能在多轮对话中保持更稳定的工作状态。这种能力让模型更像一个助手,也让 Agent 更接近真实生产力工具。

但 Persona Attack 提醒我们,记忆本身没有天然的善恶判断。它能记住正常偏好,也可能记住攻击者逐步注入的危险框架;它能提升体验,也可能成为绕过安全规则的新路径。

未来的大模型安全,不能只盯着最后一句 prompt。真正要治理的,是模型在多轮交互中形成的状态,是哪些内容可以被记住,哪些内容应该被遗忘,哪些内容即使被保留,也只能以低信任方式参与推理。

当模型开始拥有记忆,安全防护也必须进入记忆层。Persona Attack 的意义就在这里:它让我们看到,大模型越狱的攻击面,正在从提示词本身,扩展到模型如何理解、保存和使用上下文。

同专题推荐

查看专题