用途
本技能用于保护AI模型供应链,防止模型和推理组件被篡改、依赖被入侵,以及不受信任的构件被晋升到生产环境。主要覆盖:从Hugging Face、TensorFlow Hub等公共注册表拉取预训练模型;为生产部署构建模型服务容器;建立跨环境的ML构件晋升信任策略;响应影响ML依赖的供应链事件;满足AI系统的SLSA或SOC2合规要求。
主要能力
- 模型签名:使用cosign v2+生成密钥对,对OCI打包的模型镜像执行密钥签名或无密钥(Sigstore OIDC)签名,并用cosign verify验证;也可对safetensors等权重文件直接做blob签名与验证。
- SLSA与来源证明:给出SLSA各级别对模型构建的要求示例,展示在GitHub Actions中训练模型、用oras推送OCI构件、用syft生成CycloneDX SBOM、再用cosign签名与attest的流程;强调来源证明应由受支持的reusable workflow在jobs.<job>.uses层级生成,而非普通步骤。
- 模型卡片:提供model-card.yaml示例,记录模型详情、训练数据来源与哈希、训练配置、构建环境、构建ID与提交、性能指标、漏洞扫描状态、SBOM引用及已知限制。
- 注册表扫描:用trivy扫描服务镜像CVE,用syft生成SPDX SBOM,用grype扫描SBOM漏洞并在critical时失败,用fickling检查pickle模型文件;并给出夜间定时扫描与签名复验的CI流水线示例。
- 晋升策略执行:提供Python脚本model_promotion_gate.py,逐项检查签名有效、无严重CVE、SBOM已附加、模型卡片存在,任一失败即阻止晋升;脚本自身提示仍需策略与内容校验及授权晋升。
- 运行时加固:以非root运行推理容器、只读根文件系统、禁止权限提升、丢弃全部capabilities、只读挂载模型卷、限制出口流量、对未签名拉取告警,并优先使用safetensors。另给出Kyverno ClusterPolicy示例,在ml-serving命名空间强制校验模型镜像签名。
- 故障排查:列出签名验证失败、来源证明缺失、基础镜像CVE、pickle反序列化警告、无密钥验证失败、模型卡片缺失等问题的原因与处理建议。
使用方式
需预先安装cosign v2+、syft、crane或skopeo,使用支持签名的容器注册表(GHCR、ECR、ACR、Artifact Registry),并具备可生成来源证明的CI/CD流水线。实际操作按签名、生成SBOM与证明、扫描、晋升门禁、准入控制与运行时加固的顺序组合使用文中命令与YAML片段。
适用场景
适用于ML平台与DevOps/安全团队在模型从训练到部署的全链路上建立可验证的信任。
限制
- 所有产物、身份与分数均为虚构示例;需将可变标签解析为摘要,并对同一摘要完成验证、扫描与晋升,否则各检查可能针对不同构件。
- 签名只证明签名者与完整性,不证明权重或训练数据安全;证明存在也不充分,需解码并校验predicate schema、subject摘要、构建者/源/依赖策略及模型卡片实质内容;通用custom证明不等于模型卡片,YAML也不自动是工具要求的JSON predicate。
- 训练工作流需补充经审查的工具安装、注册表登录、真实推送输出与jobs级可复用来源证明接线;Kubernetes清单为不完整片段,缺少selector/template标签。
- SLSA要求随规范版本与轨道而异,双人评审并非通用的Build L3要求;目录SBOM扫描不会清点所有已安装训练依赖。
- 应固定经审查的工具与action版本,并限制扫描器、网络与资源使用;仅限授权范围使用,破坏性步骤先非生产测试。
- 本资料为文档导入,上游脚本与模板未随附;Prerequisites、收费或平台支持等未提供信息暂未提供。