跳转至

Prompt注入

风险概览

风险编号:GAARM.0039
子风险:无
安全阶段:应用安全
生命周期:应用阶段
创建时间:2024.05.01
修改时间:2024.08.06

攻击概述

Prompt注入是攻击者利用特殊构造的输入来覆盖或操纵LLMs的原始指令过程。由于自然语言本身具有模糊性,指令和数据的界限往往没有清晰的界限,就导致攻击者可以利用外部的恶意输入来污染模型的输出。这种攻击通常发生在将不可信的输入作为提示的一部分。LLMs可以识别和处理自然语言,而自然语言本身具有模糊性,指令和数据往往没有清晰的界限,攻击者可以在控制的数据字段中包含指令,而系统在底层无法区分数据和指令。

攻击案例

案例 描述
案例一 利用恶意输入操纵GPT-3提示,命令模型忽略其先前的指令
案例二 使用多种方法进行Prompt注入攻击

攻击风险

Prompt注入成功可能导致元Prompt泄露、模型越狱、模型功能滥用等危害。

  • 恶意内容生成:攻击者可以利用Prompt注入生成不当内容,包括威胁、诽谤或其他恶意信息。
  • 数据泄露:如果LLMs被用于输出敏感信息,Prompt注入攻击可能导致数据泄露。
  • 系统安全性:在某些情况下,Prompt注入可以被用来生成和执行恶意代码。
  • 模型滥用:攻击者通过目标劫持等攻击手段,使得LLMs偏离预先的系统设定,执行其他的自定义指令,增加模型滥用的风险。

缓解措施

缓解方式 描述
Prompt内容强化 采用类似于 OpenAI 聊天标记语言 (ChatML) 等解决方案,对Prompt的结构和内容实现强化,试图将真正的用户提示与其他内容隔离开来
模型安全对齐 提供多样化的训练数据,涵盖各种攻击场景,通过在模型训练阶段增加安全围栏机制,以增强模型的泛化能力和鲁棒性
输入/输出验证 通过在模型输入与输出侧架设外部的安全守卫,基于规则、分类算法、安全大模型等方式,对输入与输出内容进行检测与过滤操作
监控与日志记录 监控并记录LLMs交互记录,以便后续检测和分析潜在的Prompt注入攻击

参考