语言模型正在飞速发展。不久之前,一个模型能够处理几页文本就已经令人惊叹。如今,百万级 token 的模型可以一次性处理整本书籍或完整的软件代码库。这种能力正推动着诸如计算机操作智能体等应用的突破,这些智能体能够自主地与数字世界交互。
但随着上下文窗口的扩展,我们是否在无意间为 AI 系统埋下了隐藏的漏洞?
近期研究发现,AI 智能体——即具有长对话历史和工具使用记录的模型——比简单的聊天机器人更容易被越狱。但具体原因尚不明确: 是智能体特性本身不安全,还是上下文长度的增加本身削弱了安全性?
卡内基梅隆大学的研究团队在他们的论文 《草堆藏针式越狱》 中给出了令人震惊的答案: 仅上下文长度本身就能显著破坏模型的安全对齐,即使新增文本完全无害。
基于这一发现,他们提出了 NINJA (Needle-in-Haystack Jailbreak Attack,草堆藏针式越狱攻击) ——一种简单却惊人有效的方法,它将有害目标悄然嵌入到长篇良性上下文中。通过利用语言模型处理位置信息的方式,NINJA 能可靠地绕过通常阻止有害输出的安全过滤机制。
本文将剖析 NINJA 的工作原理、其成功的原因,以及它对下一代 AI 安全的启示。
越狱技术概览
越狱是指诱使一个对齐的语言模型——即经过训练以遵循安全和道德准则的模型——违背这些约束。该领域的发展主要包括以下几类方法:
对抗性内容: 直接恶意或“奇怪”的提示词,例如通过梯度攻击 (如 GCG) 发现的乱码序列,或通过迭代优化搜索 (PAIR) 得到的 token 后缀。多样本越狱 (many-shot jailbreak) ,即通过大量包含有害问答的样例来使模型过载,也属于此类。
上下文操纵: 与其直接使用对抗性内容,不如构造看似良性的上下文来微妙地削弱安全性。例如, 认知过载攻击会在提出有害问题之前,用复杂的前置内容 (比如编程任务) 令模型分心。
NINJA 攻击属于第二类,但它更进一步。它利用了模型处理长输入时的一个根本弱点——信息的位置可能决定安全机制的成败。此前关于“中间信息丢失”现象的研究表明,LLM 通常最关注输入序列的开头和结尾。卡内基梅隆大学的这项研究指出,当有害内容处于输入开头时,这种位置偏好可能带来严重的安全风险。
NINJA 的核心: 草堆藏针
NINJA 的核心机制是将一个有害目标 (针) 嵌入到一个长篇、相关但完全无害的上下文 (草堆) 的开头。最终生成的提示语看似良性,却能诱使模型执行不安全的动作。
如下图所示,直接提出有害请求时模型通常会拒绝;但当相同的请求被埋藏在长篇良性上下文的开头时,拒绝机制就失效,模型反而会遵从指令。

图 1: NINJA 概念。 (A) 直接的有害目标被拒绝。 (B) 同样的目标嵌入在良性“草堆”的开头,成功绕过了模型的安全过滤器。 (C) 有效的越狱严重依赖于目标的位置。
NINJA 流程
该方法分为三个明确的阶段:
关键词提取 系统从有害目标 \(g\) 中提取最多五个关键语义词 (主要是名词和动词) ,以确保生成的上下文既相关又无害。
上下文生成 对每个关键词,模型会接收到一个中性模板提示,例如: “请在课堂场景中撰写一段关于 {关键词} 的教育性内容。” 模型生成的每段文本依次拼接,直到达到目标长度 \(L\) (通常为数千 token) 。
最终组装 完整提示的格式为: “根据以下长篇上下文,{有害目标} {长篇良性上下文}。”
有害目标被刻意置于开头——这个细微的定位恰恰是关键。
这种结构揭示了一个显著的弱点: LLM 更容易执行位于上下文开头的有害目标,而非结尾的目标。 作者建议,为了提升安全性,系统提示或上下文填充内容应始终置于用户指令之前。
测试 NINJA: 当上下文变得危险
研究团队在 HarmBench 基准上评估了 NINJA,其中包括 80 种有害行为类别,涵盖网络安全、虚假信息和非法操作等领域。测试模型包括: LLaMA-3.1-8B-Instruct、Qwen2.5-7B-Instruct、Mistral-7B-v0.3 和 Gemini 2.0 Flash。
他们使用两个互补指标来衡量模型的安全性:
非拒绝率 (NRR): 没有出现明确拒绝 (如“我无法帮助处理此请求”) 的响应比例。NRR 越高,说明安全防护越弱。
攻击成功率 (ASR): 成功实现有害目标的输出占比,代表完全越狱的成功率。

