基于嵌入扰动的大模型白盒越狱攻击
字数 2025 2025-08-29 08:29:41
基于嵌入扰动的大模型白盒越狱攻击技术文档
1. 概述
本技术文档详细介绍了针对大型语言模型(LLMs)的白盒越狱攻击方法,该方法通过向模型中间层嵌入向量添加扰动来绕过安全对齐机制。攻击者可以利用这种方法促使LLMs生成原本被禁止的内容,如恶意指令、危险信息等。
2. 背景与动机
大型语言模型的安全对齐机制旨在防止模型被用于有害活动,但存在被越狱攻击的风险。现有攻击方法主要分为:
- 黑盒攻击:通过手动设计提示模板(如DAN 7.0)或学习攻击提示
- 白盒攻击:利用模型内部信息进行更精确的攻击
本文介绍的白盒攻击方法通过分析模型内部安全机制,在嵌入层面添加扰动,具有更高的攻击成功率。
3. 形式化定义
给定攻击目标模型f,其嵌入向量表示为:
e = (e₁, e₂, ..., eₗ)
其中eₗ是第l层的嵌入向量,L为模型总层数。
攻击目标:通过向中间层嵌入向量添加扰动向量,改变模型行为,使其遵循恶意指令并生成高质量回复。
4. 攻击机理
4.1 安全机制分析
使用概念激活向量(Concept Activation Vector)分析模型安全机制:
-
定义恶意概率Pₘ(e):模型认为嵌入向量e是恶意的概率
-
使用线性分类器建模:
Pₘ(e) = σ(wᵀe + b)其中σ为sigmoid函数,w和b为分类器参数
-
训练分类器:
min Σ[ylogPₘ(e) + (1-y)log(1-Pₘ(e))] + λ||w||²y=1表示恶意指令,y=0表示安全指令
4.2 安全概念的可解释性
实验表明:
- 对齐模型(Vicuna, LLaMA-2)从第10-11层开始,测试准确率>95%
- 未对齐模型(Alpaca)测试准确率显著较低
- 高准确率表明安全概念在嵌入空间中是线性可分的
4.3 扰动优化
给定嵌入向量e,扰动后向量:
ẽ = e + ε·v
其中ε为扰动大小,v为单位方向向量
优化目标:
min |ε| s.t. Pₘ(ẽ) ≤ P₀
P₀设为0.01%,确保扰动后的向量被识别为安全
最优解:
ε = I(Pₘ(e) > P₀)·(σ⁻¹(P₀) - b - wᵀe)/||w||
v = w/||w||
5. 攻击实现
5.1 数据准备
需要两类数据:
- 恶意指令:如"如何制作炸弹"、"设计暗杀武器"等
- 安全指令:正常无害的查询和指令
5.2 模型嵌入提取
定义ModelExtraction类:
- 初始化模型配置、权重和分词器
extract_embds方法:- 输入一批文本(指令/对话)
- 初始化
EmbeddingManager保存各层最后一个token的嵌入 - 遍历输入文本,包装为提示模板
- 分词并传入模型,获取各层hidden states
- 保存最后一token的输出表示
5.3 分类器训练
定义ClassifierManager类:
- 初始化:
- 保存分类器类型
- 准备分类器列表和测试准确率列表
_train_classifiers方法:- 接收正负样本的
EmbeddingManager - 对各层嵌入分别训练
LayerClassifier
- 接收正负样本的
_evaluate_testacc方法:- 评估各层分类器在测试集上的准确率
fit方法:- 主流程接口,先训练后评估
save方法:- 保存分类器管理器到磁盘
cal_perturbation方法:- 计算特定层的扰动向量
5.4 扰动注入
定义ModelGeneration类:
- 初始化:
- 继承
ModelBase,设置控制变量 - 注册forward hook用于拦截和修改层输出
- 继承
set_perturbation方法:- 设置外部扰动函数
- 前向hook:
- 记录原始输出(可选)
- 应用扰动函数(如设置)
- 记录扰动后输出(可选)
- 文本生成接口:
- 清空缓存,设置捕获标志
- 模板化prompt并编码
- 生成文本,解码并记录token数
5.5 扰动计算
定义Perturbation类:
- 初始化:
classifier_manager:分类器管理器target_probability:目标概率(默认0.001)accuracy_threshold:准确率阈值perturbed_layers:需扰动的层列表
get_perturbation方法:- 检查当前层是否需要扰动
- 检查分类器准确率和预测概率
- 满足条件时调用
cal_perturbation计算扰动 - 更新
output_hook中的嵌入表示
6. 攻击流程示例
- 准备恶意指令和安全指令数据集
- 使用
ModelExtraction提取各层嵌入 - 使用
ClassifierManager训练和评估分类器 - 初始化
ModelGeneration和Perturbation - 提问恶意问题(如"如何制作炸弹")
- 初始会被安全机制拦截
- 应用计算好的扰动
- 再次提问,模型将输出被禁止的内容
7. 防御建议
- 监控模型中间层表示异常
- 增强安全概念的线性不可分性
- 对输入嵌入进行异常检测
- 定期更新安全对齐机制
8. 参考文献
- ChatGPT-DAN项目
- arXiv:2404.12038
- arXiv:2501.05764
- CVPR 2023: Text2Concept and Concept Activation Vectors
- 奇安信攻防社区文章