Free tech learning for everyone, from basics to pro

Container SecurityCloud SecurityAdvanced

Software supply chain for containers: registries, signing, SBOMs and provenance

In short: Your containers include code from many sources and pass through many systems before they run. Supply chain security means knowing what is inside an image, who built it and how, and refusing to deploy anything that cannot prove it. Signing, SBOMs and provenance supply the evidence; admission policies enforce it.

Why the supply chain is a target

A typical container image contains your code, hundreds of open-source packages and a base image built by someone else. It passes through source control, a CI system, a registry and a deployment tool. An attacker who compromises any of these can reach every customer at once. Well-known incidents such as the SolarWinds build compromise, malicious packages published to public registries and the backdoor found in the xz utilities in 2024 showed how effective this route can be.

Common supply chain threats include typosquatting (a package named almost like a popular one), dependency confusion (a public package with the same name as an internal one), compromised maintainer accounts, tampered build systems and images swapped in a registry.

Container supply chainSourcereviewedcodeDependenciespinned,scannedBuildisolated CISign andattestSBOM,provenanceRegistryprivate,scannedDeployverify first
Figure 1. Each step from source code to running container is a place where tampering can happen and a place to add a check.

Registries and trusted sources

  • Pull base images and dependencies through a private registry or proxy you control, rather than straight from the internet in production.
  • Restrict who can push, require authentication for pulls, and enable vulnerability scanning on the registry.
  • Use immutable tags where the registry supports them, so a released tag cannot be overwritten.
  • Deploy by digest so the content cannot change underneath you.

Signing, SBOMs and provenance

Supply chain evidenceSignaturewho published itSBOMwhat is insideProvenancehow it was builtScan resultknown CVEsVEXis it exploitableAdmission policyenforce at deploy
Figure 2. The kinds of evidence you can attach to an image and check before it is allowed to run.

Image signing lets consumers check who published an image and that it has not changed. The open-source Sigstore project, with its cosign tool, is widely used. It supports keyless signing, where a short-lived certificate tied to the CI job's identity is used and the signature is recorded in a public transparency log.

cosign sign registry.example.com/shop/api@sha256:<digest>
cosign verify registry.example.com/shop/api@sha256:<digest> \
  --certificate-identity-regexp 'https://github.com/example-org/.*' \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com

A software bill of materials (SBOM) is an inventory of every component and version in the image, in a standard format such as SPDX or CycloneDX. When a new vulnerability is announced you can search SBOMs to find which images are affected in minutes instead of days. Tools like Syft or Trivy generate them during the build.

Provenance is a signed statement of how an artefact was built: which source commit, which build system, which steps. The SLSA framework (Supply-chain Levels for Software Artifacts) defines increasing levels of build integrity, from simply having provenance up to hardened, isolated build platforms. A VEX (Vulnerability Exploitability eXchange) document can state that a listed CVE does not actually affect a product, which helps reduce noise.

Enforcing it at deploy time

  1. Build in CI, generate an SBOM and provenance, and sign the image and attestations.
  2. Push to a private registry with scanning and immutable tags.
  3. In Kubernetes, use an admission controller (for example Kyverno, OPA Gatekeeper or Sigstore policy-controller) to verify signatures before pods start.
  4. Allow images only from approved registries.
  5. Store SBOMs centrally and query them when new CVEs appear.

Tip: signing only helps if something checks the signature. Start in audit mode to see what would be blocked, then switch to enforce.

QuestionEvidence that answers it
Who published this image?Signature
What components does it contain?SBOM
Which commit and pipeline built it?Provenance attestation
Are its known CVEs exploitable?Scan result plus VEX

Practice

A new critical CVE is announced in a logging library. How do SBOMs help?
You can search stored SBOMs for the library and version to find every affected image quickly, instead of scanning or guessing.
What is dependency confusion?
An attacker publishes a public package with the same name as an internal one, hoping build tools fetch the public, malicious version.
Your team signs every image but deploys still succeed with unsigned ones. What is missing?
Enforcement: an admission policy that verifies signatures and rejects unsigned or untrusted images.

Key takeaways

  • Every step from source to deploy can be tampered with.
  • Use private registries, immutable tags and digests.
  • Sign images; generate SBOMs and provenance in CI.
  • SLSA describes levels of build integrity.
  • Verify signatures with admission policies, or signing achieves little.
Tracks your learning on this device only. See your progress on the learning paths.

About the author

Mohamed Fayas

Founder of FM TecHub. CCNA certified, with a BTEC HND in Network Engineering, and BEng (Hons) in Computer Networking and Cloud Security. He writes practical, plain-English guides on networking, security and cloud.

More about the author

Original content written by Mohamed Fayas for FM TecHub. © 2026 FM TecHub. You're welcome to share a link to this page; please don't copy the text elsewhere without permission.

Stay up to date by email

New notes, tools and security news from FM TecHub, explained simply. Free.

We only use your email to send these updates. See our privacy policy.