Skip to content

最佳实践:检查清单与反模式 ​

9.1 落地检查清单 ​

工件与格式

  • [ ] 默认只接受 safetensors / GGUF 等数据格式;pickle 系格式必须过扫描器 + weights_only=True 加载。
  • [ ] 所有进入生产的工件有 merkle 清单 + 签名;部署节点加载前完成验签与逐文件对比。
  • [ ] 训练 CI 使用 OIDC 临时凭据签名,无私钥长期驻留;扫描与签名使用不同凭据。
  • [ ] 模型目录含数据清单(来源、hash、许可、PII 扫描结论),随版本永久保存。

数据与后门

  • [ ] 入库数据跑 PII / 秘密 / 近重复扫描;高风险来源进隔离区。
  • [ ] 发布前跑 canary 触发率与红队探针集,结果与基线对比存档。
  • [ ] 触发器库覆盖业务语言与输入模态;canary 样本量做过功效分析(能区分运营上要区分的比例差)。

MCP 工具链

  • [ ] 批准单元是"代码 digest + 描述快照 + 版本",不是 Server 名字。
  • [ ] 运行时校验三件事:版本锁定、代码 hash、描述 diff;diff 处置策略(阻断/重审批)成文。
  • [ ] 第三方 Server 默认不可信档位:沙箱执行 + egress 白名单 + 动作分级确认。

运行时与资产

  • [ ] 工具调用在沙箱内执行(gVisor/Firecracker/托管沙箱按威胁模型选型)。
  • [ ] 出站流量走白名单代理,DNS 层兜底;文件系统只读挂载 + 临时写层。
  • [ ] 核心模型出厂前嵌水印(strength > 最粗发布量化步长)、指纹集存档。
  • [ ] API 侧查询限流 + 抽取行为画像;批量导出双人审批。

运营与合规

  • [ ] 扫描器误报有白名单运营流程(否则团队会在两周内绕过扫描)。
  • [ ] 审计日志独立账号、只增不改;事件响应剧本每半年演练一次。
  • [ ] EU AI Act 技术文档由门禁日志聚合生成;标识办法的隐式标识与日志留存合规。

9.2 常见反模式 ​

"平台扫过了就等于安全"。 HF 的 ClamAV + pickle 扫描是 best-effort 滤网(官方文档原文),nullifAI 事件证明存在系统性逃逸面。平台扫描是第一道,不是最后一道。

把验签写进加载进程。 torch.load 之前才想起来"校验一下文件"的代码,跑在被攻击者已经能改文件的进程里。验签必须是独立组件(init 容器 / sidecar / 部署系统),失败即不启动。

扫描器接了但误报淹没人就关掉。 96% 量级的误报是常态而非失败;没有白名单运营的扫描部署会在一个月内被开发者绕过。正确姿势:从宽进严出开始(先 audit 模式跑两周收集白名单,再转 enforce)。

"用了 safetensors,所以不用管后门。" 格式安全与权重可信是两个独立问题。safetensors 消掉的是恶意代码类威胁,投毒类威胁一分没少——canary 与行为评测不能省。

MCP 批准只看名字和描述截图。 rug pull 的全部前提就是"客户端只记名字"。没有 digest 与描述快照的批准,等于没有批准。

水印 strength 拍脑袋。 strength 小于发布链路的量化步长,水印在第一次导出时就物理消失(demo 实测:步长 1.0 下 strength 0.05 归零)。先量化分析发布链路的扰动上界,再定 strength。

canary 触发率只报均值不报样本量。 100 个 canary 上 0/100 触发与 1000 个上 4/1000 触发信息量完全不同;报告必须带置信区间,阈值必须做功效分析。

合规审计前突击补录。 门禁日志聚合生成报告 vs 手工造报告,前者一小时后者三周,而且前者经得起抽查。把合规当门禁的副产品,不要当独立的文书工程。

9.3 决策速查表 ​

落地时最常见的十一个"怎么办",按场景速查:

场景首选动作底线
业务要紧急上一个社区模型走拉取代理,扫描 + 来源审查,先发 shadow 不发流量不跳过验签
pickle 格式是上游唯一选择扫描通过 + weights_only 加载 + 记录例外审批不在生产容器直接 torch.load 未扫文件
扫描误报淹没队列转 audit 模式两周收集白名单,再转 enforce不直接关闭扫描
MCP Server 请求更新工具重跑审批流程,对比描述快照与代码 digest不接受"只是小改动"口头确认
核心模型要开源发布嵌水印(strength > 量化步长)→ 再签名不先签名后水印
发现疑似后门行为canary 全量集复测 + 红队探针对比基线不用"再跑几个正常样本"下结论
供应商给不出签名降级到隔离环境 + 全量行为评测不因为"是大厂"免检
API 流量疑似被蒸馏限流 + 指纹探测 + 输出扰动分级不在无证据时指控客户
沙箱选型定不下来先 gVisor 跑通,高危工具迁 Firecracker不裸奔等"选完型"
合规审计要技术文档从门禁日志聚合,一次脚本出稿不手工补录
事件响应找不到受影响面回滚 merkle 清单定位下游(事前没清单就先补清单)不只改密码不查工件

9.4 一句话总结 ​

供应链安全的工程本质是把"信任"从人转移到可验证的工件上:每一次加载前有验签,每一次批准有快照,每一次执行有沙箱,每一次泄露能举证——剩下的问题是运营节奏,不是技术方案。

Released under CC-BY-SA-4.0 License.