外观
安全、隐私与合规
一句话定义:模型服务安全是围绕"模型资产 + 数据资产"的防护体系——对外防攻击者(模型窃取、提示注入、对抗样本),对内防泄露(用户数据、训练数据、内部策略),并满足监管合规(GDPR、数据出境、许可证)的要求。
行业洞察:模型服务是"自带攻击面"的新物种——普通 API 攻击的是你的代码漏洞,模型 API 攻击的是模型本身。攻击者无需入侵你的服务器,只要重复查询推理接口就能反向窃取模型能力;给 LLM 喂一句"忽略之前的指令"就可能绕过安全护栏;精心构造的对抗样本能让图像分类器把"熊猫"认成"长臂猿"。安全是部署工程师"上线前最后一道、也最容易被跳过的一道工序"——因为它平时看不见收益,直到出事。
一、部署层面的威胁面清单
| 威胁 | 攻击方式 | 后果 | 暴露面 |
|---|---|---|---|
| 模型窃取 | 重复查询、蒸馏攻击(用线上输出训练替身模型) | 模型 IP 流失 | 公开推理 API |
| 提示注入(prompt injection) | 在用户输入里夹带指令操纵 LLM | 绕过护栏、泄露信息 | LLM API |
| 对抗样本(adversarial) | 对输入做人眼无感的扰动 | 输出错误、绕过审核 | 任何模型 API |
| 数据投毒(data poisoning) | 污染训练/微调数据 | 模型行为被操纵(后门) | 训练管线 |
| 供应链攻击 | 恶意权重、被植入后门的依赖 | 任意代码执行(pickle) | 模型加载、依赖 |
模型窃取的现实性
研究已证明:用 6.4 万次查询就能蒸馏出一个 10 亿参数的模型(Knockoff Nets, 2018),而一个 10B 模型只要几万次查询就能被偷走可用能力。对高价值模型,限流 + 输入混淆 + 水印是基本防线。
二、API 安全基线
1. 认证与授权
| 方案 | 强度 | 适用 |
|---|---|---|
| API Key | 弱(可泄露) | 内部服务、低价值 |
| OAuth 2.0 / JWT | 中(可撤销、可审计) | 面向业务方 |
| mTLS | 强(双向证书) | 高安全内部网络 |
最低要求:所有在线推理接口必须认证,禁止匿名访问;Key 支持按调用方隔离配额(配合限流)。
2. 限流与防滥用
- 按用户/IP 令牌桶限流,既防 DDoS 也防模型窃取(攻击者需要大量查询);
- 请求体大小限制(防止超大 payload 打爆序列化);
- 按调用方记录审计日志:谁、何时、调用了哪个模型、返回码——审计日志是事后追责的唯一依据。
3. 输入校验与输出过滤
- 输入:schema 校验(字段、类型、长度)、内容长度限制、可疑模式检测(如注入特征字符串);
- 输出(LLM):内容审核过滤器(不当内容拦截)、敏感信息脱敏、可信度置信阈值。
4. 错误信息收敛
永远不要把框架版本、堆栈、CUDA 信息透给调用方——统一 code + message + trace_id(详见 服务化与推理 API 的错误码设计)。
三、网络隔离与部署边界
text
公网
│(仅网关暴露)
▼
API 网关(WAF + 限流 + 认证)
│(私有网络 VPC 内网)
▼
推理服务集群(无公网 IP,仅内网可达)
│
▼
模型存储 / 特征存储(私密,仅服务账号可读)- 推理服务不下公网:业务方通过网关或内网访问;
- 模型文件与密钥放密钥管理系统(如 Vault/KMS),不进镜像、不进代码仓库;
- 最小权限:服务账号只读模型、只写日志,不给多余权限。
四、隐私保护
| 手段 | 强度 | 成本 | 适用 |
|---|---|---|---|
| PII 检测与脱敏 | 中 | 低 | 输入输出里的身份证/手机号/地址等 |
| 本地/边缘推理 | 高(数据不出端) | 高(部署成本) | 强隐私场景 |
| 联邦学习 | 高 | 高 | 分布式数据协同训练 |
| 差分隐私 | 中高 | 中 | 统计发布 |
| 同态加密 | 理论强 | 极高(慢 100~1000 倍,不实用) | 极少场景 |
别被同态加密忽悠
全同态加密(FHE)能"在密文上直接推理",但当前开销是明文推理的 2~3 个数量级,工程上不实用。生产系统用"数据脱敏 + 本地推理 + 传输加密"更实际。
隐私工程实践要点:
- 日志分级:请求日志默认脱敏(去 PII),按需开"全量"审计模式;
- 数据保留策略:推理日志保留期明确(如 30 天),到期自动清理;
- 传输与存储加密:TLS 全程 + 敏感特征列加密存储。
五、合规要点
1. 数据合规
- GDPR / 个保法:处理个人信息需告知、授权、可删除(用户的"被遗忘权"要能落地——删除其推理数据);
- 数据出境:训练与推理数据的跨境流动受监管,跨境服务需评估(《数据出境安全评估办法》);
- 地域合规:数据主权(如欧洲要求数据留在欧盟,中国要求关键数据境内处理)直接决定云上部署区域。
2. 模型与开源合规
- 权重许可证差异:同架构不同权重(如 Llama 2 community license vs 商业授权 vs 非商业授权)使用场景差异巨大——"代码开源"不等于"权重开源";
- 开源软件合规:ONNX Runtime、TensorRT 等组件的许可证(Apache-2.0、MIT、商用条款)要过法务;
- 训练数据合规:模型效果越好,训练数据来源越敏感——著作权与肖像权问题日益突出。
合规最小动作:上线前让法务/合规过一遍"数据流图"(谁的数据、经过谁、存到哪、保留多久),形成书面记录。
六、LLM 特有安全
| 风险 | 防御 |
|---|---|
| 提示注入(direct/indirect) | 输入清洗、指令边界明确(system prompt 分隔)、LLM 自带护栏 + 外部策略过滤器 |
| 越狱(jailbreak) | 多模型冗余检测、输出审核、对抗性 red-team 测试 |
| 数据泄露(prompt 里带敏感数据) | 输入 PII 检测、禁止关键数据进 prompt、审计日志 |
| 间接注入(网页/文档内容夹带指令) | 对"外部内容"与"用户指令"做来源隔离与标记 |
实践经验:把安全护栏放在模型之外(网关层的输入/输出过滤器),因为模型本身的护栏可被绕过。同时定期做 red-team(用攻击手段实测护栏有效性)。
七、安全 Checklist(上线前过一遍)
text
□ 认证:无匿名访问,Key/JWT/mTLS 就位
□ 授权:每个调用方有配额,超限 429
□ 限流:按用户/IP 令牌桶,防刷防窃
□ 输入校验:schema、长度、注入特征检查
□ 输出过滤:LLM 内容审核、PII 脱敏
□ 错误收敛:不泄露堆栈/版本/框架
□ 网络隔离:服务无公网 IP,VPC 内网
□ 密钥管理:KMS/Vault,不进代码仓库
□ 审计日志:谁调用、何时、结果,脱敏存储
□ 数据保留:日志/请求保留期明确
□ 合规评审:数据流图过法务
□ 模型来源:权重哈希校验,供应链可信
□ 监控告警:异常调用模式(高频单 key 查询=窃取信号)见 /concepts/monitoring权衡与取舍
| 决策点 | 选项 | 怎么选 |
|---|---|---|
| 认证强度 | API Key vs OAuth vs mTLS | 内部低价值用 Key,外部高价值用 OAuth/mTLS |
| 防护位置 | 模型内护栏 vs 模型外过滤 | 外置优先,模型内护栏只当第二道 |
| 数据本地化 | 云上(省事) vs 本地(隐私) | 强隐私/合规场景选本地 |
| 日志详略 | 全量审计 vs 脱敏采样 | 默认脱敏采样,重要系统开审计 |
| 隐私技术 | 脱敏+本地 vs 同态加密 | 别碰同态加密,性价比太低 |
一句话总结:模型服务安全 = 认准威胁(窃取/注入/对抗)+ 守住基线(认证限流隔离)+ 管好数据(脱敏合规)——安全不产生 KPI,但一次泄露就够抵消你一年的优化成果。
延伸阅读
- 服务化与推理 API —— API 契约、错误收敛与生命周期的基础
- 监控与可观测性 —— 异常调用模式与安全告警的监控视角
- MLOps 部署流水线 —— 供应链与模型来源可信的流程保障
- 常见陷阱与反模式 —— 安全疏漏导致的经典事故
- 模型格式与转换 —— SafeTensors 与权重供应链安全