大模型安全:模型窃取
大模型安全:模型窃取(Model Extraction)
威胁一:嵌入层参数窃取(Embedding Layer Extraction)
威胁描述
攻击者在完全黑盒(无内部结构或训练数据)的情况下,通过向大语言模型 API 发送特殊构造的文本输入(如随机词序列),并分析返回的输出 logits 或概率分布,利用数学方法(如奇异值分解 SVD)逆向恢复模型最后一层嵌入投影矩阵(embedding projection matrix)的参数。
- 可精确推断模型隐藏层维度(如 1024、2048);
- 为后续模型复现或逆向工程提供关键信息。
威胁场景
- 提供公网可访问的大模型 API 服务(如 ChatGPT、PaLM-2 的推理接口);
- API 返回高精度输出信息(如完整 logits 或 top-k 概率)。
威胁触发条件
- 攻击者可高频、任意构造输入调用模型 API;
- API 返回细粒度预测结果(如 logits 向量、完整概率分布)。
缓解措施(技术类)
- 差分隐私训练(DP):在训练阶段向梯度/参数注入噪声,降低输出可逆性;
- API 输出脱敏:
- 禁止返回原始 logits;
- 仅返回top-k token 及其截断概率(如 k=5);
- 对概率值进行扰动或量化;
- 行为监控与限流:
- 设置调用频率上限;
- 部署安全护栏(Security Guardrail),识别异常查询模式(如高频随机输入)。
威胁案例
"Model Extraction via Embedding Recovery"(Carlini et al., 2023)
- 攻击效果:
- 以 < $20 成本 窃取 OpenAI ada/babbage 模型的完整投影矩阵;
- 精确推断其隐藏层维度为 1024 / 2048;
- 对 gpt-3.5-turbo,估计 < $2000 即可恢复其嵌入层;
- 影响模型:OpenAI ChatGPT、Google PaLM-2 等商业大模型;
- 本质:利用 API 输出的数学结构泄露实现参数级逆向。
威胁二:功能级模型窃取(Functional Model Stealing)
威胁描述
攻击者通过大量查询目标模型,收集输入-输出对,利用监督学习方法训练替代模型(surrogate model),复现原模型的功能。
- 替代模型可达原模型 85%~97% 的准确率;
- 导致核心 AI 资产(知识产权、训练数据价值)流失。
威胁场景
- 模型以 MLaaS(机器学习即服务) 形式对外提供预测接口;
- 允许用户自由提交输入并获取完整输出。
威胁触发条件
- 攻击者可构造多样化输入并高频调用 API。
缓解措施
同“嵌入层窃取”缓解措施(差分隐私、API 限流、输出脱敏、行为检测)。
威胁案例
1. 亚马逊 BigML 模型窃取(Tramèr et al., USENIX Security 2016)
- 目标:信用评分模型;
- 成本:1150 次查询 / 10 分钟;
- 效果:替代模型达到 >85% 原模型性能;
- 来源:arXiv:1609.02943
2. Azure Emotion API 窃取(Correia-Silva et al., 2018)
- 方法:使用随机非问题域图像(如自然风景)作为输入;
- 成本:~$35,000;
- 效果:替代 CNN 模型达到 93% 原 API 功能;
- 来源:arXiv:1806.05476
威胁三:GPU 内存侧信道窃取(GPU Memory Side-Channel Extraction)
威胁描述
攻击者在获得 CPU 侧系统权限(如 root 或进程注入能力)后,通过 SO 注入 / 进程劫持,在 AI 推理进程中加载恶意 GPU 内核代码,直接读取 GPU 显存中的敏感数据,包括:
- 模型权重(加载后为明文);
- 用户输入/输出数据;
- 中间激活值。
即使模型文件加密,加载到 GPU 后即为明文,成为攻击突破口。
威胁场景
- 高价值模型部署在支持 CUDA 的 AI 推理服务器;
- 模型文件加密,但运行时未保护 GPU 内存。
威胁触发条件
- 攻击者已获得 CPU 侧代码执行能力(如通过漏洞提权、供应链投毒);
- 可对推理进程进行 SO 注入或内存修改。
缓解措施(技术类)
- 强化主机侧安全:
- 启用 ASLR、DEP、Control Flow Integrity;
- 限制推理进程权限,禁止动态库加载;
- GPU 内存保护(需硬件/驱动支持):
- 使用 NVIDIA Confidential Computing 或 AMD SEV 等机密计算技术;
- 对 GPU 内存实施加密与访问控制(如 CUDA Memory Protection);
- 专项模型保护方案:
- 模型分片、动态加载、运行时混淆等。
威胁案例
内部 PoC:2012 Lab - RO0T 实验室 SO 注入窃取 GPU 数据
- 攻击流程:
- 编写恶意 C/C++ 代码,包含:
fun_A:CPU 侧申请 GPU 内存,调用 GPU 内核;fun_B:GPU 内核遍历显存,拷贝指定区域数据至传入 buffer;
- 编译为
.so动态库; - 通过 SO 注入 加载至运行中的 AI 推理进程;
- 调用
fun_A,触发 GPU 内存转储至 CPU 内存。
- 编写恶意 C/C++ 代码,包含:
- 成果:成功提取模型参数、用户输入、中间结果等敏感数据。
- 本质:利用 CPU-GPU 协同执行的信任边界缺失 实现侧信道攻击。
总结:模型窃取已从“功能复现”演进到“参数逆向”和“运行时内存提取”,防御需覆盖 API 接口、训练流程、推理环境、硬件平台 全栈。“模型即资产,加载即暴露”——必须在可用性与安全性之间建立精细化平衡。

浙公网安备 33010602011771号