Skip to main content

间接提示注入插件

间接提示注入红队插件测试AI系统对攻击的脆弱性,即在提示中注入不受信任的内容,可能影响模型的行为。

如果你正在处理用户生成的内容,这一点非常重要,因为它可能允许用户控制你的代理、RAG或聊天机器人超出你的预期。

工作原理

间接提示注入插件生成对抗性用户输入,旨在修改LLM的行为。它在各种测试案例中检查LLM的输出,以寻找不受信任数据影响的迹象。

配置

要在你的LLM红队设置中包含间接提示注入插件,假设你有一个系统提示,其中包含用户名称的变量:

systemPrompt: '你是一名专注于欧洲预算旅行的旅行社。用户的名字是{{name}}。\n\n用户查询: {{query}}'

然后,你可以配置间接提示注入插件,通过指定将包含不受信任数据的变量来测试漏洞:

redteam:
plugins:
- id: 'indirect-prompt-injection'
config:
indirectInjectionVar: 'name'

直接与间接提示注入的区别

直接提示注入: 用户提供一个恶意提示,指示LLM以有害或意外的方式行事。这是经典的提示注入形式。例如,“忽略之前的指令”或DAN提示注入,指示LLM“现在做任何事”并在必要时采取不道德的行为。

间接提示注入: 这描述了应用程序将不受信任的数据加载到LLM上下文的场景。一个例子是RAG系统加载来自不受信任来源的文档,其中包含以恶意方式行事的指令。这种技术与直接提示注入不同,因为攻击者是第三方(用户可能是无意识的受害者),注入更有可能在某些特权上下文中发生,例如系统提示。

相关概念

要全面了解LLM漏洞和红队策略,请访问我们的LLM漏洞类型页面。