1. 课程导论:镜像供应链安全背景、信任边界概念、Envoy 在其中的角色
1.1 镜像供应链安全背景
云原生时代,应用以容器镜像为交付单元,镜像的构建、存储、分发、部署构成了一条完整的软件供应链。然而,这条供应链正面临日益严峻的安全威胁:
- 镜像投毒:攻击者在基础镜像或构建过程中植入恶意层,导致下游所有运行实例被控。
- 依赖混淆:利用公开仓库与私有仓库的命名冲突,诱导构建系统拉取恶意依赖包。
- 签名缺失:大量镜像未经数字签名,消费者无法验证镜像的发布者身份与内容完整性。
- 运行时篡改:镜像在拉取或缓存过程中被中间人替换,导致运行非预期代码。
关键数据:据 2024 年云原生计算基金会(CNCF)调查,超过 60% 的生产环境容器镜像存在已知高危漏洞或未经验证的层。镜像供应链已成为攻击者最青睐的入口之一。
传统的安全防护聚焦于运行时边界(如防火墙、WAF),但镜像供应链攻击发生在部署之前,传统手段难以覆盖。这要求我们重新定义信任的起点与边界。
1.2 信任边界概念
在镜像供应链中,信任边界是指从一个可信实体(如镜像仓库、签名者、策略引擎)到另一个实体(如容器运行时、Sidecar 代理)之间,数据与元数据传递过程中必须保持完整性与可验证性的逻辑分界。
信任边界通常包含以下层次:
| 信任层次 | 核心实体 | 验证手段 |
|---|---|---|
| 构建层 | CI/CD 系统、基础镜像仓库 | SLSA 证明、构建源验证 |
| 分发层 | OCI 镜像仓库、Notary 签名 | 镜像签名验证、摘要校验 |
| 部署层 | Kubernetes API Server、准入控制器 | 策略引擎(OPA/Kyverno)评估 |
| 运行时层 | Sidecar 代理、容器运行时 | 流量验证、mTLS、JWT 断言 |
信任边界并非静态——镜像从构建到运行,信任状态会随着每次验证而传递或断裂。一旦某个环节的验证失败,后续所有环节都应拒绝该镜像的流量。
1.3 Envoy 在信任边界中的角色
Envoy 作为云原生领域最广泛使用的 L7 代理,在 Istio 服务网格中担任数据平面的核心组件。它在镜像供应链信任边界流量验证中扮演三个关键角色:
- 流量拦截与策略执行点:Envoy Sidecar 拦截进出 Pod 的所有流量,是执行信任策略的理想位置。它可以在请求到达应用之前,验证调用方是否携带了有效的镜像身份凭证。
- 可观测性与审计锚点:Envoy 的访问日志、分布式追踪和指标暴露了每一次请求的元数据,包括来源 Pod 的镜像摘要、签名状态等,为信任审计提供原始数据。
- 动态策略下发与热更新:通过 xDS 协议(特别是 SDS、LDS、RDS),Envoy 可以实时接收信任策略更新,无需重启 Pod,适应快速变化的供应链安全需求。
核心洞察:Envoy 不是镜像仓库或签名工具,它是信任边界在运行时的最终守卫者。即使镜像在构建和分发阶段通过了验证,Envoy 仍然可以在流量层面执行二次校验,防止信任被绕过。
下图展示了 Envoy 在镜像供应链信任边界中的位置与交互关系:
1.4 课程核心目标
本课程将围绕以下主线展开:
- 理解镜像供应链的信任模型与攻击面。
- 掌握 Envoy 的流量拦截、TLS/mTLS 终止、JWT 验证、RBAC 等机制。
- 在 Istio 环境中配置基于镜像摘要和签名的流量验证策略。
- 通过可观测性工具验证信任边界是否被正确执行。
前置要求:建议学员具备 Kubernetes 基础操作能力,了解 Istio 基本概念(VirtualService、DestinationRule、PeerAuthentication),并熟悉容器镜像的基本操作(docker pull、docker tag、docker push)。