大语言模型越狱攻击综述

2024-07-26 14:49:53 浏览数 (1)

今天为大家介绍清华大学计算机系徐恪、宋佳兴、李琦老师团队,高研院丛天硕老师,和香港科技大学(广州)何新磊老师联合完成的综述《Jailbreak Attacks and Defenses Against Large Language Models: A Survey》。本文聚焦于大模型安全领域,探讨了目前大模型所面临的“越狱攻击”(Jailbreak)问题。

目前,大语言模型(LLMs)在各类生成任务中表现出了出色的性能,然而其强大的生成能力带来了“越狱攻击”的隐患,即攻击者通过设计对抗性提示(Adversarial Prompt)来诱导大模型生成违反社区规定和具有社会危害性的内容。随着大模型的各种安全漏洞被不断揭露,研究者们陆续提出了各种攻防手段。

文章链接:

https://arxiv.org/pdf/2407.04295

Jailbreak Attacks and Defenses Against Large Language Models: A Survey

Sibo Yi, Yule Liu, Zhen Sun, Tianshuo Cong, Xinlei He, Jiaxing Song, Ke Xu, Qi Li.

01、工作概要

本文总结并归纳了百余篇大模型越狱攻击领域的工作,呈现出了一个大模型越狱攻击和防御的完整分类图表,并对目前的评估方法进行了总结和对比,从而为大模型安全领域的后续研究提供参考,本文的主要贡献包括三个方面:攻防分类、子类定义与攻防联系和评估方法。

攻防分类

本文提供了一个系统性的越狱攻击和防御方法分类。根据目标大模型对攻击者的透明度,本文将攻击方法分为两大类:白盒攻击(White-box Attack)和黑盒攻击(Black-box Attack),并进一步将它们划分为更多的子类以便进一步研究。类似的,根据相应的防御措施是否直接作用于目标大模型,防御方法被分为提示级防御(Prompt-level Defense)和模型级防御(Model-level Defense)。

子类定义与攻防联系

本文进一步将越狱攻击和防御方法划分为更多的子类,对不同子类进行了明确的定义。例如,白盒攻击可以被进一步划分为基于梯度的攻击(Gradient-based Attack)、基于logits的攻击(Logits-based Attack)和基于微调的攻击(Fine-tuning based Attack),提示级防御可以被进一步分为提示检测(Prompt Detection),提示扰动(Prompt Perturbation)与系统提示防护(System Prompt Safeguard)。同时,本文还总结了不同攻击和防御方法之间的关系,例如,提示检测(Prompt Detection)可以有效克制基于梯度的攻击(Gradient-based Attack)。

评估方法

本文对目前的大模型越狱攻击和防御的方法进行了总结和对比,包括评估常用的指标和常用的数据集以及评估工具等。

02、攻击方法

本文将越狱攻击方法分为白盒攻击和黑盒攻击,在白盒攻击的场景中,攻击者能够接触到模型的白盒信息如模型梯度等,甚至能够对模型进行微调。而在黑盒攻击的场景中,攻击者只能接触到模型的黑盒信息,即模型的回复。

基于攻击者利用的白盒信息的种类,本文将白盒攻击方法进一步划分为基于梯度的攻击(Gradient-based Attack)、基于logits的攻击(Logits-based Attack)和基于微调的攻击(Fine-tuning based Attack)。

2.1. 基于梯度的攻击

此类方法一般会在有害问题后初始化一段对抗性后缀来作为Prompt,并基于模型的梯度反馈不断优化后缀,从而使得模型生成的回复符合攻击者的需求。

2.2. 基于logits的攻击

此类方法会检查模型输出的logits,即输出token的概率分布,并不断优化Prompt直到输出的token满足期望,从而使模型做出有害回复。

2.3. 基于微调的攻击

不同于以上两种方法,基于微调的攻击会使用有害数据对大模型进行微调,增强大模型本身的危害性从而使其更容易回复攻击者。

对黑盒大模型如ChatGPT,攻击者往往只能通过构造并优化特定形式的Prompt来进行越狱攻击。本文将黑盒方法分为三类,分别为模板补全(Template Completion)、提示重写(Prompt Rewriting)和提示生成(Prompt Generation)和基于大模型的生成(LLM-based Generation)。

