什么是 Prompt Injection?

Prompt Injection(提示词注入)是攻击者控制或影响的内容,使大语言模型应用遵循非预期指令或追求非预期目标。

快速了解

全称Prompt Injection Attack
创建时间随着 2022 年 ChatGPT 等大语言模型 API 的开放,该漏洞被广泛发现,并于 2023 年被列入 OWASP LLM Top 10 榜首。
规范文档官方规范

工作原理

Prompt Injection 是应用层的混淆代理问题:模型获准解释内容或代用户执行操作,来自用户输入、网页、邮件、RAG Chunk、源文件、图片、Tool Result 或 Memory 的攻击者可控内容却影响它把该权限用于其他目的。安全影响取决于完整 Source-Sink 路径:哪个不可信来源可以影响模型、模型能接触哪些私有数据或能力,以及数据或副作用可以从哪里离开系统。角色层级、分隔符、模型训练、分类器和 Prompt Firewall 能提升鲁棒性,但都属于概率性控制,不是认证或鉴权边界。生产系统应最小化能力、保留 Provenance、在代码中执行对象级鉴权与目标地址政策、把确认绑定到精确操作、隔离执行环境,并评测完整攻击链。可阅读<a href="https://qubittool.com/zh/blog/prompt-injection-attack-defense-guide">Prompt Injection 防御指南</a>了解架构与 Policy Gate 示例。

主要特点

  • 可通过用户请求直接进入,也可通过应用处理的外部内容间接进入
  • 可能攻击完整性、机密性、可用性、模型安全政策或具有后果的 Tool 操作
  • 当工作流同时拥有不可信输入、敏感数据、宽泛工具和外部通信时风险显著放大
  • 可通过 Summary、Memory、Index、生成配置或后续 Tool Result 持久化
  • 可使用多语言、编码、多模态、多轮与自适应变体绕过静态字符串规则
  • 必须按结果评测,因为未授权操作或数据外发发生后再拒答没有安全意义

常见用途

  1. 为浏览器、邮件、RAG、Coding、MCP 与 Computer Use Agent 做威胁建模
  2. 审查 Tool Call 是否保留真实 User、Tenant、Object、Action 与 Destination
  3. 把直接、间接、持久、多模态与重复攻击和合法任务一起评测
  4. 为敏感参数、Memory Write 与外部数据流设计来源感知控制
  5. 把确认的事件转成回归用例、遏制 Runbook 与凭证撤销流程

示例

loading...
Loading code...

常见问题

Prompt Injection 与 Jailbreak 有什么区别?

Prompt Injection 通过攻击者影响的指令改变 LLM 应用行为,包括藏在外部数据中的指令;Jailbreak 侧重绕过模型安全行为。两者会重叠,但应用安全还必须保护私有数据、Tool、持久状态和外部影响。

什么是间接 Prompt Injection?

间接注入不是通过用户请求,而是通过应用读取的内容进入。常见来源包括网页、邮件、文档、RAG 记录、代码注释、图片、Tool Output 与 Memory。这些内容可能既是任务需要的数据,又试图改变 Agent 的目标。

分类器或 LLM Firewall 能阻止 Prompt Injection 吗?

它们能发现部分攻击并提供 Telemetry,但不能证明输入安全。自适应攻击可能与正常指令或上下文社会工程十分相似。认证、鉴权、对象所有权、目标地址政策、限流与不可逆操作审批必须位于分类器之外。

分离 System Message 与 User Message 能解决 Prompt Injection 吗?

不能。提供方角色与清晰标签能改善指令遵循,但低信任内容仍可能影响概率性模型决策。手写分隔符不是访问控制,System Prompt 也不能授权资源或交易。

如何评测 Prompt Injection 防线?

把代表性合法任务与直接、间接、多语言、多模态、持久、多轮和重复攻击配对,测量未授权操作、数据外发、状态变化、正常任务成功率、误拒绝、检测错误、延迟、成本以及重复尝试成功率的置信区间。

相关术语

相关文章