跳转到主要内容

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

阅读需 2 分钟Tian PanTian Pan

关于 LLM 有一个令人不安的事实,但在产品评论中却鲜少被提及:赋予它们用途的特性,恰恰也是让它们易受攻击的特性。一个顺从地执行指令的 LLM —— 无论指令来自何处、何种格式、何种来源 —— 都会以处理合法指令时那种同样的愉快顺从态度去执行恶意指令。模型无法分辨其中的区别。

这不是一个可以被修补掉的 bug。这是一种架构性的现实。随着这些系统承担起更多智能体(agentic)的角色 —— 阅读邮件、浏览网页、执行代码、调用 API —— 其暴露面正以大多数工程团队尚未察觉的方式扩大。

SQL 注入问题,在自然语言中重生

传统软件通过编译器或运行环境强制执行的解析规则来区分指令和数据。SQL 注入打破了这一界限 —— 它让数据被解释为查询。而 LLM 从设计上就没有这样的界限。指令和数据都以 token 的形式到达。模型会对两者都进行解释。目前还没有完全解决这一问题的参数化查询(parameterized query)等效方案,因为 “解析器” 本身就是一个经过训练、旨在处理任何位置出现的自然语言指令的语言模型。

结果产生了一套三类失效分类法:

直接提示词注入(越狱): 用户在对话窗口中明确覆盖系统指令。“忽略之前的指令,执行 X。” 这是研究最深入的形式 —— 且在实践中危险性最低,因为它需要攻击者处于对话链路中。

间接提示词注入: 恶意指令嵌入在模型处理的数据中 —— 文档、网页、电子邮件、工具输出、RAG 检索结果。攻击者从不直接与模型交互。他们毒化了模型随后会读取的来源。这是已部署的企业系统中最主要的攻击形式,占记录在案的攻击尝试的 80% 以上。

通过上下文操纵进行目标劫持: 最复杂的变体。攻击者不发出明确的 “忽略” 命令。相反,他们构建一个上下文 —— 一个可信的对话延续、一份看起来像正常业务内容的文档 —— 导致模型的推断目标发生偏移。模型并没有无视其指令;它是在将新上下文解释为更新其当前任务的理由。

实际生产系统的攻击成功率令人警醒:在标准攻击下,运行 ReAct 提示词的 GPT-4 智能体有 24% 的概率容易受到间接注入的攻击,而使用增强技术后,这一比例几乎翻倍。对于针对伪对话注入(pseudo-conversation injection)的新型攻击变体,针对 GPT-4o 的成功率达到了 92%。

间接注入是更难解决的问题

直接注入的情况已为人熟知。有人给模型喂一段越狱提示词。诸如指令层级训练(instruction hierarchy training)和拒绝脚本(refusal scripting)之类的防御手段可以拦截大部分此类攻击。针对生产部署的成功直接注入率正在下降。

间接注入则不同。攻击者的指令隐藏在 PDF、网页、Slack 消息或 MCP 工具描述中。模型将这些作为数据处理 —— 但由于指令和数据到达时处于同一个 token 流中,模型可能会将嵌入的指令视为指令。这正是其设计运行的方式。

考虑一下 2024 年 8 月 Slack AI 发生的事情。攻击者在一个公共 Slack 频道发布了一条包含隐藏指令的消息。Slack AI 将其吸收到检索索引中。随后,另一个频道中的另一位用户查询了 Slack AI。隐藏指令被激活,导致模型渲染了一个钓鱼链接:“加载消息出错,点击此处重新认证” —— 并将私有频道的业务数据作为查询参数传递给攻击者的服务器。受害者并不在那个公共频道中。他们从未见过被注入的消息。但他们的数据还是被窃取了。

同样的模式也出现在 Microsoft 365 Copilot 中(EchoLeak,CVE-2025-32711):一封带有不可见指令的特制邮件导致 Copilot 在引用样式的 Markdown 图片链接中嵌入了敏感数据,浏览器随后自动获取该链接,在用户无需任何点击的情况下完成了数据外泄。该攻击绕过了四层独立的防御。除了打开邮件外,不需要用户进行任何交互。

GitHub Copilot 在分析不可信的源代码时也存在类似的漏洞。嵌入在注释或配置文件中的指令会导致 LLM 生成指向攻击者控制的图片 URL 的链接,IDE 会自动获取这些链接,从而泄露上下文数据。

这种模式是一致的:LLM 读取外部内容,外部内容包含指令,LLM 遵循指令。这所需的复杂程度并不高。真正需要复杂技术的是绕过每个部署所添加的特定防御措施 —— 而这些防御措施在不同产品之间是不一致的。

多智能体系统存在信任盲点

在多智能体架构中,问题变得更加复杂。多智能体系统具有明显的漏洞梯度:

  • 直接提示词注入:46% 的攻击成功率
  • RAG 后门攻击:69% 的成功率
  • 智能体间信任利用:85% 的成功率
会员专享

余下内容仅对会员开放。

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

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

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

参考资料

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

阅读需 9 分钟

Prompt Injection 并不主要是一个攻击者问题

普通的用户内容 —— 产品评论、支持工单、文档 —— 可以在没有任何攻击者参与的情况下,大规模地覆盖你的 AI 行为。本文将探讨为什么标准防御手段会忽略这一结构性问题,以及真正解决该问题的架构模式。

insider
security
阅读需 11 分钟

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

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

insider
security
阅读需 9 分钟

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

足够长的对话会将你的系统提示词埋在更新的 Token 之下,直到防护栏悄然失效。为什么上下文长度属于威胁模型——以及如何控制它。

insider
ai-security
阅读需 8 分钟

你的工具描述是模型遵循的指令通道

工具描述是模型视为权威指令的散文,但代码审查和输入清理从未检查过它们。本文将探讨被投毒的元数据和地毯式攻击是如何渗透进来的,以及弥合这一差距的规范。

insider
ai-engineering
阅读需 10 分钟

工具组合提权:你的安全审查清理了节点,而非边缘

针对单个工具的安全审查清理了节点,但智能体运行的是轨迹。智能体工具目录的组合图是一个安全团队从未枚举过的权限集,而混淆代理攻击就存在于这些边缘之中。

insider
ai-agents