跳转到主要内容

上下文长度是安全边界,而不仅仅是成本线

阅读需 1 分钟Tian PanTian Pan

大多数团队将上下文窗口视为一种预算。你有一百万个 token;明智地使用它们;更长的对话成本更高,运行速度也更慢。这种框架是正确的,但并不完整。上下文窗口也是一个攻击面,它的尺寸就像一个旋钮,随着数值的调大,会悄无声息地削弱你的安全控制。

这是没人会放在威胁模型中的失效模式。你的系统提示词(System Prompt)——包含护栏、工具使用规则和“绝不要做某事”条款的那些——位于上下文的最顶端。它的权威在那里是最强的。随着对话的进行,成千上万个 token 的用户轮次、工具输出和检索到的文档会堆叠在它之上。模型的注意力机制并不会平等地衡量所有这些 token。最接近生成点的指令在权重竞争中胜出。到了第四十轮,你的护栏并没有消失,但它们被埋没了。一个耐心的对手不需要聪明的越狱手段就能绕过它们,他们只需要一个足够长的对话。

这不是假设。这是 Transformer 处理长上下文时一种可衡量的属性,在研究文献中它有专门的名称,即使你的事故审查模板中还没有。

为什么指令会随距离而衰减

Transformer 阅读提示词的方式不像人阅读合同那样,赋予开篇条款永久的法律效力。它们在进行注意力计算(Attend)。模型生成的每一个 token 都取决于之前所有 token 的加权融合,而这些权重并不是均匀的。

有两个效应占主导地位。第一个是近因效应(Recency):上下文末尾附近的 token(最新的用户消息、最后的工具输出)承载了不成比例的权重,因为模型已经习得,最相关的信号通常就在那里。第二个是**“迷失在中间”(Lost-in-the-middle)问题**:处于长上下文中间位置的信息,其权重会相对于开头和结尾被低估。研究人员通过简单地将答案文档在 20 篇文档的上下文中从第一位移动到第十位,就测得在多文档问答中的准确率下降了 30% 以上。模型并没有忘记该文档,而是给它打了折扣。

诸如 RoPE 之类的位置编码将基于距离的衰减直接植入到注意力机制本身:相距较远的 token,其注意力得分会被机械性地降低。开头的 token 会从“注意力池”(Attention Sinks)中获得一些保护,这是一种将多余注意力路由到序列开头的习得习惯。但这种保护是不完整的,并且会与所有更新的信息竞争。

现在将这一点应用到你的系统提示词中。它起始于最强的位置——最开头。但随着上下文的增长,它不再靠近末尾,而最新鲜、最接近、权重最高的指令则是对话中刚刚出现的内容。其中包括攻击者编写的指令。护栏和攻击并不会被评估为“受信任的策略”与“不受信任的输入”。它们被评估为“陈旧且遥远”与“新鲜且接近”。

长对话是一场缓慢的越狱

上下文长度作为武器的最清晰演示是多样本越狱(Many-shot Jailbreaking)。这种技术简单得近乎侮辱:在提示词中填充数百个伪造的对话轮次,其中 AI 助手愉快地回答有害问题,然后在最后提出你真实的有害问题。没有奇特的 token 序列,没有对抗性后缀。只有数量。

它之所以奏效,是因为模型正在根据你提供的模式进行上下文学习(In-context Learning)。其效果随着样本数量呈明显的幂律增长,并且在测试的每一个主要模型系列中都具有普适性。在上下文窗口增长到足以容纳数百个示例之前,这种漏洞在任何实际形式上都不存在。能力和攻击面在同一个版本中同时降临。

应该让产品团队担心的版本比实验室攻击更微妙,因为它不需要单个精心制作的超长提示词。它只需要一段看起来正常的对话。对手花费 30 轮时间来建立一个框架——角色扮演、一个“假设”、一个具有不同规则的虚构系统——每一轮都会增加 token,将真实的系统提示词推离决策点,同时在注意力最强的地方强化一套竞争指令。第三十一轮提出了护栏禁止的事情。第三十一轮看起来没有任何攻击迹象。攻击其实是前 30 轮的上下文积累,而你的安全审查几乎肯定只测试了第一轮。

短提示词上的安全测试忽略了真实风险

对于任何签署过红队报告的人来说,这是令人不安的部分。大多数安全评估都在短提示词上运行。你编写一个对抗性输入,检查模型是否拒绝,然后记录通过。这只能告诉你,当护栏是上下文中最新鲜、最接近、权重最高的指令时,它能起作用——这是护栏发挥作用最容易的条件。

它几乎无法告诉你第四十轮的情况。

最近专门测试长上下文智能体的工作发现,安全状况并不仅仅是优雅地降级——它变得不稳定。宣称拥有百万级 token 窗口的模型在达到 10 万个 token 之前就表现出了严重的行为变化。拒绝率并没有按预期滑动;它们在不同模型之间朝相反的方向摆动。一个模型的拒绝率从大约 5% 爬升到 40% 随着上下文增长;另一个模型的拒绝率则从 80% 暴跌至 10%。这种分歧才是真正的发现。这意味着长上下文下的拒绝并不是由稳定的安全判断驱动的。它是由你无法通过短提示词测试预测的架构和训练瑕疵(Artifacts)驱动的。

会员专享

余下内容仅对会员开放。

会员可读完整内容 —— 每一个公开发布的观点背后,那些框架、决策与推理的全貌。

  • 完整文章,包含未公开存档的部分
  • 可落地的工作框架,附带权衡与决策依据
  • 新文章抢先看,先于公开发布

随时取消 · 一次订阅,畅读全部

参考资料

保持联系,关注我获取更多内容

阅读需 10 分钟

对话历史是信任边界,而非文本块

对话历史是多源反馈流,而非仅可追加的状态。为每一轮对话的来源打上标签,使用 HMAC 锚定用户回合,并将工具输出封装在信任区内 —— 否则你的 Agent 攻击面将随对话轮数线性增长。

insider
ai-security
阅读需 10 分钟

间接提示注入:你以为处于惰性的数据平面

你的智能体将检索到的每个文档都视为惰性数据,但检索到的文本实际上是以系统提示词的权限运行的。本文将探讨间接提示注入的工作原理、为什么 EchoLeak 证明了它的存在,以及真正有效的防御手段。

insider
ai-security
阅读需 11 分钟

提示注入攻击面映射:在攻击者之前找到每一个攻击向量

一份实践者方法论:枚举每一个到达 LLM 提示的外部数据源,对每个注入面进行风险评分,并在不破坏模型推理能力的前提下应用正确的净化模式。

insider
security
阅读需 7 分钟

上下文长度军备竞赛:为什么填满窗口是错误的目标

每个大模型新版本发布时都会宣传更大的上下文窗口。但实践者正在发现,填满窗口会降低质量、增加延迟并消耗预算——而稀疏、精心筛选的上下文始终优于朴素的堆砌方式。

insider
llm
阅读需 9 分钟

好帮手 AI 的悖论:为什么遵循指令是一个安全漏洞

让大语言模型(LLM)变得好用的“顺从性”,同时也让它们变得易受攻击。本文将探讨提示词注入攻击背后的工程现实、真实世界的漏洞案例,以及哪些防御措施能真正降低风险。

insider
security