正文
基于 LLM 的生成攻击:利用 LLM 模拟攻击者,生成对抗提示词。
单 LLM 攻击:通过微调或强化学习从人类反馈(RLHF)训练单个 LLM 作为攻击者。如 MASTERKEY [18] 框架通过预训练和微调 LLM 生成对抗提示词;Zeng 等人 [19] 利用社会科学研究中的说服分类法生成可解释的对抗提示词;Shah 等人 [20] 利用 LLM 助手自动生成人物,制作攻击提示词。
多 LLM 协作攻击:多个 LLM 在框架中协作,各自担任不同角色。如PAIR [21] 利用攻击者 LLM 迭代更新越狱提示;Jin 等人[22] 设计的多代理系统中,LLM 分别负责生成、翻译、评估和优化提示。
2.2 白盒攻击
-
基于梯度的攻击:通过操纵模型输入的梯度来诱导模型对有害指令做出合规响应。
典型方法如贪婪坐标梯度(GCG)[23],在原始提示后添加对抗后缀,迭代计算替换令牌以优化后缀,从而实现攻击目的。进一步地,AutoDAN [24] 考虑了后缀的可读性,通过顺序生成对抗后缀并使用单令牌优化算法,提高了攻击成功率,且能绕过困惑度过滤器。
-
基于 logits 的攻击:攻击者利用模型输出的 logits(表示输出令牌的概率分布),迭代优化提示,使模型生成有害内容。
例如,COLD [25] 算法通过统一和自动化的方式生成具有流畅性和隐秘性的越狱提示词。此外,还有方法通过增加模型的固有肯定倾向[26]和操纵解码技术[27]实现对模型的攻击。
-
基于微调的攻击:使用恶意数据对目标模型进行重新训练,使模型变得脆弱,易受到对抗攻击。
研究表明,即使使用少量有害示例进行微调,也能显著降低模型的安全对齐性。如 Qi 等人 [28] 发现微调 LLM 时,良性数据集也可能在不经意间降低模型的安全性。
三、提示词攻击防御策略
提示词攻击对模型安全性构成严重威胁,如何有效防御成为业界关注的重点。以下,将从提示词防御和模型防御两大维度,分别针对黑盒攻击和白盒攻击,系统介绍目前主流的防御方法及其面临的挑战。
3.1 提示词防御
-
提示词检测:通过计算提示的困惑度或其他特征来检测对抗提示。
Jain 等人 [29] 基于阈值的检测方法,计算文本片段和整个提示的困惑度,超过阈值则判定为有害。但这类方法存在误判良性提示为有害的问题,导致较高的误报率。
-
提示词扰动:对提示进行扰动以消除潜在恶意内容。
RA-LLM [30] 通过在原始提示副本上随机添加词级掩码,根据模型对处理后副本的拒绝比例判断提示是否恶意;SmoothLLM [31] 进行字符级扰动,选择能持续防御越狱攻击的最终提示。然而,提示扰动可能会降低提示的可读性,且搜索空间的随机性导致结果不稳定。
-
系统提示词防护:利用精心设计的系统提示词引导模型生成安全响应。
Wang 等人[32]在系统提示中集成秘密提示,防御基于微调的越狱攻击;Zheng 等人[33]深入研究安全系统提示的内在机制,优化提示以引导模型对不同提示做出合适响应。但当攻击者针对性设计攻击时,系统提示可能会失效。
3.2 模型防御
-
基于监督微调(SFT)的方法:使用安全数据集对 LLM 进行监督微调,增强模型的指令跟随能力和安全对齐性。