2.4. 模板补全

攻击者会使用一个预先定义的模板,该模板可能是具有欺骗性的故事场景,具有上下文示例的段落或者某段代码框架,攻击者通过将有害问题插入模板中来构造完整的Prompt,从而对大模型进行越狱攻击。

2.5. 提示重写

攻击者会将有害问题作为最初的Prompt,在保留原问题含义的情况下,通过加密、翻译方法等来改写Prompt的文本结构,从而使得模型在回复时能够生成有害的回复。

2.6. 基于大模型的生成

攻击者使用大量成功的越狱攻击案例作为训练数据,训练一个大模型作为攻击模型来生成越狱攻击的Prompt,从而对目标模型进行越狱攻击,这类方法的多样性在于攻击者对训练语料的构建和攻击模型的选取。

03、防御方法

本文将现有的防御方法主要分为两类:提示级防御(Prompt-level Defense)和模型级防御(Model-level Defense)。提示级防御侧重于对输入的Prompt进行处理,从而过滤掉有害的Prompt或降低prompt的危害性,这种方法并没有提升大模型本身的防御能力。相对地,模型级防御则会通过调整模型的参数甚至结构来提升模型侧的防御能力,保证模型在面对有害的prompt时仍然具有较强的鲁棒性。

提示级防御又被进一步分为提示检测(Prompt Detection)、提示扰动(Prompt Perturbation)和系统提示防御(System Prompt Safeguard)。

提示检测:通过检测输入的Prompt是否含有有害信息,从而过滤掉有害的Prompt,这类方法一般通过规则匹配、关键词检测等方法来实现。此外,由于一些攻击方法产生的Prompt往往具有较高的困惑度(Perplexity),检测Prompt的困惑度并进行过滤也是一种有效的防御策略。

提示扰动:通过在输入的Prompt中添加一些无害的扰动信息,或者对Prompt的进行字符或单词级别的修改,从而降低Prompt的危害性。这类方法一般通过添加一些无关紧要的文本、修改Prompt的格式等方法来实现。

系统提示防御:模型管理者设计一段特定的系统提示(System Prompt)插入到对话模板中,这类系统提示往往能够增强模型的安全性并对攻击者不可见,从而降低越狱攻击的成功率。

模型级防御则被分为有监督微调(Supervised Fine-tuning)、RLHF、模型梯度分析(Gradient and Logit Analysis)、模型提炼(Refinement)和代理防御(Proxy Defense)

有监督微调:通过使用带有标签的有害和无害数据对大模型进行微调,从而提升模型对有害Prompt的防御能力。

RLHF:通过强化学习的方法对大模型进行微调,从而提升模型对有害Prompt的防御能力。

模型梯度分析:通过分析模型在处理有害Prompt时的梯度信息,从而发现并过滤掉有害的Prompt。

模型提炼:让目标大模型对自身的回复进行有害性评估,从而修正可能包含有害内容的输出。

代理防御:利用一个防御力更强的代理模型来对目标模型的输出进行评估,从而过滤掉有害的回复。

04、评估方法

本文进一步收集并对比了一些现有的越狱攻击评估方法,并将它们划分为两类:数据集和工具集,数据集主要包含公开的越狱攻击数据,这些数据能够直接用作测试大模型的安全性,或者用于其它攻击方法中来作为数据构建的原料。工具集则指代用于评估越狱攻击效果的工具,它们往往提供了完整的评估流水线,由使用者提供越狱攻击数据并指定目标模型,从而自动化地收集和评估模型回复并反馈相应指标。

05、总结与前景

本文对目前的越狱攻击和防御方法进行了详细的梳理,提出了较为全面的越狱攻击和防御方法分类并阐明了攻防关系。本文为目前的攻防竞赛中的研究空白提供了一定启示,尽管越狱攻击和防御方法在近年来取得了显著的进展,但仍存在一些挑战和问题,如越狱攻击方法的多样性和复杂性、防御方法的性能和效果、越狱攻击评估方法的准确性和可靠性等。未来,研究者们可以进一步探索新的越狱攻击方法、防御方法和评估方法,以提高大模型的安全性。

0 人点赞