1. 供应链信任基础:镜像供应链定义、信任边界概念、供应链安全威胁模型

1.1 镜像供应链定义

镜像供应链(Mirrored Supply Chain)是指在软件交付与基础设施即代码(IaC)场景中,通过内部私有仓库、制品库或代理缓存,对外部开源组件、容器镜像、基础镜像进行“全量复制+持续同步”的受控分发体系。其核心特征包括:

  • 全量复制:将上游公共仓库(如 Docker Hub、GitHub Container Registry、Maven Central)的指定命名空间或标签范围完整拉取至内部平台。
  • 版本锁定:通过摘要(digest)或签名(Sigstore/Cosign)固定镜像内容,防止篡改或漂移。
  • 访问控制:仅授权用户/流水线可从内部镜像仓库拉取,阻断对外部源的直接依赖。
  • 持续同步:按策略(定时/事件触发)增量同步上游更新,同时保留历史版本。
关键指标:镜像供应链的成熟度可通过“镜像来源可追溯率”、“镜像签名覆盖率”、“镜像漏洞扫描通过率”三个指标衡量。

1.2 信任边界概念

信任边界(Trust Boundary)是安全架构中区分“可信区域”与“不可信区域”的逻辑或物理分界。在镜像供应链中,信任边界通常划分为以下层次:

信任区域 范围 信任假设 风险等级
上游公共仓库 Docker Hub、Quay.io、GitHub Container Registry 不可信,可能被投毒、劫持或删除 高
镜像代理/缓存层 内部代理仓库(Harbor、Nexus、Artifactory) 半可信,需验证签名与摘要 中
内部镜像仓库 企业私有 Registry,经 RBAC 与策略控制 可信,但需持续审计 低
运行时集群 Kubernetes 集群、容器运行时 可信,但需准入控制 低

信任边界的设计原则是“最小化信任窗口”——只在经过验证的边界点授予信任,并在每次跨越边界时执行验证(Verify at Every Boundary)。

实践建议:在内部镜像仓库与运行时集群之间,应部署准入控制器(如 OPA/Gatekeeper、Kyverno),强制要求镜像携带有效签名和 SBOM(软件物料清单)才能运行。

1.3 供应链安全威胁模型

镜像供应链面临的主要威胁可归纳为以下六类,每类对应特定的攻击向量与缓解措施:

威胁类别 攻击向量 典型场景 缓解措施
镜像投毒 恶意代码注入基础镜像或依赖层 攻击者上传含后门的 Node.js 基础镜像 镜像签名验证、摘要锁定、漏洞扫描
依赖混淆 利用内部包名在公共仓库上传同名恶意包 将恶意包命名为 internal-sdk 上传至 PyPI 私有仓库优先、命名空间隔离、包来源验证
镜像劫持 中间人攻击篡改传输中的镜像层 在 CI/CD 流水线与仓库间拦截镜像推送 TLS/mTLS 传输加密、摘要校验、Notary 签名
版本回滚 强制使用含已知漏洞的旧版本镜像 回退到未修复 Log4j 漏洞的镜像版本 版本冻结策略、不可变标签、准入控制
供应链混淆 利用多级依赖链隐藏恶意组件 在间接依赖中植入挖矿脚本 SBOM 生成与审计、依赖树可视化、策略引擎
凭证泄露 镜像仓库凭据被窃取导致未授权访问 CI 变量中明文存储 Registry 密码 短期令牌、Vault 集成、RBAC 最小权限
注意:镜像投毒与依赖混淆是当前供应链攻击中增长最快的两类,2023 年 CNCF 安全报告指出超过 60% 的容器安全事件与基础镜像或直接依赖的恶意组件有关。

1.4 镜像供应链信任边界架构图

下图展示了从上游公共仓库到运行时集群的完整信任边界划分,以及各边界上的安全控制点:

镜像供应链信任边界架构 镜像供应链信任边界架构 上游公共仓库 Docker Hub / Quay.io 不可信区域 镜像代理/缓存层 Harbor / Nexus 半可信区域 内部镜像仓库 企业私有 Registry 可信区域 运行时 集群 安全控制点:签名验证 → 摘要锁定 → 漏洞扫描 → 准入控制 → 运行时监控 边界 1 边界 2 边界 3 各边界主要威胁 边界 1:镜像投毒、依赖混淆 边界 2:镜像劫持、版本回滚 边界 3:凭证泄露、供应链混淆 缓解:签名 + 摘要 + SBOM + 准入控制 + 最小权限

1.5 信任模型设计原则

基于上述威胁模型与信任边界划分,镜像供应链的信任模型应遵循以下五项核心原则:

  1. 零信任默认拒绝:所有镜像来源(包括内部仓库)在未经验证前视为不可信,每次拉取均需验证签名与摘要。
  2. 最小权限分发:RBAC 策略确保每个用户/流水线仅能访问其任务所需的镜像命名空间与标签范围。
  3. 不可变镜像链:一旦镜像被标记为“已批准”,其内容与标签均不可变更,防止版本回滚或篡改。
  4. 可审计追溯:所有镜像的拉取、推送、签名、扫描操作均记录不可篡改的审计日志,支持事后溯源。
  5. 策略即代码:信任策略(如“必须携带 SBOM”、“漏洞等级不得高于 High”)以代码形式管理,集成至 CI/CD 流水线。
核心公式:镜像信任度 = 签名验证通过 × 摘要匹配 × 漏洞扫描通过 × 策略合规 × 来源可信度。任一因子为 0,则整体信任度为 0。

1.6 镜像供应链信任模型示意图

下图展示了信任模型的核心组件及其交互关系,强调策略引擎与 RBAC 在信任决策中的中心地位:

镜像供应链信任模型 镜像供应链信任模型 策略引擎 OPA / Kyverno / Sigstore 镜像签名 Cosign / Notary 镜像摘要 SHA256 锁定 漏洞扫描 Trivy / Grype 准入控制 允许/拒绝 RBAC 授权 用户/流水线 审计日志 不可篡改记录 信任决策流程:输入验证 → 策略引擎评估 → 输出授权/拒绝/审计

1.7 本章小结