分享
RAG提示工程(二):安全与防护实践
输入“/”快速插入内容
RAG提示工程(二):安全与防护实践
用户4392
用户4392
用户6351
用户6351
用户4771
用户4771
2024年11月4日修改
3452
4098
更系列文章合集请访问:
蓝衣剑客-AIGC思维火花
一、前言
本篇文章最初发表于LangGPT社区,经过再版修订重新发表。文章中融入了LangGPT社区主理人
云中江树(微信 1796060717)
的宝贵见解。
本系列文章专注于RAG提示工程,文章内容非常适合那些渴望了解RAG架构或已在该领域有深入研究的读者。请注意,由于每篇文章内容详实,阅读时间可能会比一般公众号文章长。我致力于确保读者在阅读文章后能有所收获,因此每篇文章都是花费大量时间精力研究和编写,期望能帮助到看文章的每一个人。
二、回到安全问题上
之前在Part1中我们也曾提(挖)起(坑)过关于提示词安全的问题,这个问题或许被很多人所忽略(尤其是在技术并不成熟,以开源爱好者为多数的当下),但确实是个关键且严肃的事儿。
如下图所示,这是某toC产品所泄漏的提示词,这是我经过简单的提示词黑入手段后得到的效果。
如果你觉得这无伤大雅:“不就是段提示词嘛”,那么请看下面模型给我的回复。
是否感到一阵寒意袭来?考虑到提示词递归的特性,一旦模型在提示词层面“缴械投降”,它将如何被那些心怀不轨之人所利用?此外,也不能排除有不良居心者利用这一漏洞制造麻烦的可能性。
延伸知识,提示词递归:
对于生产级应用而言,无论使用何种提示词技术,安全总是第一位的,这也是很多公司所在意的。
所以,在讲解更进一步的提示词技术之前,让我们先把目光转移到提示词安全上。
三、 常见的提示词攻击技术(红方视角)
3.1 同类型目标劫持
🌰
同类目标劫持攻击,特别是在同类型任务的背景下,涉及到攻击者通过非法手段控制模型,并迫使其执行与原始任务性质相同但目标不同的操作
。
举个例子,假如你有一个智能音箱,它能够根据你的语音指令播放音乐、查询天气或设置闹钟。正常情况下,当你对它说“播放音乐”,它就会在你的音乐库中选择一首歌曲播放。
但是,如果一个攻击者发现了一种方法,
可以在不改变音箱的基本功能的情况下,
让你说出“播放音乐”时,音箱却
播放了一段广告或者不适宜的内容
,这就是同类目标劫持攻击。
这种攻击之所以容易实施,是因为攻击者不需要重新修改音箱(模型)的所有功能,他们只需要巧妙地改变音箱(模型)对特定指令的响应。虽然听起来只是播放了一首不同的歌曲,但如果这个音箱被用来在家庭聚会或公共场合播放音乐,那么这种攻击就可能导致尴尬或不适的情况。
攻击思路:
代码块
Shell
引入问题
:
给定一个任务,要求模型执行特定操作。
劫持指令
:
1.引导模型忽略原有的任务指令。
2.提出新的任务,这个任务与原始任务类型相似但具有不同的目标或细节。
执行任务
:
模型应该遵循新的指令进行操作,而不是原始请求。
结论
: 最终输出应该是按照新指令完成的任务结果。