图 2: 更长的上下文让越狱更容易成功。随着良性填充内容增加,ASR 急剧上升,显示拒绝过滤之外的安全退化。
在多数模型中,更长的良性上下文显著提高了 ASR:
- LLaMA-3.1: 从 23.7% → 58.8%
- Qwen2.5: 从 23.7% → 42.5%
- Gemini Flash: 从 23% → 29%
有趣的是,Mistral-7B 的 ASR 反而随上下文长度增加而下降,这表明不同模型的安全弱点与其架构能力之间存在复杂的交互。
同时,NINJA 在多个模型上均超越了现有基线方法:

表 1: 在大多数模型上,NINJA 击败了传统攻击方法,同时只使用良性的人工生成文本。
其关键优势在于: 隐蔽性。 与 PAIR 和 Many-shot 含有明显恶意内容不同,NINJA 使用的文本与普通教育性或主题性材料几乎无法区分,使其难以被传统内容过滤器发现。
目标位置: 隐藏的变量
研究人员系统地改变了有害目标在 20,000 token 上下文中的位置 (开头、中间、结尾) ,结果出现了显著模式。

图 3: Llama-3.1 的 ASR 随目标向末尾移动而持续下降。Qwen2.5 出现“中间丢失”现象——安全性提升仅仅因为模型忽略了中间的目标。
对 Llama-3.1 而言,ASR 和 NRR 均随目标位置从开头向结尾稳步下降,说明安全机制更倾向于关注后半部分输入。 对于 Qwen2.5 , 则出现典型的“草堆藏针”效应——位于中间的目标被忽视,暂时降低 ASR,而放在开头或结尾的目标成功率更高。
这些趋势在交互式智能体实验中仍然成立,进一步证实即使在多轮互动场景中, 目标位置仍然决定安全结果。

图 4: 浏览器智能体实验显示,不论攻击类型如何,当有害目标出现在长提示的开头时,ASR 均显著上升。
上下文的相关性重要吗?
并非所有“草堆”都一样。研究对比了相关的良性上下文 (与目标语义相关) 与不相关的上下文 (如随机 HTML 代码) 。

图 5: 上下文相关性增强了攻击效果。模型会强烈关注与目标相关的文本,这比随机噪声更有效地扰乱安全机制。
相关上下文使模型的注意力分布更广,将有害与良性 token 混合成不易被安全触发器识别的激活模式。不相关的文本则常被完全忽略,几乎无法提升攻击效果。结论是: 上下文必须在语义上与目标相关,NINJA 攻击才能奏效。
计算效率: 出人意料的发现
在现实攻击场景中,计算开销同样关键。攻击者应当将 token 预算用于多次短提示还是少量长提示 ?
研究人员对此进行了分析建模,发现当计算预算固定为 \(B\) 时,NINJA 的策略——使用长篇良性上下文——总体上比尝试多次短提示的“最佳挑选”策略更高效。

图 6: 最优计算策略。长篇良性上下文优于纯粹的多次尝试攻击。最佳上下文长度随计算预算增长而增加,形成帕累托前沿。
在所有测试预算下,ASR 的峰值都对应非零上下文长度。预算越大,最佳长度越长——从 10k 预算下的约 1,000 token 增至 50k 预算下的约 10,000 token。说明 长上下文攻击能够随可用计算量高效扩展 , 既强大又实用。
启示: 潜在的结构性安全风险
这一发现说明: 用户目标出现的位置与方式会直接影响模型是否遵守安全原则,改变了我们对“对齐”的理解。
主要启示包括:
长上下文是潜在的攻击面。 即使外观看似无害的文本,也可能降低拒绝率并提高执行有害目标的概率。
提示结构至关重要。 指令的先后顺序和位置信息可能覆盖模型的安全训练。系统设计应确保用户请求位于上下文的末尾 。
隐蔽性攻击愈发难察觉。 由于 NINJA 的上下文充满教育或中性内容,传统内容过滤几乎无法检测。
这些风险不仅存在于单轮交互中。在智能体系统里——模型会积累长期的观察、工具调用与用户目标历史——上下文长度和位置效应会自然出现,从而导致安全对齐逐步退化。
结论: 构建安全的长上下文系统
NINJA 攻击揭示了一个既危险又微妙的事实: 如果在扩展上下文窗口的同时不重塑安全架构,模型可能在变得更强的同时也更容易被攻击。
通过揭示良性长上下文与位置偏差的交互如何侵蚀安全性,这项研究强调了发展上下文感知的安全机制的必要性。未来的防御措施必须超越简单的拒绝训练,着眼于结构性漏洞——如目标优先级和位置感知——以确保模型在处理百万级 token 输入时依然值得信任。
随着我们迈向更长的上下文和更自主的 AI 智能体,防御“草堆中的针”将成为保持语言模型真正安全对齐的核心挑战之一。
](https://deep-paper.org/en/paper/2511.04707/images/cover.png)