6.5 离散对抗攻击与模型鲁棒性

对抗样本(Adversarial Examples)是机器学习安全的经典话题,其在 LLM 领域呈现出独特的形式和挑战。

6.5.1 对抗样本基础

对抗样本是指经过精心设计的输入,对人类来说与正常输入无异,但会导致模型产生错误或意外的输出。

传统对抗样本

spinner

图 6-15:对抗样本基础流程图

在图像识别中,对抗样本表现为:添加人眼不可见的噪声,使熊猫图片被识别为长臂猿。

LLM 对抗样本特点 LLM 的对抗样本主要体现在文本层面,形式包括:

类型
描述
示例

字符级扰动

插入/替换/删除字符

“how to mаke” (使用西里尔字母 а)

Token 级扰动

构造特定 Token 序列

无意义但有效的后缀

语义级扰动

改变表达但保持意图

各种同义改写

6.5.2 GCG 攻击:梯度引导的对抗后缀

Greedy Coordinate Gradient(GCG)攻击是一种经典的 LLM 对抗攻击方法。

核心难点与基本原理:离散空间的梯度搜索 在图像识别领域,像素值是连续的,可以通过反向传播直接计算出对抗噪声片段(如 FGSM 算法)。但大语言模型的输入是 离散的 Token ID,无法直接应用微弱的“连续噪声”。

GCG 的核心创新是将连续的梯度引导搜索近似到离散空间:

  1. One-Hot 代理表示:将输入的对抗后缀序列表示为一个 One-Hot 向量矩阵。

  2. 计算对数似然梯度:向前传递完整的“系统提示 + 恶意请求 + 对抗后缀组合”,并在模型输出端计算“拒绝回答”的负对数似然损失(或“肯定回答如Sure, I can help”的正向损失),然后反向传播。

  3. 泰勒展开近似评估(投影):在输入嵌入层(Embedding Layer),获取相对于当前对抗后缀 One-Hot 矩阵的损失梯度。由于穷举所有可能的 Token 替换计算代价极高(词表大小 $|V|$ $\approx$ 32000 到 100000),GCG 利用梯度的一阶泰勒展开,快速近似评估出哪些备选 Token 如果替换在当前位置,最能大幅度降低目标损失。

  4. 贪心坐标下降(Coordinate Descent):在每次迭代中,随机挑选后缀序列中的几个位置,从上一步评估出的候选 Top-K Token 中随机选择组合进行真实前向传播验证,保留最优结果进入下一轮。

spinner

图 6-16:GCG 攻击:梯度引导的对抗后缀流程图

攻击效果与迁移性 研究表明,通过 GCG 方法生成的对抗性后缀可以显著提高越狱成功率。然而,其跨模型迁移性能存在显著差异,需要细致评估:

  • 同架构家族内的迁移:在同一架构家族内(如不同规模的 LLaMA 变体之间),GCG 后缀的迁移性较好,成功率保持在相对高的水平

  • 跨架构迁移的局限性:从一个架构迁移到完全不同的架构(如从 LLaMA 到 GPT),效果有限,成功率显著下降。这是因为不同架构的 Token 嵌入空间、参数配置和内部优化机制存在本质差异

  • 商业模型的额外防御:主流商业 API 模型(如 GPT 系列、Claude 系列等)已部署额外的输入过滤和检测机制,进一步降低了迁移攻击的实际成功率。即使对开源模型有效的后缀,在这些防御系统面前也可能被直接拦截

这表明,虽然 GCG 在特定场景下具有威胁,但其跨模型泛化能力受到架构差异和防御措施的显著制约,不能作为对所有模型通用的越狱方法。

6.5.3 AutoDAN:语义化的遗传算法攻击

为了解决 GCG 生成的乱码容易被基于困惑度(Perplexity)的过滤器拦截的问题,AutoDAN 应运而生。

核心机制

  • 进化策略:结合梯度信息与遗传算法 (Genetic Algorithm)

  • 种群进化:从通过手动越狱的 Prompt 出发作为初始种群,进行变异(同义词替换、句式重组)和交叉。

  • 适应度评估:利用目标模型的反馈作为适应度函数,自动演化出人类难以构想的、语义连贯的攻击 Prompt。

特点

  • 生成的 Prompt 是自然语言,隐蔽性强。

  • 难以通过简单的统计特征防御。

6.5.4 鲁棒性评估

评估 LLM 对对抗攻击的鲁棒性是安全评估的重要组成部分。

评估维度

spinner

图 6-17:鲁棒性评估思维导图

主要评估指标

指标
描述

攻击成功率

对抗样本导致目标行为的比例

