Sigstore镜像供应链信任边界架构适配与项目部署 - 第1节

1.1 软件供应链安全现状与挑战

现代软件开发高度依赖开源组件、第三方镜像与自动化流水线,软件供应链的攻击面急剧扩大。根据 Sonatype 2023 年报告,过去三年针对供应链的攻击增长了 742%,攻击者不再直接攻击应用代码,而是将恶意负载植入构建依赖、容器镜像或 CI/CD 工具链中。

1.1.1 典型攻击场景

攻击类型 攻击向量 真实案例
依赖混淆 上传同名恶意包到公共仓库,利用私有包解析优先级漏洞 PyPI / npm 依赖混淆攻击
镜像投毒 在 Docker Hub 等公共仓库上传带后门的容器镜像 Docker Hub 恶意镜像事件
构建管道劫持 攻破 CI/CD 凭证,篡改构建产物或签名 SolarWinds Orion 供应链攻击
元数据篡改 修改 SBOM、签名或 attestation 记录 Codecov Bash Uploader 事件
关键洞察: 传统安全模型依赖“信任但验证”,但在供应链场景中,上游组件、构建工具、镜像仓库和部署平台之间缺乏可审计的信任传递机制。攻击者一旦突破任意一环,下游消费者无法区分合法产物与篡改产物。

1.2 Sigstore 项目背景与定位

Sigstore 是由 Google、Red Hat、Purdue 大学等联合发起的开源项目,旨在为软件供应链提供免费的代码签名与验证基础设施。其核心目标是通过无密钥签名、透明日志和开放证书颁发,消除传统 PKI 在软件分发中的高成本和密钥管理痛点。

1.2.1 Sigstore 核心组件

  • Fulcio —— 短期证书颁发机构(CA),基于 OIDC 身份签发代码签名证书,证书有效期通常为 10 分钟。
  • Rekor —— 透明日志服务器,记录所有签名元数据,提供不可篡改的审计线索。
  • Cosign —— 容器镜像签名与验证工具,支持对镜像、blob、SBOM 和 attestation 进行签名。
  • Gitsign —— Git 提交签名工具,将 Sigstore 签名能力扩展到 Git 工作流。
设计哲学: Sigstore 采用“无密钥”模式——签名者无需管理长期私钥,每次签名通过 OIDC 身份(如 GitHub、Google、Microsoft 账号)从 Fulcio 获取短期证书。私钥仅存在于内存中,签名完成后立即销毁,极大降低密钥泄露风险。

1.3 信任边界概念与架构适配

信任边界(Trust Boundary)是安全架构中定义可信区域与不可信区域之间的分界线。在镜像供应链中,信任边界从代码提交、构建、签名、存储到部署的每个环节都需要明确定义:谁可以签名?什么条件下签名有效?验证方如何确认签名链的完整性?

1.3.1 传统信任模型 vs Sigstore 信任模型

维度 传统模型 Sigstore 模型
密钥管理 长期私钥,需安全存储与轮换 短期证书,无密钥存储
身份绑定 基于 X.509 证书链 基于 OIDC 身份 + Fulcio 证书
审计能力 依赖日志系统,易被篡改 Rekor 透明日志,不可篡改
验证复杂度 需要维护根证书和 CRL 仅需信任 Sigstore 根 CA
信任边界 静态、中心化 动态、去中心化、可审计
Sigstore 镜像供应链信任边界架构 开发与构建 代码提交 (Git) OIDC 身份认证 CI/CD 构建 生成镜像 / SBOM Cosign 签名 Fulcio 短期证书 Rekor 记录 透明日志写入 信任边界 分发与部署 镜像仓库 存储签名 + 镜像 策略引擎 验证签名 + 身份 Rekor 查询 验证透明日志 K8s 部署 策略准入控制 信任边界说明 1. 左侧为可信构建域 身份由 OIDC 保证 2. 签名跨越信任边界 进入不可信分发域 3. 右侧验证域通过 Rekor + Fulcio 重建 签名链可信性 4. 任何篡改都会导致 Rekor 日志不一致 或证书验证失败 5. 部署策略可配置 拒绝未签名镜像 推送

1.4 课程目标与学习路径

本课程旨在帮助学员建立从理论到实践的 Sigstore 镜像供应链信任边界架构能力。完成本课程后,学员将能够:

  1. 理解信任边界模型 —— 掌握 Sigstore 在镜像供应链中的信任传递机制,区分传统 PKI 与无密钥签名的架构差异。
  2. 独立部署 Sigstore 组件 —— 在 Kubernetes 集群中部署 Fulcio、Rekor、Cosign 和 Gitsign,配置高可用与持久化存储。
  3. 实现镜像签名与验证 —— 使用 Cosign 对容器镜像进行签名,集成到 CI/CD 流水线(GitHub Actions / GitLab CI / Jenkins)。
  4. 构建策略准入控制 —— 在 Kubernetes 中配置 OPA/Gatekeeper 或 Kyverno 策略,强制要求部署镜像必须经过 Sigstore 签名验证。
  5. 适配企业信任边界 —— 针对私有 CA、离线环境、多集群场景进行架构适配,设计符合企业合规要求的签名策略。
前置要求: 学员应具备基本的 Kubernetes 集群操作能力(kubectl、Helm)、容器镜像构建与推送经验,以及 CI/CD 流水线的基本概念。无需预先了解 Sigstore 或代码签名原理。

1.4.1 课程章节概览

模块 核心内容 实战产出
1. 课程导论 供应链安全现状、Sigstore 架构、信任边界概念 理解信任边界模型
2. Sigstore 组件部署 Fulcio + Rekor + Cosign 安装与配置 可用的 Sigstore 栈
3. 镜像签名实战 Cosign 签名、验证、SBOM 签名 签名后的镜像仓库
4. CI/CD 集成 GitHub Actions / GitLab CI 流水线签名 自动化签名流水线
5. 策略准入控制 Kyverno / OPA 策略强制验证 K8s 准入控制策略
6. 企业架构适配 离线部署、私有 CA、多集群信任 企业级适配方案
课程学习路径 理论基础 信任边界模型 组件部署 Fulcio/Rekor 签名实战 Cosign 签名 CI/CD 集成 自动化流水线 策略控制 准入验证 企业架构适配贯穿全程 每个模块均包含离线部署、私有 CA、多集群信任的适配方案

1.5 本章小结