CME-712
Container Image Signing and Provenance Verification (Cosign/Sigstore)
Description
Require cryptographic signatures on container images before deployment. Cosign/Sigstore verify image provenance against a trust policy, ensuring only images from authorized build pipelines are admitted. Blocks supply chain attacks where a compromised registry or build system pushes malicious images. Verification can be enforced at admission time via policy controllers (Kyverno, Gatekeeper with cosign) or at pull time via container runtime trust policies (Podman policy.json, CRI-O).
CVSS Vector Impacts
| Metric | Transition | Rationale |
|---|---|---|
| Attack Complexity (AC) | L → H | Attacker must forge a valid cryptographic signature or compromise the signing key to inject a malicious container image; simply pushing to a registry is insufficient |
| Integrity (I) | H → L | Unsigned or tampered images are rejected at admission; modifications to images after signing are detected and blocked |
CWE Relationships
Verification
Verify image signature verification is enforced at admission or runtime level
$ kubectl get clusterimagepolicy --no-headers 2>/dev/null || kubectl get policy.sigstore.dev --no-headers 2>/dev/null
# Expected: Image policy resources present
# Expected: Image policy resources present
Platform: kubernetes
$ podman image trust show
# Expected: Trust policy configured with signature requirements for production registries
# Expected: Trust policy configured with signature requirements for production registries
Platform: linux
$ cosign verify --key /path/to/cosign.pub <image> 2>&1 | head -1
# Expected: Verification for <image> -- The following checks were performed
# Expected: Verification for <image> -- The following checks were performed
Platform: any