1. 课程导论:为什么集群升级前必须做镜像安全水位巡检?Sigstore 透明日志在其中的核心作用
1.1 集群升级:风险与机遇并存的操作
Kubernetes 集群升级是运维中最常见也最具风险的操作之一。升级不仅仅是 kube-apiserver 或 kubelet 的版本变更,它意味着整个控制面、节点组件以及工作负载的重新调度与启动。在这个过程中,镜像拉取是每次 Pod 重建的必经环节。
如果集群中运行着大量未经过安全验证的镜像——例如包含已知漏洞、被植入后门、签名失效或来源不明的镜像——升级操作将直接放大攻击面。攻击者可能利用升级窗口,通过恶意镜像实现容器逃逸、数据窃取或持久化控制。
1.2 镜像安全水位巡检:升级前的“安全体检”
镜像安全水位巡检是指在集群升级前,对当前集群中所有运行态和待调度镜像进行系统性安全检查。它不同于日常的镜像扫描,而是聚焦于升级场景下的特殊风险。
| 巡检维度 | 检查内容 | 升级场景下的特殊意义 |
|---|---|---|
| 漏洞扫描 | CVE 列表、严重/高危漏洞数量 | 升级后镜像重新拉取,可能拉取到带漏洞的新版本标签 |
| 签名验证 | 镜像是否携带有效 Sigstore 签名 | 确保镜像在升级过程中未被篡改或替换 |
| 来源可信度 | 镜像仓库地址、组织归属、是否来自可信注册表 | 防止升级时拉取到伪造仓库中的恶意镜像 |
| 软件物料清单 | SBOM 完整性、依赖关系 | 升级后快速定位受影响组件,缩短应急响应时间 |
| 配置漂移 | 镜像 digest 与预期是否一致 | 检测镜像是否被静默替换(tag 不变但 digest 变化) |
巡检的最终目标是生成一份安全水位报告,明确标记出“阻断级”和“警告级”镜像,并给出修复建议。只有通过巡检的集群,才允许进入升级流程。
1.3 Sigstore 透明日志:不可篡改的镜像安全凭证
Sigstore 是一个面向软件供应链的签名与验证框架,其核心组件包括 Cosign(签名工具)、Fulcio(证书颁发机构)和 Rekor(透明日志)。在镜像安全水位巡检中,Rekor 透明日志扮演着不可替代的角色。
透明日志的核心机制是:先写日志,再信任镜像。开发者使用 Cosign 对镜像签名后,签名记录和证书会被提交到 Rekor 透明日志。日志使用 Merkle 树结构存储,任何对历史记录的篡改都会破坏树根哈希的一致性。巡检工具在升级前查询 Rekor,即可验证镜像签名是否在签名时有效、证书是否被吊销、镜像 digest 是否与日志记录一致。
1.4 为什么升级前必须结合 Sigstore 透明日志?
仅做漏洞扫描是不够的。漏洞扫描只能发现已知的 CVE,但无法检测镜像是否被定向篡改或供应链投毒。Sigstore 透明日志提供了以下升级场景独有的安全能力:
- 防回滚攻击: 攻击者可能将镜像 tag 指向一个旧版本(含已修复漏洞)。透明日志记录了每次签名的 digest,巡检时发现 digest 不匹配即可阻断。
- 防证书欺诈: 即使攻击者伪造了签名证书,只要证书未在 Fulcio 中注册或已被吊销,Rekor 日志中的验证记录会暴露异常。
- 防静默替换: 镜像仓库中的镜像可能被管理员或恶意进程静默替换。透明日志提供了不可篡改的“黄金记录”,巡检时强制比对。
- 合规审计: 金融、医疗等合规行业要求所有生产镜像必须经过签名验证。升级前的透明日志巡检是满足合规审计的必要步骤。
1.5 课程学习路径与预期收获
本课程将围绕“升级前巡检”这一核心场景,系统讲解以下内容:
| 模块 | 核心内容 | 实践产出 |
|---|---|---|
| 基础篇 | Sigstore 组件原理、Cosign 签名与验证、Rekor 日志查询 | 搭建本地 Sigstore 测试环境 |
| 巡检篇 | 镜像安全水位巡检指标体系、自动化巡检脚本编写 | 生成集群镜像安全水位报告 |
| 集成篇 | 与 CI/CD 流水线集成、Kubernetes 准入控制器(Admission Controller)配置 | 实现升级前自动阻断不安全镜像 |
| 应急篇 | 巡检失败后的降级策略、透明日志异常排查、证书吊销处理 | 编写应急响应 SOP |
通过本课程,你将掌握一套可落地的集群升级前镜像安全巡检方案,并深入理解 Sigstore 透明日志在供应链安全中的不可替代作用。升级不再是“盲人摸象”,而是有据可查、有证可验的安全操作。