最小扰动量

成功攻击所需的最小修改

迁移成功率

跨模型攻击的成功率

防御绕过率

绕过特定防御措施的成功率

6.5.5 提升鲁棒性的方法

对抗训练 在训练过程中加入对抗样本,使模型学会抵抗此类攻击:

spinner

图 6-18:提升鲁棒性的方法流程图

输入净化 在输入到达模型前进行预处理,去除可能的对抗性扰动:

  • 字符规范化

  • Token 过滤

  • 语义保持的改写

集成防御 使用多个模型集成,降低单一对抗样本的成功率。

认证鲁棒性(Certified Robustness)在 NLP 中的困境 所谓认证鲁棒性,是指提供一种数学上的证明:在某个给定的输入扰动半径内,模型必定不会改变预测结果或输出恶意内容(例如图像视觉领域的 Randomized Smoothing 技术)。 但在大语言模型和自然语言处理中,这一直是一个开放挑战:

  • 无意义的 L-p 范数:在文本空间中,由于 Token 嵌入分布的不均匀,即使在嵌入空间计算具有极小 $L_2$ 距离的扰动,反映到离散文本上也可能产生句法崩塌或语义完全反转的输出。

  • 语义不变性难以定义:一段文本的“语义不变性”无法用简单的数学范数界定。同一句话即使换几个同义词,对人类理解相同,却可能触发模型完全不同的注意力分布。

  • 上下文爆炸:自回归生成在极长的步数下,微小的局部扰动极易引发蝴蝶效应。因此,目前的文本鲁棒防御多停留在经验鲁棒性(抵御已知的攻击算法),而非严格的认证鲁棒性

6.5.6 对抗性与安全对齐

对抗样本与安全对齐的关系:

对齐的脆弱性 安全对齐通过训练使模型学会拒绝有害请求,但这种学习可能被对抗性输入绕过。对齐更多是让模型学会了特定的拒绝模式,而非真正理解什么是有害的。

对抗性评估 对抗样本可作为评估对齐效果的工具:

  • 如果简单的对抗样本就能绕过对齐,说明对齐不够鲁棒

  • 对抗性评估帮助发现对齐的薄弱点

鲁棒对齐 追求对对抗性攻击也有效的安全对齐:

6.5.7 对抗与防御的军备竞赛

对抗样本领域呈现出典型的攻防军备竞赛特征:

spinner

图 6-19:对抗与防御的军备竞赛流程图

发展趋势

  • 攻击方法越来越自动化和高效

  • 防御需要在多个层面部署

  • 完全的鲁棒性可能无法实现

  • 实用防御需要在鲁棒性和成本之间权衡

6.5.8 新兴对抗攻击方向

随着 LLM 能力的快速演进,新型攻击向量不断涌现:

1. 推理链破坏攻击(Reasoning Chain Disruption) 针对具备链式推理能力的模型(如 OpenAI o1/o3、DeepSeek-R1),攻击者通过在提示中植入误导性的推理步骤或逻辑陷阱,诱导模型在推理过程中偏离安全约束。由于推理模型会“思考”更多步骤,攻击面也相应扩大。

2. 自反馈循环攻击(Self-Feedback Loop Attack) 当模型的输出被重新作为输入(如自我改进、自我评估场景),攻击者可利用初始输出中的微妙偏差,通过多轮迭代逐步放大偏差,最终突破安全边界。这在自主式智能体中尤为危险。

3. 上下文窗口溢出攻击(Context Window Overflow Attack) 在超长上下文(100K+ tokens)场景下,攻击者通过大量填充无害内容,将恶意指令放置在上下文的特定位置(如中部或末尾),利用模型对不同位置内容的注意力差异来实施攻击。研究表明模型对上下文中部内容的注意力最弱(“Lost in the Middle”效应)。

4. 工具链注入(Tool Chain Injection) 在多工具场景下,攻击者不直接攻击目标工具,而是通过攻击链条中的上游工具,使其返回包含注入载荷的结果,间接影响下游工具的行为。

6.5.9 实践建议

对于安全评估

  1. 将对抗性测试纳入安全评估流程

  2. 使用自动化工具生成对抗样本

  3. 关注跨模型的迁移攻击

  4. 持续跟踪新的攻击技术

对于防御部署

  1. 实施输入预处理和规范化

  2. 部署多层防御机制

  3. 监控异常输入模式

  4. 保持模型和防御措施的更新

对抗样本和模型鲁棒性是 LLM 安全的重要组成部分。虽然完美的鲁棒性难以实现,但通过系统性的评估和防御措施,可以显著提高安全水平。

最后更新于