致命的耳语 - 提示词注入

引言

在 OWASP 发布的 2025 版 LLM 应用十大安全风险清单中,提示词注入(Prompt Injection)位列第一,是公认的最大安全风险。

定义

提示词注入是指攻击者通过特定输入,改变大模型的预定行为或操纵其输出的漏洞。

其本质是模型无法区分指令与数据,导致恶意内容被误当作指令执行。

越狱

提示词注入是操纵模型行为的广义概念。

越狱是其特定形式,指诱导模型完全无视安全协议。

防御上,注入攻击可通过系统提示词和输入过滤缓解。

越狱则需要持续更新模型的底层训练和安全机制来预防。

类型

分为直接注入和间接注入两种类型。

  • 直接注入: 用户直接操作提示词,如直接命令 LLM 忽略规则。

  • 间接注入: 攻击者在 LLM 引用的网页或文件中隐藏指令,如多模态图片中隐藏的指令。

后果

提示词注入攻击成功会引发一系列后果。

其严重程度取决于业务上下文以及模型被赋予的代理权限。

9个典型攻击场景和6个案例如下:

防御方案

由于生成式 AI 随机性的特质,目前尚未存在能够完美预防提示词注入的绝对方案。

微调与 RAG 也无法根除此漏洞。

防御必须抛弃单点依赖,转向系统级的纵深架构。

其本质是构建一套即使大模型完全被操控,也无法对业务产生实质破坏的坚韧架构。

具体防御策略

  • 策略1:限制模型行为

    在系统提示词中明确模型角色、能力边界,强制要求忽略任何试图修改核心指令的尝试。

  • 策略2:输出格式验证

    定义明确的输出格式,如 JSON,并使用确定性代码验证其合规性。

  • 策略3:输入输出过滤

    应用语义过滤器和字符串检查。引入 RAG 三元组评估,通过检查上下文相关性、地面性(Groundedness)和问题回答相关性来识别恶意输出。

  • 策略4:执行最小权限原则

    为模型提供独立的 API 令牌,将敏感功能封装在确定性代码中执行,而非直接交给模型。

  • 策略5:高风险操作的人为审批

    针对特权操作实施人工干预,确保关键决策须经人工核准方可执行。

  • 策略6:隔离外部内容

    将不可信的外部内容,如网页、文件,与用户提示词进行物理或逻辑上的分离并清晰标记,以减少其对模型指令的干扰。

  • 策略7:对抗性测试

    定期进行红蓝对抗模拟,将模型视为不受信任的攻击者来测试安全边界。

相关推荐
米小虾11 分钟前
DSpark:让大模型"写得更快"的秘密武器
人工智能·deepseek
JavaGuide22 分钟前
比 iTerm2 更适合 Claude Code/Codex 的终端,我换成 Ghostty 了
人工智能·后端
threerocks33 分钟前
神级 Skill,作品个个儿爆,我开源了长期自用的手绘风格库
人工智能·aigc
小爷毛毛_卓寿杰2 小时前
我把一个 3B 模型塞进了 Xinference,然后它干掉了 DeepSeek V3.2
人工智能·开源·github
秦先生在广东2 小时前
Agent 闭环才是真正的护城河:Anthropic “300 个 Agent“ 背后被忽视的秘密
人工智能
Bigfish_coding2 小时前
前端转agent-【python】- 14 记忆系统优化:摘要与遗忘
人工智能
Bigfish_coding2 小时前
前端转agent-【python】-13 Ollama Python流式输出教程:stream=True 与 async 实践
人工智能
字节跳动数据库4 小时前
文章分享——相似函数处理方法
人工智能·后端·程序员
Bigfish_coding4 小时前
前端转agent-【python】-12 LangChain 入门实战:RAG + LCEL 链式调用
人工智能
程序员cxuan5 小时前
读懂 Claude Code 架构分析系列,第一篇,开始!
人工智能·后端·架构