Software Supply Chain Defense: SLSA L3, Cosign & Kyverno
Constructing an unbreachable software delivery pipeline. Keyless container image signing with Sigstore Cosign, Fulcio OIDC, Rekor transparency logs, and Kubernetes Kyverno admission policy enforcement.
Software Supply Chain Defense: SLSA L3, Cosign & Kyverno
The Software Supply Chain Threat
Modern software delivery pipelines are prime targets for nation-state adversaries. Attacking the build system or package repository allows adversaries to inject malicious code into trusted downstream artifacts (e.g. SolarWinds, Codecov).
SLSA Framework (Supply-chain Levels for Software Artifacts)
- SLSA Level 1: Documented build process with provenance generated.
- SLSA Level 2: Hosted build platform with authenticated provenance signatures.
- SLSA Level 3: Isolated, hermetic build environments preventing external tampering during compilation, with tamper-evident cryptographic provenance.
Keyless Signing with Sigstore Cosign
Instead of managing private GPG keys, Sigstore Cosign uses keyless signing:
- The CI workflow initiates an OIDC handshake with Fulcio CA.
- Fulcio issues a short-lived (10-minute) X.509 certificate binding the builder's identity to an ephemeral key pair.
- Cosign signs the container image and records the signature in the Rekor immutable transparency log.
- Kubernetes Kyverno admission controllers verify the signature before any container is permitted to run.
apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
name: verify-signed-images
spec:
validationFailureAction: Enforce
rules:
- name: verify-sigstore-signature
match:
resources:
kinds:
- Pod
verifyImages:
- imageReferences:
- "ghcr.io/tiny-cto/*"
attestors:
- entries:
- keyless:
issuer: "https://token.actions.githubusercontent.com"
subject: "https://github.com/tiny-cto/tinycto-tv/.github/workflows/*"
Canonical Zero-Trust Defense per NIST SP 800-207 & CISA ZTMM 2.0: Eliminate static credentials, enforce eBPF microsegmentation, and preempt threats with in-kernel runtime telemetry.
