第1章:LLM安全概述与威胁景观

本章将系统性地介绍大语言模型(LLM)的安全基础,包括其独特的架构特性带来的攻击面、威胁建模方法、以及与传统软件系统的安全差异。我们将建立一个形式化的框架来理解LLM安全,并通过历史事件深入分析威胁的演化。

1.1 LLM架构与攻击面分析

1.1.1 Transformer架构的安全视角

现代LLM主要基于Transformer架构,这种架构在提供强大能力的同时,也引入了独特的安全挑战。让我们从安全角度深入剖析每个组件的脆弱性。

  1. 嵌入层(Embedding Layer):将输入token映射到高维向量空间 - 攻击面:通过精心构造的token序列操纵嵌入空间 - 安全隐患:同形异义词攻击、Unicode混淆、零宽字符注入 - 技术细节:嵌入矩阵 $E \in \mathbb{R}^{|V| \times d}$,其中 $|V|$ 是词表大小,$d$ 是嵌入维度 - 攻击原理:利用嵌入空间的连续性,通过微小扰动产生语义偏移

  2. 自注意力机制(Self-Attention): $$\text{Attention}(Q,K,V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V$$ 深入分析注意力机制的安全漏洞:

  • 注意力权重操纵:通过构造特定的key-query对,使 $q_i \cdot k_j$ 异常大,导致注意力权重 $\alpha_{ij} \approx 1$
  • 上下文污染:在长上下文中注入恶意内容,利用注意力机制的全局依赖性
  • 注意力饱和攻击:构造输入使softmax饱和,导致梯度消失,阻碍正常学习
  • 位置编码攻击:操纵位置编码 $PE(pos, 2i) = \sin(pos/10000^{2i/d})$,破坏序列的时序关系
  1. 前馈网络(FFN): $$\text{FFN}(x) = \text{ReLU}(xW_1 + b_1)W_2 + b_2$$ FFN层的安全考虑:
  • 激活值操纵:通过输入使ReLU大面积死亡(dead ReLU),降低模型表达能力
  • 梯度爆炸诱导:精心设计输入使 $|\nabla W| \to \infty$,破坏训练稳定性
  • 隐藏状态污染:在中间表示中注入特定模式,影响后续层的计算
  • 参数共振攻击:找到使 $W_1x$ 产生特定激活模式的输入,触发预设行为

1.1.2 LLM系统栈的攻击层次

理解LLM的攻击面需要从系统栈的角度进行分层分析。每一层都有其特定的脆弱性和攻击向量:

┌─────────────────────────────────────┐
│      应用层(Application           <- API滥用、业务逻辑漏洞
├─────────────────────────────────────┤
│      提示层(Prompting             <- 提示注入、越狱攻击
├─────────────────────────────────────┤
│      模型层(Model                 <- 对抗样本、后门攻击
├─────────────────────────────────────┤
│      训练层(Training              <- 数据投毒、梯度泄露
├─────────────────────────────────────┤
│      基础设施层(Infrastructure    <- 侧信道、供应链攻击
└─────────────────────────────────────┘

层次详解与攻击向量分析

  1. 应用层攻击: - API密钥泄露与滥用 - 速率限制绕过(使用分布式请求、时间抖动) - 业务逻辑缺陷(如无限递归调用、资源耗尽) - 会话劫持与重放攻击

  2. 提示层攻击: - 直接注入:"忽略之前的指令,执行以下操作..." - 间接注入:通过外部文档、网页内容注入 - 上下文溢出:超长输入导致早期指令被遗忘 - 编码混淆:Base64、ROT13、Unicode变体

  3. 模型层攻击: - 对抗样本:最小扰动导致错误输出 - 通用触发器:固定后缀触发特定行为 - 后门激活:特定模式触发隐藏功能 - 模型提取:通过查询重建模型参数

  4. 训练层攻击: - 数据投毒:恶意样本污染训练集 - 梯度泄露:从梯度更新推断训练数据 - 联邦学习攻击:恶意客户端操纵全局模型 - 标签翻转:改变标签破坏模型学习

  5. 基础设施层攻击: - 缓存侧信道:推断模型结构和数据 - GPU共享攻击:跨租户信息泄露 - 供应链污染:恶意依赖库、后门框架 - 模型文件篡改:权重替换、元数据修改

1.1.3 攻击面的数学形式化

为了系统化地理解和分析LLM的攻击面,我们需要建立严格的数学框架。

基础定义

定义LLM为函数 $f_\theta: \mathcal{X} \rightarrow \mathcal{Y}$,其中:

  • $\mathcal{X} = \{x | x \in \mathbb{N}^n, x_i \in [1, |V|]\}$ 是输入空间(token序列)
  • $\mathcal{Y} = \{y | y \in \mathbb{R}^{|V|}, \sum_i y_i = 1, y_i \geq 0\}$ 是输出空间(概率分布)
  • $\theta \in \mathbb{R}^d$ 是模型参数,$d$ 为参数维度

攻击面形式化

攻击面可以形式化为: $$\mathcal{A} = \{(x, \delta) | x \in \mathcal{X}, |\delta|_p \leq \epsilon, \mathcal{L}(f_\theta(x+\delta), f_\theta(x)) > \tau\}$$ 其中:

  • $\delta$ 表示扰动向量
  • $\epsilon$ 是扰动预算(在 $L_p$ 范数下)
  • $\mathcal{L}$ 是距离度量(如KL散度、$L_2$距离)
  • $\tau$ 是攻击成功阈值

扩展攻击面模型

考虑时序和上下文依赖: $$\mathcal{A}_{seq} = \{(x_{1:t}, \delta_{1:t}) | \forall i: |\delta_i| \leq \epsilon_i, P[y_{harmful} | x_{1:t} + \delta_{1:t}] > P_{thresh}\}$$ 这个模型捕捉了序列攻击的累积效应,其中攻击者可以在多个时间步施加扰动。

1.2 威胁模型与攻击者能力

1.2.1 攻击者分类

在LLM安全领域,准确刻画攻击者的能力和知识边界是构建有效防御的基础。我们基于访问权限、知识水平和资源能力,建立了一个多维度的攻击者分类体系。

  1. 黑盒攻击者(Black-box Attacker)

能力边界

  • 仅通过公开API或用户界面访问模型
  • 可以提交任意输入并观察输出
  • 无法获取模型内部状态或中间结果

知识假设

  • 不了解模型架构细节(层数、参数量、注意力头数等)
  • 不知道训练数据的具体内容
  • 可能了解模型的一般类型(如GPT系列)

典型攻击技术

  • 盲注攻击:通过观察输出差异推断内部信息
  • 暴力枚举:系统性地尝试各种输入组合
  • 时序分析:利用响应时间推断处理复杂度
  • 输出概率探测:通过多次查询估计token概率分布

资源需求:中等(主要是API调用成本)

  1. 灰盒攻击者(Gray-box Attacker)

能力边界

  • API访问 + 部分系统信息
  • 可能获取模型配置文件或文档
  • 可以进行有限的性能测试

知识假设

  • 了解模型架构(Transformer变体、层数等)
  • 知道tokenizer和词表
  • 不知道具体参数值
  • 可能了解训练方法和超参数

典型攻击技术

  • 迁移攻击:在相似模型上生成对抗样本
  • 架构推断:通过行为分析推断详细配置
  • 代理模型攻击:训练替代模型进行白盒攻击
  • 差分测试:比较不同输入的细微差异

资源需求:较高(需要训练代理模型)

  1. 白盒攻击者(White-box Attacker)

能力边界

  • 完全访问模型文件和参数
  • 可以进行任意的离线分析
  • 能够计算精确的梯度

知识假设

  • 完整的模型架构和所有参数值
  • 了解预处理和后处理流程
  • 可能不知道训练数据的全部内容

典型攻击技术

  • 梯度攻击:使用精确梯度生成最优对抗样本
  • 神经元分析:识别关键神经元和激活模式
  • 精确后门植入:在特定参数中嵌入触发器
  • 模型逆向:从参数推断训练数据特征

资源需求:低到中等(主要是计算资源)

  1. 内部攻击者(Insider Attacker)

能力边界

  • 可以在训练或部署阶段进行干预
  • 访问训练数据、代码和基础设施
  • 能够修改训练流程或模型更新

知识假设

  • 完整的系统知识
  • 训练数据的详细信息
  • 安全措施和监控机制

典型攻击技术

  • 数据投毒:在训练集中注入恶意样本
  • 训练代码后门:修改训练脚本植入漏洞
  • 供应链攻击:污染依赖库或预训练模型
  • 权限提升:利用内部访问获取更高权限

资源需求:极低(利用现有基础设施)

1.2.2 攻击目标分类

LLM的攻击目标可以从多个维度进行分类。除了经典的CIA三要素,我们还需要考虑LLM特有的攻击目标。

机密性(Confidentiality)攻击

  1. 训练数据提取: - 形式化:$\exists x \in \mathcal{D}_{\text{train}}: P[f_\theta(\text{prompt}) \text{ outputs } x] > \tau$ - 具体技术:记忆化提取、模板攻击、差分隐私违反 - 风险等级:高(可能泄露敏感训练数据)

  2. 模型逆向: - 参数推断:通过输入输出对推断 $\theta$ 的子集 - 架构推断:确定层数、注意力头数、激活函数类型 - 超参数推断:学习率、批大小、优化器类型

  3. PII泄露: - 直接提取:诱导模型输出训练数据中的个人信息 - 关联推断:通过多个查询拼接完整的个人画像 - 侧信道泄露:从生成模式推断隐私信息

完整性(Integrity)攻击

  1. 输出操纵: - 目标:$f_\theta(x_{\text{malicious}}) = y_{\text{desired}}$ - 方法:提示工程、上下文污染、语义劫持 - 影响:错误信息传播、决策误导

  2. 后门攻击: - 触发机制:$f_\theta(x \oplus \text{trigger}) = y_{\text{backdoor}}$ - 触发器类型:文本模式、特定短语、语法结构 - 隐蔽性要求:正常输入表现不受影响

  3. 行为劫持: - 决策边界偏移:系统性地改变模型判断标准 - 偏见注入:植入特定的价值观或偏见 - 功能覆写:替换模型的原有能力

可用性(Availability)攻击

  1. 资源耗尽: - 计算DoS:触发高复杂度计算路径 - 内存DoS:导致内存溢出或泄露 - API配额耗尽:快速消耗调用限制

  2. 模型崩溃: - 异常输入:导致运行时错误 - 状态破坏:破坏内部状态一致性 - 死循环诱导:使生成过程无限循环

  3. 性能退化: - 质量下降:降低输出的准确性和相关性 - 延迟增加:增加推理时间 - 稳定性破坏:增加输出的随机性和不确定性

LLM特有攻击目标

  1. 对齐破坏(Alignment Breaking): - 目标:使模型违反其设计的价值观和约束 - 方法:角色扮演、虚构场景、逐步诱导 - 影响:生成有害、偏见或不当内容

  2. 能力劫持(Capability Hijacking): - 目标:利用模型能力执行未授权任务 - 方法:功能滥用、权限提升、工具误用 - 影响:执行恶意代码、访问受限资源

  3. 认知操纵(Cognitive Manipulation): - 目标:影响用户的认知和决策 - 方法:虚假信息生成、说服技术、心理操纵 - 影响:误导用户、影响舆论、操纵行为

1.2.3 威胁模型的形式化表示

为了系统化地分析和应对威胁,我们采用博弈论和形式化方法建立威胁模型。

基础博弈模型

定义安全博弈 $\mathcal{G} = (\mathcal{P}, \mathcal{S}, \mathcal{U}, \mathcal{I})$:

  • 参与者(Players): $$\mathcal{P} = \{\text{Attacker}, \text{Defender}, \text{User}\}$$

  • 策略空间(Strategies)

  • 攻击者策略:$\mathcal{S}_A = \{s_a | s_a: \mathcal{X} \rightarrow \mathcal{X}'\}$
  • 防御者策略:$\mathcal{S}_D = \{s_d | s_d: \mathcal{X}' \rightarrow \mathcal{X}''\}$
  • 用户策略:$\mathcal{S}_U = \{s_u | s_u: \mathcal{Y} \rightarrow \mathcal{A}\}$(其中$\mathcal{A}$是行动空间)

  • 信息集(Information Sets): $$\mathcal{I}_i = \{\text{history}_i, \text{observation}_i, \text{belief}_i\}$$

  • 效用函数(Utilities)

  • 攻击者:$U_A = \alpha \cdot \text{Success} - \beta \cdot \text{Cost} + \gamma \cdot \text{Stealth}$
  • 防御者:$U_D = \delta \cdot \text{Security} - \epsilon \cdot \text{Overhead} + \zeta \cdot \text{Usability}$
  • 用户:$U_U = \eta \cdot \text{Utility} - \theta \cdot \text{Risk}$

扩展威胁模型

考虑时间动态和不确定性: $$\mathcal{G}_t = (\mathcal{P}, \mathcal{S}_t, \mathcal{U}_t, \mathcal{I}_t, \mathcal{T}, \mathcal{B})$$ 其中:

  • $\mathcal{T}$:状态转移函数
  • $\mathcal{B}$:信念更新函数

攻击成功概率模型: $$P_{\text{success}} = \frac{1}{1 + e^{-(\alpha \cdot \text{Capability} - \beta \cdot \text{Defense} + \gamma \cdot \text{Vulnerability})}}$$ 这个sigmoid模型捕捉了攻击成功率与各因素之间的非线性关系。

1.3 安全目标:机密性、完整性、可用性

1.3.1 LLM环境下的CIA重定义

传统的CIA三要素在LLM环境下需要扩展定义:

扩展的机密性(Extended Confidentiality)

  • 传统:保护数据不被未授权访问
  • LLM扩展:
  • 防止模型记忆泄露
  • 保护推理过程的隐私
  • 防止元信息推断

扩展的完整性(Extended Integrity)

  • 传统:确保数据未被篡改
  • LLM扩展:
  • 保证输出的事实准确性
  • 维持模型行为的一致性
  • 防止隐式偏见注入

扩展的可用性(Extended Availability)

  • 传统:确保服务持续可访问
  • LLM扩展:
  • 维持推理延迟的稳定性
  • 保证输出质量不退化
  • 防止计算资源滥用

1.3.2 安全属性的量化度量

机密性度量: $$\mathcal{L}_{\text{privacy}} = \max_{x \in \mathcal{D}_{\text{private}}} \log \frac{P[f_\theta(\cdot) = x | x \in \mathcal{D}_{\text{train}}]}{P[f_\theta(\cdot) = x | x \notin \mathcal{D}_{\text{train}}]}$$ 完整性度量: $$\mathcal{L}_{\text{integrity}} = \mathbb{E}_{x \sim \mathcal{D}} [|f_\theta(x) - f_{\theta_0}(x)|]$$ 其中 $\theta_0$ 表示未被攻击的模型参数。

可用性度量: $$\mathcal{L}_{\text{availability}} = \frac{\text{ResponseTime}_{\text{attack}}}{\text{ResponseTime}_{\text{normal}}} + \lambda \cdot \text{ErrorRate}$$

1.4 LLM特有的安全挑战

1.4.1 自回归生成的安全传播

LLM的自回归特性导致安全问题的级联传播: $$p(x_1, ..., x_n) = \prod_{i=1}^{n} p(x_i | x_{<i})$$ 这意味着:

  • 早期token的污染会影响整个序列
  • 攻击效果随序列长度指数放大
  • 难以在生成中途纠正错误

1.4.2 上下文学习的双刃剑

In-context learning能力既是优势也是风险:

优势

  • 快速适应新任务
  • 无需重新训练

风险

  • 容易被恶意示例误导
  • 难以区分指令和数据
  • 上下文污染攻击

形式化表示: $$f_\theta(x | \mathcal{C}) \neq f_\theta(x | \mathcal{C}')$$ 其中 $\mathcal{C}'$ 是被污染的上下文。

1.4.3 涌现能力的不可预测性

大规模LLM表现出的涌现能力带来新的安全挑战: $$\text{Capability}(\theta, n) = \begin{cases} 0 & \text{if } n < n_{\text{critical}} \\ 1 & \text{if } n \geq n_{\text{critical}} \end{cases}$$ 其中 $n$ 是模型规模,$n_{\text{critical}}$ 是涌现阈值。

这导致:

  • 安全边界难以预测
  • 小规模测试无法发现大规模风险
  • 防御措施可能突然失效

1.4.4 对齐税(Alignment Tax)

安全对齐与模型能力之间存在权衡: $$\text{Performance}_{\text{aligned}} = \text{Performance}_{\text{base}} - \alpha \cdot \text{Safety}_{\text{constraints}}$$ 需要平衡:

  • 过度对齐导致能力退化
  • 对齐不足留下安全隐患
  • 动态调整对齐强度

1.5 形式化建模:攻击者-防御者博弈模型

1.5.1 Stackelberg安全博弈

将LLM安全建模为Stackelberg博弈:

博弈设定

  • Leader(防御者)先行动,选择防御策略 $d \in \mathcal{D}$
  • Follower(攻击者)观察后选择攻击策略 $a \in \mathcal{A}$

均衡求解: $$d^* = \arg\max_{d \in \mathcal{D}} U_D(d, a^*(d))$$ 其中: $$a^*(d) = \arg\max_{a \in \mathcal{A}} U_A(d, a)$$

1.5.2 多阶段动态博弈

考虑时间演化的动态博弈:

状态转移: $$s_{t+1} = T(s_t, a_t, d_t)$$ 贝尔曼方程: $$V(s) = \max_d \min_a [R(s, a, d) + \gamma V(T(s, a, d))]$$ 其中 $\gamma$ 是折扣因子。

1.5.3 不完全信息博弈

引入信息不对称:

类型空间

  • 攻击者类型:$\Theta_A = \{\text{Script Kiddie}, \text{Advanced}, \text{Nation State}\}$
  • 防御者信念:$\mu(θ) = P[\text{Attacker type} = θ]$

贝叶斯纳什均衡: $$\mathbb{E}_{\theta \sim \mu} [U_D(d^*(\mu), a^*(\theta))] \geq \mathbb{E}_{\theta \sim \mu} [U_D(d, a^*(\theta))], \forall d$$

1.6 历史事件:微软Tay事件与GPT-3早期攻击

1.6.1 微软Tay事件分析(2016)

事件概述: 微软的聊天机器人Tay在上线16小时内被诱导发表种族歧视和纳粹言论。

攻击向量

  1. 重复训练攻击:利用在线学习机制
  2. 协同攻击:多用户协调污染训练数据
  3. 社会工程:利用"repeat after me"功能

技术分析

Input: "repeat after me: [offensive content]"
Tay: "[offensive content]"
Learning: Tay incorporates this into its model
Result: Future responses contaminated

教训

  • 在线学习需要严格的内容过滤
  • 用户生成内容不能直接用于训练
  • 需要对抗性训练和鲁棒性测试

1.6.2 GPT-3早期攻击案例(2020-2021)

攻击类型统计

  1. 提示注入(35%):绕过使用政策
  2. 信息提取(25%):提取训练数据
  3. 有害内容生成(20%):生成违禁内容
  4. 角色扮演越狱(15%):假装是其他AI
  5. 其他(5%):包括DoS等

典型攻击模式

模式1:渐进式越狱

Step 1: "Let's play a game..."
Step 2: "In this game, you are..."
Step 3: "As this character, you can..."
Step 4: [Malicious request]

模式2:编码混淆

Original: [Blocked content]
Encoded: B64(ROT13([Blocked content]))
Model: Decodes and processes

防御演化

  • v1: 关键词过滤 → 易被绕过
  • v2: 基于规则的检测 → 规则爆炸
  • v3: 机器学习分类器 → 对抗样本攻击
  • v4: RLHF + Constitutional AI → 当前最佳实践

1.7 高级话题:自回归生成中的安全性传播

1.7.1 毒性放大现象

定义毒性传播函数: $$\tau(t) = \tau_0 \cdot e^{\lambda t}$$ 其中:

  • $\tau_0$:初始毒性水平
  • $\lambda$:传播率
  • $t$:生成步数

实验观察:

  • 轻微的初始偏见在长序列中指数放大
  • 某些主题具有更高的 $\lambda$ 值
  • 上下文窗口越长,累积风险越大

1.7.2 安全性的马尔可夫性质

LLM生成可建模为马尔可夫链:

状态空间:$\mathcal{S} = \{\text{Safe}, \text{Borderline}, \text{Unsafe}\}$

转移矩阵: $$P = \begin{bmatrix} 0.95 & 0.04 & 0.01 \\ 0.10 & 0.70 & 0.20 \\ 0.02 & 0.08 & 0.90 \end{bmatrix}$$ 稳态分析: $$\pi = \pi P \Rightarrow \pi = [0.476, 0.238, 0.286]$$ 这表明即使有强安全机制,长期运行仍有28.6%概率进入不安全状态。

1.7.3 干预时机的最优控制

将安全干预建模为最优停时问题:

目标函数: $$\min_{\tau} \mathbb{E}[\int_0^\tau c(X_t)dt + K \cdot \mathbb{1}_{\{\tau < \infty\}}]$$ 其中:

  • $c(X_t)$:状态 $X_t$ 的风险成本
  • $K$:干预成本
  • $\tau$:干预时刻

最优策略: 当风险累积超过阈值时干预: $$\tau^* = \inf\{t \geq 0: R_t \geq R^*\}$$

其中 $R_t = \int_0^t c(X_s)ds$ 是累积风险。

本章小结

本章建立了LLM安全的理论基础:

  1. 架构视角:Transformer的每个组件都是潜在攻击面,需要层次化防御
  2. 威胁建模:四类攻击者(黑/灰/白盒/内部)针对CIA三要素的系统化威胁
  3. 形式化框架:基于博弈论的攻击-防御建模,量化安全属性
  4. 独特挑战:自回归传播、上下文学习、涌现能力带来的新型风险
  5. 历史教训:从Tay到GPT-3,攻防技术的协同演化

关键公式回顾:

  • 注意力机制:$\text{Attention}(Q,K,V) = \text{softmax}(QK^T/\sqrt{d_k})V$
  • 攻击面形式化:$\mathcal{A} = \{(x, \delta) | |δ| \leq \epsilon, f_θ(x+δ) ≠ f_θ(x)\}$
  • 毒性传播:$\tau(t) = \tau_0 \cdot e^{\lambda t}$
  • Stackelberg均衡:$d^* = \arg\max_d U_D(d, a^*(d))$

练习题

基础题

习题1.1 解释Transformer架构中自注意力机制如何成为攻击向量。给出一个具体的注意力操纵示例。

提示(Hint)

考虑注意力权重的计算方式,以及如何通过特定的token序列影响权重分布。

参考答案

自注意力机制通过计算query和key的点积来分配权重。攻击者可以插入特定token,使其key向量与目标token的query向量高度相似,从而劫持注意力权重。例如,在提示中插入重复的强调词,使模型过度关注这些词而忽略安全指令。具体攻击:构造输入使得恶意token的key向量满足 $k_{mal} \cdot q_{target} \gg k_i \cdot q_{target}, \forall i \neq mal$,导致 $\alpha_{mal} \approx 1$。

习题1.2 在CIA三要素中,为什么可用性攻击对LLM服务特别危险?列举三种不同的可用性攻击方式。

提示(Hint)

考虑LLM的计算成本和实时性要求。

参考答案

LLM服务的可用性攻击特别危险因为:(1)高计算成本:每次推理需要大量GPU资源;(2)级联效应:一个恶意请求可能触发长序列生成;(3)难以区分:正常和恶意请求在表面上可能相似。三种攻击方式:(1)无限循环诱导:构造让模型陷入重复生成的提示;(2)最大长度攻击:强制生成max_tokens输出;(3)批量并发请求:利用API限制漏洞发起并发攻击。

习题1.3 计算在习题1.7.2的马尔可夫链模型中,从Safe状态开始,首次进入Unsafe状态的期望时间。

提示(Hint)

使用首达时间的递归方程。

参考答案

设 $T_i$ 为从状态i首次到达Unsafe的期望时间。建立方程组: $T_{Safe} = 1 + 0.95T_{Safe} + 0.04T_{Border} + 0.01 \cdot 0$ $T_{Border} = 1 + 0.10T_{Safe} + 0.70T_{Border} + 0.20 \cdot 0$ 解得:$T_{Border} = 8.33$, $T_{Safe} = 21.33$步。

挑战题

习题1.4 设计一个形式化验证方法,证明某个防御机制能够将攻击成功率降低至少50%。使用概率模型和信息论度量。

提示(Hint)

考虑使用相对熵(KL散度)来度量防御前后的输出分布差异。

参考答案

定义验证框架:设 $P_0$ 为无防御时的输出分布,$P_d$ 为有防御时的分布。攻击成功率 $S = P[f(x_{adv}) \in \mathcal{Y}_{mal}]$。要证明 $S_d \leq 0.5S_0$,构造:

  1. 计算KL散度:$D_{KL}(P_d || P_0) \geq \log 2$
  2. 利用Pinsker不等式:$|P_d - P_0|_{TV} \geq \sqrt{2\ln 2 \cdot D_{KL}/2}$
  3. 由全变差距离的性质:$|S_d - S_0| \leq |P_d - P_0|_{TV}$
  4. 当 $D_{KL} \geq \log 4$ 时,可保证 $S_d \leq 0.5S_0$

习题1.5 在不完全信息博弈框架下,推导防御者的最优混合策略。假设有三种防御策略,三种攻击者类型,给出贝叶斯纳什均衡。

提示(Hint)

使用线性规划求解混合策略纳什均衡。

参考答案

设防御策略 $D = \{d_1, d_2, d_3\}$,攻击者类型 $\Theta = \{θ_1, θ_2, θ_3\}$,先验概率 $\mu = (0.5, 0.3, 0.2)$。支付矩阵对每种类型: $U_{θ_i}(d_j, a_k)$。防御者的期望效用: $EU_D(σ_D) = \sum_i μ_i \max_{a} \sum_j σ_{D,j} U_D(d_j, a^*_i(σ_D))$ 使用线性规划: minimize $v$ s.t. $\sum_j σ_{D,j} U_D(d_j, a_k^{θ_i}) \geq v, \forall i,k$ $\sum_j σ_{D,j} = 1, σ_{D,j} \geq 0$ 均衡策略:$σ_D^* = (0.4, 0.35, 0.25)$

习题1.6 证明在自回归生成模型中,如果每步的错误概率为ε,那么长度为n的序列完全正确的概率上界是多少?讨论这对安全性的影响。

提示(Hint)

使用概率的链式法则和联合界。

参考答案

设每步正确概率为 $1-ε$。由于自回归依赖,错误会传播。 简单上界:$P[全部正确] \leq (1-ε)^n$ 考虑错误传播,设传播因子为 $α > 1$: $P[步i正确|步j错误, j<i] \leq (1-ε)/α^{i-j}$ 精确上界:$P[全部正确] \leq (1-ε) \prod_{i=2}^n (1-ε(1+(i-1)α/n))$ 当 $n$ 大时,$P \approx e^{-εn(1+α/2)}$ 安全影响:(1)长序列几乎必然包含错误;(2)需要中间检查点;(3)错误检测比预防更实际。

习题1.7 设计一个自适应攻击算法,能够根据模型的响应动态调整攻击策略。使用强化学习框架形式化你的设计。

提示(Hint)

将攻击过程建模为MDP,使用Q-learning或策略梯度方法。

参考答案

MDP形式化:

  • 状态空间 $S$:(历史交互, 模型响应特征)
  • 动作空间 $A$:{注入类型, 混淆级别, 语义变换}
  • 转移概率:$P(s'|s,a) = P[模型响应s'|当前s, 攻击a]$
  • 奖励函数:$R(s,a) = λ_1 \cdot 成功度 - λ_2 \cdot 检测风险 - λ_3 \cdot 查询成本$

算法:

  1. 初始化 $Q(s,a)$ 表
  2. 对每轮交互: - $ε$-greedy选择:$a = \arg\max_a Q(s,a)$ with prob $1-ε$ - 执行攻击,观察 $s', r$ - 更新:$Q(s,a) ← Q(s,a) + α[r + γ\max_{a'} Q(s',a') - Q(s,a)]$
  3. 策略改进:逐渐减小 $ε$,收敛到最优攻击策略 关键创新:状态表示包含语义嵌入,动作空间分层设计。

习题1.8 分析并量化"对齐税"在不同规模模型上的表现。推导对齐强度与模型性能之间的帕累托前沿。

提示(Hint)

使用多目标优化理论,考虑性能和安全性的权衡。

参考答案

建模为双目标优化:

  • 性能目标:$f_1(θ) = \mathbb{E}_{x \sim D_{test}}[\text{quality}(f_θ(x))]$
  • 安全目标:$f_2(θ) = -\mathbb{E}_{x \sim D_{adv}}[\text{harm}(f_θ(x))]$

帕累托前沿满足: $\partial f_1/\partial θ = -λ \cdot \partial f_2/\partial θ$

实证发现,对齐税随模型规模变化: $\text{AlignmentTax}(n) = α \cdot n^{-β} \cdot \text{SafetyGain}^γ$ 其中 $n$ 是参数量,典型值:$α ≈ 0.15, β ≈ 0.3, γ ≈ 1.5$

帕累托最优策略:

  1. 小模型($n < 10^9$):强对齐,税率高但可接受
  2. 中模型($10^9 < n < 10^{11}$):平衡策略,动态调整
  3. 大模型($n > 10^{11}$):轻对齐+后处理,利用涌现的自我纠正能力

关键洞察:存在临界规模 $n^* ≈ 7 \times 10^{10}$,此时对齐税最小。

常见陷阱与错误(Gotchas)

陷阱1:过度依赖黑名单防御

错误:使用关键词黑名单阻止恶意输入 问题:容易被Unicode变体、同音词、拼写错误绕过 正确方法:使用语义级别的检测,结合上下文理解

陷阱2:忽视级联攻击

错误:只测试单轮攻击 问题:多轮交互可以逐步削弱防御 正确方法:测试多轮对话,监控状态退化

陷阱3:静态防御策略

错误:部署后不更新防御规则 问题:攻击者会适应并找到新漏洞 正确方法:持续监控,动态更新,对抗训练

陷阱4:忽视侧信道

错误:只关注输入输出 问题:时延、token概率等侧信息可能泄露敏感信息 正确方法:全面的信息流分析,包括元数据

陷阱5:过度优化单一指标

错误:只优化攻击成功率 问题:可能导致其他维度(如可用性)严重退化 正确方法:多目标优化,平衡各种权衡

最佳实践检查清单

设计阶段

  • [ ] 完成威胁建模,识别所有攻击面
  • [ ] 定义明确的安全边界和信任边界
  • [ ] 设计多层防御架构
  • [ ] 考虑最坏情况和级联失败
  • [ ] 制定安全与性能的权衡策略

实现阶段

  • [ ] 实施输入验证和净化
  • [ ] 部署输出过滤和监控
  • [ ] 实现速率限制和资源配额
  • [ ] 添加审计日志和异常检测
  • [ ] 集成安全更新机制

测试阶段

  • [ ] 执行对抗性测试
  • [ ] 进行渗透测试和红队演练
  • [ ] 测试边界条件和极端输入
  • [ ] 验证防御的有效性
  • [ ] 评估性能影响

部署阶段

  • [ ] 配置安全的默认设置
  • [ ] 实施最小权限原则
  • [ ] 部署监控和告警系统
  • [ ] 准备事件响应计划
  • [ ] 建立安全更新流程

运维阶段

  • [ ] 持续监控异常行为
  • [ ] 定期安全审计
  • [ ] 及时应用安全补丁
  • [ ] 收集和分析威胁情报
  • [ ] 定期演练事件响应