1. 课程导论:镜像供应链信任边界的概念、为什么需要信任边界、课程目标与学习路径

1.1 镜像供应链信任边界的概念

在云原生与容器化部署日益普及的今天,软件交付的核心载体已从传统的二进制包转变为容器镜像。一个镜像从代码提交、构建、存储、分发到最终部署运行,会经历多个环节,形成一条完整的镜像供应链。信任边界(Trust Boundary)是指在该供应链中,数据、元数据或镜像本身从一个受控、可信的环境流向另一个环境时,所跨越的安全分界点。

信任边界并非物理防火墙,而是逻辑上的安全假设切换点。在边界内部,我们默认实体(如构建系统、镜像仓库)是可信的;一旦跨越边界,就必须重新验证镜像的完整性与来源的合法性。镜像供应链中的典型信任边界包括:

  • 开发环境 → 构建系统:代码与 Dockerfile 从开发者本地提交至 CI/CD 系统。
  • 构建系统 → 镜像仓库:构建完成的镜像被推送至私有或公有 Registry。
  • 镜像仓库 → 部署环境:Kubernetes 集群或生产服务器从仓库拉取镜像并运行。
  • 基础镜像 → 应用镜像:应用镜像依赖的上游基础镜像(如 Alpine、Ubuntu)的来源可信度。
关键定义: 镜像供应链信任边界是镜像在流转过程中,安全策略、验证机制和信任假设发生变化的逻辑分界线。每一条边界都是潜在的攻击面。

1.2 为什么需要信任边界

没有明确的信任边界,镜像供应链将面临以下严重风险:

风险类别 具体威胁 后果
镜像投毒 攻击者向公共仓库上传包含恶意代码的镜像,或篡改私有仓库中的镜像层 容器运行时执行恶意指令,数据泄露或挖矿
依赖混淆 利用内部包名在公共仓库上传同名恶意基础镜像,被构建系统自动拉取 供应链污染,所有下游镜像均受影响
构建劫持 CI/CD 管道被入侵,在构建过程中注入后门 镜像在构建阶段即被植入恶意代码
部署篡改 镜像在传输过程中被中间人替换,或仓库凭证泄露导致镜像被替换 生产环境运行非预期镜像

通过定义信任边界,团队可以:

  • 明确安全责任域:每个边界两侧的团队清楚自己的安全职责。
  • 实施分级验证:在关键边界部署签名验证、漏洞扫描、准入控制等机制。
  • 缩小攻击面:将信任最小化,默认不信任任何跨越边界的镜像或元数据。
  • 实现可审计性:每条边界上的验证动作均可记录,形成完整的供应链溯源链。
常见误区: 很多团队认为“只要使用私有仓库就安全了”。实际上,私有仓库只是信任边界的一部分,如果构建系统到仓库之间没有签名验证,仓库内部镜像仍可能被篡改或误用。

1.3 镜像供应链信任边界全景图

下图展示了镜像从开发到部署的完整流转路径,以及其中关键的信任边界节点:

镜像供应链信任边界全景图 镜像供应链信任边界全景图 开发环境 代码 / Dockerfile CI/CD 构建系统 镜像构建 & 签名 镜像仓库 存储 & 分发 K8s 部署环境 运行 & 审计 边界 1 边界 2 边界 3 基础镜像源 Docker Hub / 内部源 边界 0 说明: 边界 0:基础镜像引入时的信任验证;边界 1:代码进入构建管道;边界 2:镜像推送至仓库;边界 3:镜像拉取至生产环境。 每条边界都需要独立的签名验证、漏洞扫描和准入策略。

1.4 课程目标

本课程旨在帮助学员建立完整的镜像供应链信任边界防护体系,具体目标如下:

目标维度 具体内容 交付成果
理论认知 理解镜像供应链的组成、信任边界模型、威胁模型 信任边界全景图与风险清单
工具实践 掌握 Cosign / Notary / Sigstore 签名工具链、Kyverno / OPA 准入控制、Trivy / Grype 漏洞扫描 可运行的 CI/CD 集成流水线
架构设计 设计多层信任边界策略:构建签名、仓库验证、部署准入 信任边界架构设计文档
应急响应 建立镜像供应链异常检测与溯源机制 事件响应剧本与溯源看板

1.5 学习路径与章节结构

课程共分为 30 章,按以下路径循序渐进:

课程学习路径图 课程学习路径图(30 章) 阶段 1:基础概念 第 1-5 章 阶段 2:工具链实践 第 6-15 章 阶段 3:架构设计 第 16-23 章 阶段 4:实战案例 第 24-30 章 阶段说明: • 阶段 1:信任边界模型、威胁建模、安全假设分析。 • 阶段 2:Cosign 签名、Notary 集成、Kyverno 准入、Trivy 扫描、SBOM 生成。 • 阶段 3:多层信任边界策略设计、零信任架构在镜像供应链中的落地。 • 阶段 4:基于真实场景的端到端部署案例,含故障注入与应急响应演练。

1.6 学习建议与前置要求

学习建议: 建议学员按照章节顺序学习,每章结束后完成对应的实验练习。第 6-15 章的工具实践部分需要具备基本的 Docker 和 Kubernetes 操作能力。第 24-30 章的实战案例建议在独立的测试集群中操作,避免影响生产环境。

前置知识要求:

  • 熟悉 Docker 镜像构建与推送基本命令。
  • 了解 Kubernetes 基本概念(Pod、Deployment、Namespace)。
  • 具备基本的 Linux 命令行操作能力。
  • 了解 CI/CD 流水线的基本流程(如 GitLab CI、GitHub Actions)。

实验环境要求:

  • 一台可运行 Docker 的 Linux 主机(推荐 Ubuntu 22.04+)。
  • 一个 Kubernetes 集群(可使用 Minikube 或 Kind 本地搭建)。
  • 一个私有镜像仓库(Harbor 或 Docker Registry)。
  • Git 仓库与 CI/CD 平台(GitLab / GitHub / Jenkins 任选其一)。