7.2 已知攻击与防御策略
本节摘要:PETs 自身可能被攻击。本节讲清楚针对各 PETs 的已知攻击(梯度反转/成员推断/侧信道/投毒/组合攻击)和防御策略。读完你能给 PETs 系统做攻击面分析。
一、FL 攻击
1. 梯度反转攻击(Gradient Inversion/Leakage)
- 攻击者(服务器)从客户端梯度反推客户端数据。
- Zhu et al. 2019 证明——优化使梯度匹配的输入,重构图像/文本。
- 浅层网络易,深层难,但 BatchNorm 等泄露统计。
- 防御:安全聚合(服务器不见个体梯度)、DP(梯度加噪)、梯度压缩(破坏重构信号)。
2. 成员推断攻击(Membership Inference)
- 攻击者判断某样本是否在训练集——从模型行为(loss/置信度)推断。
- Shokri et al. 2017 证明——模型对训练样本过拟合,行为不同。
- 防御:DP 训练(防过拟合)、正则化、减少过拟合。
3. 属性推断攻击(Attribute Inference)
- 推断训练数据的属性(如数据集中某群体比例)——从模型行为。
- 防御:DP、限制模型输出信息。
4. 投毒攻击(Poisoning)
- 数据投毒:恶意客户端在本地数据注入坏样本,破坏全局模型。
- 模型投毒:恶意客户端发恶意梯度,破坏或植入后门。
- 防御:鲁棒聚合(Krum/Trimmed Mean/median,剔除异常)、客户端信誉、异常检测、差分隐私(噪声掩盖投毒)。
5. 后门攻击(Backdoor)
- 投毒的特例——植入触发器(如图片特定像素模式),模型对触发器误分类。
- 防御:后门检测(神经 cleanse)、鲁棒聚合、客户端审计。
二、DP 攻击
1. ε 过大攻击
- ε 设太大(如 100)几乎无保护——攻击者能从输出推断个体。
- 防御:按敏感度设 ε,公布让评估,第三方审计。
2. 预算耗尽攻击
- 攻击者反复查询,消耗隐私预算,后续查询无保护。
- 防御:预算监控,超限停查询,限流。
3. 组合攻击
- 多次 DP 查询组合,累积泄露超单次 ε 预期。
- 防御:用组合定理管理累积(顺序/高级组合),监控总 ε。
4. 背景知识攻击
- 攻击者有背景知识(如知道部分数据),辅助推断。
- DP 设计防背景知识(相邻数据集定义),但要正确设敏感度。
- 防御:正确算敏感度,考虑背景知识。
5. 自适应攻击
- 攻击者根据前次查询调整后续,利用信息。
- 防御:自适应组合定理、DP 在线学习理论。
三、TEE 攻击
1. 侧信道攻击
- 缓存侧信道:Prime+Probe/Flush+Reload,测缓存状态推断飞地访问。
- 时间侧信道:测飞地操作时间推断数据分支。
- 功耗/电磁:物理接触测功耗/电磁。
- SGX 历史漏洞(Foreshadow/LVI/Spectre 类)多在侧信道。
- 防御:常时间编程(避免数据依赖分支/访问)、缓存刷新、侧信道硬化、SGX2 补丁。
2. 飞地内攻击
- 飞地代码 bug 被利用——如缓冲区溢出、整数溢出。
- 防御:内存安全语言(Rust)、安全编码、模糊测试、代码审计。
3. 供应链攻击
- 飞地代码/SDK/编译器被植入后门。
- 防御:可信构建链、 reproducible builds、源码审计、签名验证。
4. 物理攻击
- 物理接触 CPU,探针/故障注入。
- 防御:硬件防篡改、物理防护、检测。
5. 信任假设攻击
- 硬件厂商留后门或被强制(如 NSA)。
- 防御:不可完全防——要分散信任(多厂商 TEE、HE/MPC 互补)、审计、透明。
四、MPC 攻击
1. 恶意参与方攻击
- 恶意方任意偏离协议——输入假数据、错误计算、中途退出。
- 半诚实协议不防——只防偷看不防作弊。
- 防御:恶意安全协议(MAC/承诺/ZKP 验证)、作弊检测、中止。
2. 串通攻击
- 多个参与方串通,联合推断其他方。
- 超过门限 t 则破。
- 防御:设门限 t < n/k(k 为信任度),分散信任。
3. 输入伪造攻击
- 参与方输入假数据(如假信用评分)。
- MPC 不验证输入真实性——只保护计算。
- 防御:输入承诺、ZKP 证输入合法、可信数据源。
4. 选择性中断攻击
- 恶意方中途退出,破坏公平性(自己得结果别人不得)。
- 防御:公平性协议(惩罚退出方)、乐观公平交换。
5. 侧信道攻击
- MPC 协议本身防逻辑泄露,但实现可能有侧信道(时间/缓存)。
- 防御:常时间实现、侧信道审计。
五、HE 攻击
1. 密钥泄露攻击
- HE 密钥泄露则所有密文可解——隐私全失。
- 防御:HSM/TEE 保护密钥、密钥轮换、秘密共享分权。
2. 参数攻击
- 参数选错(如多项式度太小)则安全弱——可能被破解。
- 防御:用标准参数集、安全参数估算工具、跟踪密码分析进展。
3. 量子攻击
- HE 多基于 LWE/RLWE,抗量子(格密码是 PQC 候选)。
- 但部分 HE 方案可能被量子优化——要跟踪后量子密码学。
- 防御:选抗量子方案(LWE/RLWE 基),跟踪 NIST PQC。
4. 实现攻击
- HE 库实现 bug 可能泄露(如错误处理泄露密钥)。
- 防御:用成熟库、代码审计、模糊测试。
5. 电路攻击
- HE 电路设计 bug 可能泄露(如不该暴露的中间结果)。
- 防御:电路审计、形式化验证。
六、ZKP 攻击
1. 可信设置攻击
- SNARK 可信设置的废料持有者能伪造证明。
- 防御:多方仪式(任一方诚实则安全)、用通用设置(PLONK)、用 STARK(无设置)。
2. 电路 bug 攻击
- ZKP 电路 bug 可能允许伪造证明——如遗漏约束。
- 防御:电路审计、形式化验证、测试向量、第三方审计(如 NCC 审计 Zcash)。
3. 证明生成攻击
- 证明生成实现 bug 可能泄露见证或允许伪造。
- 防御:用成熟库、代码审计、签名验证。
4. 量子攻击
- SNARK 多基于椭圆曲线,量子可破(Shor 算法)。
- STARK 基于哈希,抗量子。
- 防御:抗量子用 STARK,或后量子 SNARK(研究)。
5. 递归攻击
- 递归 ZKP(证明的证明)的 bug 可能被利用。
- 防御:递归协议审计、形式化验证。
七、组合攻击
PETs 组合时,攻击面叠加:
1. 接口攻击
- 组合的接口(HE↔MPC、FL↔DP)可能泄露——如格式转换泄露。
- 防御:接口审计、形式化验证、最小信息接口。
2. 组合隐私泄露
- 各组件独立安全,但组合可能泄露——如 FL+DP,DP 加噪但聚合模式泄露。
- 防御:组合隐私分析、整体威胁建模、组合定理利用。
3. 信任假设冲突
- 各组件信任假设不同——如 TEE+HE,TEE 信任硬件但 HE 不信任,组合的信任是并集。
- 防御:明确组合信任假设、最小信任原则。
4. 性能攻击
- 组合性能开销叠加,攻击者可能利用慢响应推断。
- 防御:性能优化、常时间响应。
八、攻击面分析
PETs 系统的攻击面:
- 密码学层:参数/实现/电路 bug。
- 协议层:恶意方/串通/选择性中断。
- 系统层:侧信道/供应链/物理。
- 组合层:接口/组合泄露/信任冲突。
- 运维层:密钥管理/监控盲区/事件响应。
防御策略:
- 纵深防御:多层保护,不依赖单层。
- 威胁建模:明确攻击者能力,针对性防御。
- 持续审计:定期审计、红队测试、跟踪新攻击。
- 最小信任:信任假设最小化,分散信任。
- 透明:公开参数/协议/审计,社区监督。
⚠️ 常见误读:以为"上了 PETs 就安全"。PETs 自身可能被攻击——梯度反转、侧信道、投毒、电路 bug、组合泄露。要攻击面分析和纵深防御。
💡 关键直觉:PETs 攻击——FL(梯度反转/成员推断/投毒/后门,防御安全聚合/DP/鲁棒聚合)、DP(ε 过大/预算耗尽/组合/背景知识,防御按敏感度设/监控/组合定理)、TEE(侧信道缓存时间功耗/飞地内/供应链/物理/信任假设,防御常时间/硬化/审计/分散信任)、MPC(恶意/串通/输入伪造/中断/侧信道,防御恶意安全/门限/承诺/公平性)、HE(密钥泄露/参数/量子/实现/电路,防御 HSM/标准参数/抗量子/审计)、ZKP(可信设置/电路 bug/证明/量子/递归,防御仪式/审计/STARK/形式化)、组合(接口/组合泄露/信任冲突/性能,防御接口审计/整体建模/最小信任)。防御策略纵深防御/威胁建模/持续审计/最小信任/透明。
核心回顾
- FL 攻击:梯度反转(Zhu 2019,重构数据,防御安全聚合/DP/压缩)、成员推断(Shokri 2017,过拟合,防御 DP/正则化)、属性推断、投毒(数据/模型,防御鲁棒聚合 Krum/Trimmed Mean/信誉/异常检测)、后门(触发器,防御神经 cleanse/鲁棒聚合/审计)。
- DP 攻击:ε 过大(几乎无保护,防御按敏感度设/公布/审计)、预算耗尽(反复查询,防御监控/限流)、组合(累积泄露,防御组合定理/总 ε 监控)、背景知识(辅助推断,防御正确敏感度)、自适应(利用前次,防御自适应组合)。
- TEE 攻击:侧信道(缓存 Prime+Probe/Flush+Reload、时间、功耗/电磁,SGX Foreshadow/LVI,防御常时间/缓存刷新/硬化/补丁)、飞地内(bug,防御 Rust/安全编码/模糊测试)、供应链(后门,防御可信构建/reproducible/签名)、物理(探针/故障,防御防篡改/防护)、信任假设(厂商后门,防御分散信任/多厂商/HE-MPC 互补)。
- MPC 攻击:恶意参与方(任意偏离,防御恶意安全 MAC/承诺/ZKP/中止)、串通(超门限,防御门限 t<n/k)、输入伪造(假数据,防御承诺/ZKP 证合法/可信源)、选择性中断(破坏公平,防御公平性协议/惩罚)、侧信道(实现,防御常时间)。
- HE 攻击:密钥泄露(全失,防御 HSM/TEE/轮换/秘密共享)、参数(选错弱,防御标准参数/估算/跟踪分析)、量子(LWE 抗量子但跟踪 PQC,防御选抗量子)、实现(bug 泄露,防御成熟库/审计/模糊)、电路(设计 bug,防御审计/形式化)。
- ZKP 攻击:可信设置(废料伪造,防御多方仪式/通用设置/STARK)、电路 bug(遗漏约束,防御审计/形式化/测试/第三方)、证明生成(bug,防御成熟库/审计/签名)、量子(SNARK 椭圆曲线可破,防御 STARK/后量子 SNARK)、递归(bug,防御审计/形式化)。
- 组合攻击:接口(格式转换泄露,防御审计/最小信息接口)、组合泄露(各组件安全但组合泄露,防御组合隐私分析/整体建模/组合定理)、信任冲突(TEE+HE 信任并集,防御明确假设/最小信任)、性能(慢响应推断,防御优化/常时间)。
- 攻击面:密码学(参数/实现/电路)、协议(恶意/串通/中断)、系统(侧信道/供应链/物理)、组合(接口/泄露/信任)、运维(密钥/监控/事件)。
- 防御策略:纵深防御(多层)、威胁建模(针对性)、持续审计(红队/跟踪新攻击)、最小信任(分散)、透明(公开/社区监督)。