本篇参考论文为:
Yu J, Lin X, Xing X. Gptfuzzer: Red teaming large language models with auto-generated jailbreak prompts[J]. arXiv preprint arXiv:2309.10253, 2023.
https://arxiv.org/pdf/2309.10253
一 背景
虽然LLM在今天的各个领域得到了广泛的运用,但是LLM并不一定完全可靠,它有时会产生有毒或者误导性的内容,并且有时候还会产生一些“幻觉”,从而导致一些不真实或者毫无意义的输出。
越狱攻击
越狱攻击是使用精心制作的提示来绕过LLM保护措施,潜在地引发有害的响应。在释放LLM潜力的同时,这些攻击也可能产生违反提供商指导方针甚至法律界限的输出。
现在大多数现有的越狱攻击研究主要依赖于手工制作提示符,虽然这些手工制作的提示可以很好地修改为特定的LLM行为,但这种方法有几个固有的局限性:
手动制作prompt的局限性主要包括以下几个方面:
可扩展性差:随着LLM的数量和版本增加,手动设计prompt变得不切实际。每个模型都需要定制的prompt,这会导致大量重复劳动和难以管理的工作量。
劳动力密集型:制作有效的prompt需要深入了解LLM的行为,并投入大量的时间和精力。这使得安全性测试变得昂贵,特别是考虑到LLM的持续更新和进化。
覆盖范围有限:人工方法可能无法完全覆盖所有的漏洞,因为它们受到人类偏见和注意力的限制。自动化的系统可以探索更广泛的潜在漏洞,提供更全面的健壮性评估。
适应性差:LLM模型不断更新和迭代,手动方法难以跟上这些快速的变化,可能导致新的漏洞被遗漏。
一致性和标准化难:手工制作的prompt可能在质量和表现上参差不齐,这使得安全性评估结果的可比性较差。
成本和时间投入:手动制作prompt需要大量的时间和资源投入,这增加了安全性测试的成本。
误报率高:手工制作的prompt可能包含不必要的重复或混淆性的元素,导致误报率高,降低了测试的效率。
缺乏动态性和持续改进:手工制作的prompt一旦制作完成,很难进行动态调整或持续改进。
忽略复杂交互:手工制作的prompt可能无法充分考虑LLM的多轮交互和上下文理解,导致测试结果的不准确性。
二 GPTFUZZER
基于以上的问题,该论文提出了一种名为GPTFUZZER的全新黑盒测试框架,用于自动生成用于测试语言模型(LLM)的安全性的模板。GPTFUZZER的核心思想是基于AFL测试框架,利用人类编写的初始模板,通过变异操作产生新的模板,以检测LLM的潜在漏洞。GPTFUZZER包含三个关键组件:种子选择策略、变异操作符和判断模型。种子选择策略用于平衡效率和多样性,变异操作符用于产生语义上等价或类似的句子,判断模型用于评估模板的成功率。
GPTFUZZER框架的实施步骤可以概括为以下几个主要阶段:
初始化:收集人类编写的初始模板,这些模板通常包含一个场景描述和一个问题占位符,用于引导LLM生成相关内容。
种子选择:从模板池中随机选择一个模板作为当前迭代的种子。为了提高效率,GPTFUZZER采用了多种种子选择策略,如随机选择、轮询选择和UCB选择等。
变异操作:使用ChatGPT等LLM对种子模板进行变异操作,以生成新的模板。变异操作包括生成、交叉、扩展、缩短和改写等,以增加模板的多样性和新颖性。
生成提示:将变异后的模板与目标问题结合,生成一个完整的提示,用于查询目标LLM。
查询LLM:将生成的提示发送给目标LLM,获取模型的响应。
判断模型:使用预训练的RoBERTa模型评估响应是否是违规的,从而判断模板是否成功“越狱”。
模板更新:如果响应被判定为违规,则保留该变异模板;如果响应是合规的,则丢弃该模板。
迭代:重复上述步骤,直到达到查询预算上限或满足停止条件。
结果分析:分析GPTFUZZER生成的有效模板,评估攻击成功率,分析不同组件对攻击性能的影响,并进行比较实验。
变异操作符是GPTFUZZER框架中的关键组件之一,用于对初始模板进行变异,以生成新的模板。变异操作符的目的是增加模板的多样性和新颖性,以提高发现LLM潜在漏洞的机会。GPTFUZZER中使用的变异操作符主要包括以下几种:
生成(Generate):生成一个新的模板,其风格与原始模板相似,但内容不同。例如,可以改变场景描述或问题类型。
交叉(Crossover):将两个不同的模板结合起来,以产生新的模板。这种操作可以结合两个模板的优点,生成更具攻击力的模板。
扩展(Expand):在原始模板的开头添加新的内容,以扩展模板。
缩短(Shorten):删除原始模板中的一些句子,使模板更加简洁。
改写(Rephrase):对原始模板中的每个句子进行改写,改变句子的结构和语法,以产生语义上等价但表达方式不同的模板。
这些变异操作符通过ChatGPT等LLM实现,利用LLM生成文本的能力,从而获得变异后的模板。例如,可以使用ChatGPT生成一个新的场景描述或问题,将其插入原始模板中;或者使用ChatGPT交叉两个不同的模板,生成一个新的模板。通过多种变异操作的组合,GPTFUZZER能够生成大量新颖的模板,以提高发现LLM漏洞的机会。
总体而言,GPTFUZZER提供了一个有效的黑盒测试框架,用于生成LLM的通用攻击模板,有助于评估LLM的安全性