ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

封网期间制品库安全扫描与 Cosign 镜像电子签名防御

封网期间制品库安全扫描与 Cosign 镜像电子签名防御 封网期间制品库安全扫描与 Cosign 镜像电子签名防御在大促代码封网Code Freeze的高级保密与风控阶段很多团队把 99% 的注意力都放在了防范“代码仓库GitLab里的代码变更”上开启了 Git 分支锁定、配置了双人审批流。然而在现代基于容器与 Kubernetes 交付的云原生架构中存在着另一个极其隐蔽、破坏力更加恐怖的**“供应链侧翼盲区”——企业容器制品库Container Registry, 如 Harbor / Nexus中的镜像篡改与伪造风险**场景一镜像标签覆盖投毒Tag Overwrite Poisoning。某恶意内部人员或被黑客攻陷的 CI 节点绕过 Git 流程直接利用 Docker CLI 将一个植入了挖矿程序或后门木马的非法镜像强制推送并覆盖了生产的harbor.internal/prod/order-settle:v2.5.0场景二严重 CVE 高危漏洞镜像流入生产。研发打包的镜像中内嵌了一个刚刚爆发、能够被远程 RCE 代码执行的最新开源组件严重漏洞如 Log4Shell 级漏洞。如果 Kubernetes 集群在拉取镜像时“只认 Image Tag不验证镜像真实的电子指纹与数字签名”那么被投毒的非法镜像将如入无人之境直接在生产宿主机上拉起运行造成不可挽回的灾难如何构建一套**“在镜像构建时自动完成深度 CVE 扫描与 Cosign 电子签名Digital Signing、在 Kubernetes 准入层由 Kyverno / Gatekeeper 进行 100% 强制电子验签Image Verification”**的零信任供应链安全防线本文深入剖析基于Trivy 漏洞扫描、Cosign 镜像密码学签名与 Kyverno 声明式准入验签策略的全套大促供应链实战防御体系。软件供应链零信任签名与准入防御全景架构[ GitLab CI 自动化构建出应用镜像: app:v2.5.0 ] │ ▼ ┌─────────────────────────────────────────────────────────────┐ │ 1. Trivy 容器漏洞与合规静态扫描 (Container CVE Scanning) │ │ - 扫描: OS 漏洞 / Java 依赖 (pom.xml) / 敏感私钥泄露 │ │ - 门禁: 存在任何 CRITICAL / HIGH 级别 CVE 立即阻断流水线! │ └────────────────────────┬────────────────────────────────────┘ │ (漏洞扫描 100% 绿色通过) ▼ ┌─────────────────────────────────────────────────────────────┐ │ 2. 镜像密码学数字签名 (Cosign Sign via Enterprise KMS) │ │ - 使用 SRE 核心离线私钥 / AWS KMS 对镜像 SHA256 摘要签名 │ │ - 将 .sig 电子签名证书附件安全上传并绑定至 Harbor 制品库 │ └────────────────────────┬────────────────────────────────────┘ │ ▼ (ArgoCD 尝试在生产集群创建 Pod) ┌─────────────────────────────────────────────────────────────┐ │ 3. Kubernetes 准入控制器验签 (Kyverno Admission Controller) │ ├─────────────────────────────────────────────────────────────┤ │ - 携带有效 Cosign 官方公钥签名的合法镜像 │ │ ──► 10 毫秒内验签通过允许调度并拉起容器 │ ├─────────────────────────────────────────────────────────────┤ │ - 未经签名 / 签名不匹配 / 私自推送的非法镜像 │ │ ──► 准入 Webhook 物理硬拦截: 拒绝创建 Pod (Deny Admission)│ │ ──► 触发企业微信大群最高级别安全事件通报 │ └─────────────────────────────────────────────────────────────┘步骤一CI 流水线中集成 Trivy 扫描与 Cosign 数字签名在.gitlab-ci.yml构建发布阶段注入签名指令stages: - build-and-sign build_and_sign_image: stage: build-and-sign image: alpine:3.19 before_script: - apk add --no-cache curl docker-cli # 安装 Trivy 扫描工具与 Sigstore Cosign 签名工具 - curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin - curl -sLo /usr/local/bin/cosign https://github.com/sigstore/cosign/releases/download/v2.2.3/cosign-linux-amd64 chmod x /usr/local/bin/cosign script: - IMAGE_TAGharbor.internal/prod/order-settle:v2.5.0 # 1. 执行 Trivy 严格漏洞扫描 (存在严重漏洞直接返回退出码 1 熔断!) - trivy image --exit-code 1 --severity CRITICAL,HIGH --no-progress $IMAGE_TAG # 2. 漏洞检查通过后使用企业专属私钥进行不可篡改的密码学签名 - echo 正在对镜像进行 Cosign 电子签名... - cosign sign --key env://COSIGN_PRIVATE_KEY $IMAGE_TAG --yes - echo ✅ 镜像签名完成并已将签名证书推送到 Harbor 制品库步骤二Kubernetes 生产集群配置 Kyverno 强制验签准入策略在生产集群中部署Kyverno策略引擎编写全集群强制验签 PolicyapiVersion: kyverno.io/v1 kind: ClusterPolicy metadata: name: verify-image-signatures-strictly spec: # 强制拦截模式 (Enforce) validationFailureAction: Enforce # 拦截所有 Namespace 下的 Pod 创建与更新请求 webhookTimeoutSeconds: 5 rules: - name: verify-cosign-prod-signature match: any: - resources: kinds: - Pod namespaces: - prod verifyImages: # 针对生产镜像仓库进行公钥核验 - imageReferences: - harbor.internal/prod/* attestors: - entries: - keys: # 注入企业唯一受信任的 Cosign 公钥 publicKeys: | -----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE7f9X9k8W7mN... -----END PUBLIC KEY-----生产现场盲测实况物理阻断未签名的非法镜像在周二下午组织的一次供应链攻防红蓝演练中红队工程师尝试绕过 CI 流水线直接在命令行构建了一个镜像并推送到 Harbor随后红队尝试在生产集群中执行kubectl apply -f bad-pod.yaml。Kubernetes API Server 在8 毫秒内直接返回拒绝响应Error from server: error when creating bad-pod.yaml: admission webhook validate.kyverno.svc denied the request: [Kyverno 供应链安全准入拦截 - DENIED] - 目标镜像: harbor.internal/prod/order-settle:v2.5.0-unauthorized - 拦截理由: 该镜像未包含由企业根密钥签发的有效 Cosign 密码学数字签名 - 风险判定: 疑似为未授权非法构建或被篡改的供应链投毒镜像生产集群物理拒绝部署 生产治理成效大盘通过在整个大促期间推行“Trivy 静态扫描 Cosign 镜像签名 Kyverno 准入验签”的供应链零信任体系生产环境100% 实现了“无签名镜像绝对无法被调度拉起”的物理防线提前在 CI 阶段拦截并修复了12 个包含最新高危 CVE 漏洞的第三方依赖组件彻底消除了镜像被篡改、后门投毒与中间人劫持的供应链致命隐患让全站每一行运行在宿主机上的字节码都具备 100% 可追溯、可审计的数字血统总结安全是云原生大厦不可动摇的钢铁基石。通过构筑基于密码学证明的制品库供应链签名闭环我们彻底关闭了容器交付最后一道隐秘的侧翼大门为大促战役的全面胜利筑牢了坚不可摧的零信任安全长城
返回列表