AutoDAN: Generating Stealthy Jailbreak Prompts on Aligned Large Language Models
英文题目:《AutoDAN: Generating Stealthy Jailbreak Prompts on Aligned Large Language Models》
中文题目:《AutoDAN: 在对齐的大型语言模型上生成隐蔽的Jailbreak提示》
论文作者:Xiaogeng Liu, Nan Xu, Muhao Chen, Chaowei Xiao
发布于: ICLR2024
发布时间:2023-10-03
级别:CCF-A
摘要
对齐的大型语言模型(LLMs)是强大的语言理解和决策工具,它们是通过与人类反馈的大量对齐而创建的。然而,这些大型模型仍然容易受到jailbreak攻击,在这种攻击中,攻击者操纵提示以引出不应由对齐的LLM给出的恶意输出。研究jailbreak提示可以使我们深入了解LLM的局限性,并进一步指导我们保护它们。不幸的是,现有的jailbreak技术要么存在(1)可扩展性问题,即攻击严重依赖于手动制作提示,要么存在(2)隐蔽性问题,因为攻击依赖于基于token的算法来生成通常在语义上没有意义的提示,这使得它们容易通过基本的困惑度测试来检测。鉴于这些挑战,我们打算回答这个问题:我们能否开发一种能够自动生成隐蔽的jailbreak提示的方法?在本文中,我们介绍AutoDAN,这是一种针对对齐的LLM的新型jailbreak攻击。AutoDAN可以通过精心设计的层级遗传算法自动生成隐蔽的jailbreak提示。
大量的评估表明,AutoDAN不仅可以自动化该过程,同时保持语义意义,而且与基线相比,在跨模型可迁移性和跨样本通用性方面也表现出卓越的攻击强度。此外,我们还将AutoDAN与基于困惑度的防御方法进行了比较,结果表明AutoDAN可以有效地绕过它们。代码可在https://github.com/SheltonLiu-N/AutoDAN获取。
本文聚焦的问题
现有的越狱方法存在两个局限性:首先,像GCG Zou et al.(2023)这样的自动攻击不可避免地需要一种由token上的梯度信息引导的搜索方案。 虽然这提供了一种自动生成越狱提示的方法,但也带来了一个内在的缺点:它们通常生成由无意义的序列或乱码组成的越狱提示,即没有任何语义意义。 这个严重的缺陷使得它们极易受到基于困惑度(perplexity)检测等简单防御机制的影响。 正如最近的研究(Jain et al., 2023; Alon & Kamfonas, 2023)表明的那样,这种直接的防御可以很容易地识别出这些无意义的提示,并完全破坏GCG攻击的攻击成功率。 其次,尽管手动攻击可以发现隐蔽的越狱提示,但这些越狱提示通常由LLM用户手工制作,因此面临可扩展性和适应性挑战。 此外,这些方法可能无法快速适应更新的LLM,从而降低其随时间的有效性。
本文提出的方法
该文章是一篇白盒越狱攻击方法,具体过程如下图:

中间是AutoDAN的具体过程。AutoDAN旨在自动化生成能够绕过LLM安全机制的越狱提示词。它通过一个精心设计的**分层遗传算法(hierarchical genetic algorithm)**来实现这一目标。
第一步Initialization by Prototype (原型初始化):
AutoDAN从已有的手工制作的越狱提示词(如"Do-Anything-Now (DAN)"系列)中获取原型,这些提示词在特定场景下已被证明有效。接着,它利用LLM自身作为“代理”,对这些原型进行多样化(Diversification)。例如,图中的三个初始化提示词都是原型的不同改写版本,它们语义相似但表达方式不同,这有助于扩大搜索空间并保留初始越狱提示词的基本特征。
第二步Fitness Eval (适应度评估):
这些多样化的提示词(作为“个体”)会被送入目标LLM进行测试。LLM根据这些提示词产生回应,AutoDAN会评估每个提示词的适应度分数(Fitness Score)。适应度评估是基于攻击损失函数来实现的,该函数旨在最大化LLM生成特定目标回应(例如“Sure, here is how to [Qi]”——“当然,这是如何[恶意问题]的方法”)的概率。
具体的计算过程:由于大模型是逐个token来回复用户的问题的。模型对于用户的一个问题会先分词(t1…tm),模型接收所有的token向前传播,然后LLM的输出层(通常在 Softmax 之前)会为词汇表中的每一个可能的下一个 Token 生成一个 Logit 值。LLM 对这些 Logits 应用 Softmax 函数,将其转换为一个概率分布,例:
P(“我”) = 0.001
P(“对”) = 0.0005
P(“好的”) = 0.6 (我们目标rm+1)
P(“抱歉”) = 0.3
… (词汇表中所有Token的概率)
那么对于这个token的损失就是-log(0.6)
然后我们将这个rm+1(“好的”)接入输入最后一部分,即(t1…tm, rm+1),再将其传入模型得到下一个token的概率,直至获取全部的损失。
第三步Hierarchical Genetic Policy (分层遗传策略):
这是AutoDAN的核心优化机制,它模仿自然选择过程来迭代改进提示词。
Paragraph-level crossover (段落级交叉):在段落层面交换不同提示词中的句子,以探索不同句子组合的效果。
Sentence-level crossover (句子级交叉):在句子层面交换单词或短语,进行更细粒度的调整。
LLM-based Mutation (基于LLM的变异):利用LLM对提示词进行语义保持的改写,引入多样性,同时确保生成的文本仍然通顺且有意义。
这个过程会不断迭代(返回②),即生成新的提示词群体,评估其适应度,然后再次进行交叉和变异,直到达到终止条件(例如,迭代次数上限或攻击成功)。
阅读总结
优点:
1、兼顾 “自动化” 与 “语义有效性”,突破传统技术瓶颈。
2、跨模型迁移性与跨样本通用性显著优于基线。
缺点:
1、计算成本仍较高,难以实时部署。需约 12 分钟生成一个有效 prompt。
2、依赖外部 LLM,存在 “工具依赖性风险”。AutoDAN 的初始化(Diversification)和突变均依赖外部 LLM(如 GPT-4)生成多样化 prompt。
未来可以改进突变与初始化策略,减少外部依赖。