6.2 镜像安全:从签名到漏洞扫描,打造可信软件供应链

6.2 镜像安全:从签名到漏洞扫描,打造可信软件供应链

1. 引言:镜像是生产的“载体”

将“可信”的定义写进镜像:可追溯(来源确定)、可验证(签名验签)、可评估(SBOM+扫描)。


2. SBOM:先列清单,再谈风控

2.1 生成 SBOM(Syft)

syft packages harbor.example.com/prod/payment:v1.2.3 -o cyclonedx-json>sbom.json
  • 建议输出 CycloneDX 格式;
  • sbom.json作为流水线工件归档,关联构建号与提交 SHA。

2.2 漏洞评估(Grype)

grype sbom:sbom.json --fail-on high
  • 以严重级别(critical/high)作为门禁阈值;
  • 结合“允许列表”实现渐进整改。

3. 签名与验签:cosign/Notary v2

3.1 cosign 签名

COSIGN_EXPERIMENTAL=1cosign sign\--key cosign.key\harbor.example.com/prod/payment@sha256:abcd...
  • 推荐基于 OIDC/KMS 的“无密钥签名”(keyless),降低密钥保管风险。

3.2 签名与 SBOM 绑定(OCI 附件)

  • cosign/ORAS 支持将 SBOM、签名作为 OCI Artifact 附件与镜像摘要锚定;
  • 生产验收可通过摘要(不可变)进行关联校验。

4. CI 流水线集成(GitHub Actions 示例)

-name:Build imageuses: