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 镜像供应链信任边界架构图
下图展示了从上游公共仓库到运行时集群的完整信任边界划分,以及各边界上的安全控制点:
1.5 信任模型设计原则
基于上述威胁模型与信任边界划分,镜像供应链的信任模型应遵循以下五项核心原则:
- 零信任默认拒绝:所有镜像来源(包括内部仓库)在未经验证前视为不可信,每次拉取均需验证签名与摘要。
- 最小权限分发:RBAC 策略确保每个用户/流水线仅能访问其任务所需的镜像命名空间与标签范围。
- 不可变镜像链:一旦镜像被标记为“已批准”,其内容与标签均不可变更,防止版本回滚或篡改。
- 可审计追溯:所有镜像的拉取、推送、签名、扫描操作均记录不可篡改的审计日志,支持事后溯源。
- 策略即代码:信任策略(如“必须携带 SBOM”、“漏洞等级不得高于 High”)以代码形式管理,集成至 CI/CD 流水线。
核心公式:镜像信任度 = 签名验证通过 × 摘要匹配 × 漏洞扫描通过 × 策略合规 × 来源可信度。任一因子为 0,则整体信任度为 0。
1.6 镜像供应链信任模型示意图
下图展示了信任模型的核心组件及其交互关系,强调策略引擎与 RBAC 在信任决策中的中心地位: