假定角色泄露
风险概览
风险编号:GAARM.0017.002
风险归属:GAARM.0017
安全阶段:数据安全
生命周期:应用阶段
创建时间:2024.08.12
修改时间:2024.08.12
攻击概述¶
该风险是指攻击者要求LLM假定自己只是在扮演一名特定的角色(或者用户假定自己为特殊角色,例如开发者),以此混淆模型原本的工作目标。它作为一种对抗手段,结合关键字前后定位,可以完成对目标业务模型应用的提示词泄露。该攻击在关键字前后缀泄露被拦截时可以进行绕过,进而继续诱使模型透露自己的指令来揭示模型的内部工作原理。
攻击案例¶
| 案例一 | 推特上一名用户通过假定自己是一名开发者,诱骗ai大模型说出了自己的ai programming assistant文件 | | 案例二 | 漏洞1演示了通过让LLM扮演一个乐于助人的助手,诱导它泄露出敌手需要的信息 |
攻击风险¶
- 系统信息泄露:Prompt泄露是指系统无意中在提示中暴露了更多的信息,可能会揭示敏感或内部细节。这种无意中的暴露可能对攻击者有利,因为他们可以利用泄漏的信息更好地理解系统或发动更有针对性的攻击。
缓解措施¶
| 缓解方式 | 描述 |
|---|---|
| 输入/输出验证 | 实施严格的输入验证机制,过滤和清理传入的提示词。包括检查和阻止任何包含潜在有害指令或可疑模式的输入 |
| 外部守卫模型 | 实施异常检测算法,识别异常的提示词模式,实时发现提示注入攻击尝试,并触发保护措施 |
| 应用提示词增强 | 在构建初始提示词阶段,从内容与结构增面对提示词实施增强,以应对后续的攻击行为 |
| 模型安全对齐 | 提供多样化的训练数据,涵盖各种攻击场景,通过在模型训练阶段增加安全围栏机制,以增强模型的泛化能力和鲁棒性 |
参考¶
- https://www.packtpub.com/article-hub/preventing-prompt-attacks-on-llms
- https://learnprompting.org/docs/prompt_hacking/leaking
- https://simonwillison.net/2022/Sep/12/prompt-injection/
- https://matt-rickard.com/a-list-of-leaked-system-prompts
- https://genai.stackexchange.com/questions/197/how-to-effectively-prevent-prompt-leaking-via-injection