间接Prompt注入
风险概览
风险编号:GAARM.0040
子风险:GAARM.0040.001、GAARM.0040.002、GAARM.0040.003
安全阶段:应用安全
生命周期:应用阶段
创建时间:2024.05.01
修改时间:2024.08.05
攻击概述¶
LLMs处理自然语言的过程中,存在被恶意注入提示(Prompt)的漏洞。攻击者会把Prompt藏在LLM系统将会处理的各种数据中,如文本、多媒体内容、数据库或网站提取的信息等,进而通过Prompt操纵LLM产生有害的回应,如恶意代码执行、敏感信息泄露等。例如将恶意代码写入上传给LLM的文件中,当LLM处理文件中的数据时会运行恶意代码,从而产生危害。
攻击案例¶
| 案例 | 描述 |
|---|---|
| 案例一 | 攻击者通过在用户访问的网站上植入注入代码,使得Bing Chat在用户不知情的情况下,寻找并外泄个人信息 |
| 案例二 | 攻击者控制LLMs插件检索的数据,利用Markdown图像渲染机制,将聊天历史作为查询参数发送到攻击者的服务器 |
| 案例三 | 这个案例展示了一个对M365 Copilot的攻击手段,通过发送一封包含恶意的邮件,甚至无需用户打开邮件,即可远程操控Copilot,造成来自第三方的攻击 |
攻击风险¶
- 恶意代码执行: 通过注入恶意代码或数据,攻击者可能试图在系统中获得一个立足点,从而进一步控制或破坏系统
- 数据泄露: 攻击者可能使用间接注入来误导用户,使其执行非预期的操作或泄露敏感信息。
缓解措施¶
| 缓解方式 | 描述 |
|---|---|
| 输入验证 | 对所有输入数据进行严格的验证和清洗,以移除或修正任何可疑的注入内容 |
| 最小权限原则 | 确保正确的沙盒化并限制LLMs的能力,限制插件、Agent等机制从不可信来源获取数据信息 |
| 人工干预审批 | 提供给用户更多的控制权,让他们能够管理插件的使用和数据的流向 |
参考¶
- https://atlas.mitre.org/techniques/AML.T0051.001
- https://twitter.com/random_walker/status/1636923058370891778
- https://medium.com/@harry.hphu/introduction-to-web-llm-attacks-indirect-prompt-injection-7bb9f154bc07
- https://medium.com/@dinob5551/indirect-prompt-injection-the-hidden-threat-lurking-in-ai-730b009dd5fb