From SBOM to SLSA: Securing Your Software Supply Chain
Posted: March 3, 2026 to Cybersecurity.
Securing the Software Supply Chain: SBOM to SLSA
Software supply chain security has moved from an esoteric niche to a board-level priority. From SolarWinds to Log4Shell to the xz Utils backdoor attempt, attackers have made it clear: compromise one link in the chain—source code, dependencies, build systems, package registries, containers, or deployment pipelines—and you can compromise thousands of downstream systems. Two ideas now frame the modern response: the Software Bill of Materials (SBOM), which improves transparency, and Supply-chain Levels for Software Artifacts (SLSA), which improves integrity. This article connects the dots between SBOM and SLSA and offers a clear, practical path to put both to work in real environments.
Foundations: The Vocabulary of a Secure Supply Chain
What is an SBOM?
An SBOM is an inventory of the components and dependencies that make up a piece of software. Think of it as an ingredient list for your application or container image. It typically includes component names, versions, licenses, and relationships (direct and transitive). Two industry-standard formats dominate:
- SPDX (Software Package Data Exchange), stewarded by the Linux Foundation, with a strong focus on license and compliance metadata.
- CycloneDX, from the OWASP community, optimized for security use cases with rich dependency and vulnerability-related fields.
SBOMs can be generated at build time (the most accurate) or derived post-build from containers or binaries (useful for inventory and retrospective analysis). Popular tools include Syft, Trivy, SPDX tooling, and CycloneDX CLI. Modern SBOMs increasingly travel with the artifact itself, stored as OCI attachments in registries using OCI referrers.
What is VEX and why does it matter?
SBOMs generate visibility, but they can also create noise. Vulnerability Exploitability eXchange (VEX) is a companion document stating whether a known vulnerability impacts a specific product and why. For example, if a vulnerable function is present but not reachable in your build, a VEX statement can mark it “not affected,” cutting alert fatigue and helping teams prioritize what truly matters.
What is SLSA?
SLSA (Supply-chain Levels for Software Artifacts) is a security framework for protecting the integrity of the build and release process. It specifies increasing levels of assurance:
- Level 1: You produce provenance for the build—metadata describing what was built, from which sources, by which builder.
- Level 2: You use a hosted build service and sign the provenance, tying artifacts to their sources and build steps.
- Level 3: Your builds are hardened and isolated; provenance is non-falsifiable; dependencies are pinned and verified; hermetic builds limit network access.
- Level 4: Adds the highest rigor, such as reproducible builds and strong change-review requirements, making it exceedingly difficult to tamper with outputs undetected.
In short: SBOM explains what’s inside; SLSA explains where it came from and how it was produced—securely.
Attestations, in-toto, and Sigstore
Attestations are signed statements about artifacts: SBOMs, test results, or SLSA provenance. The in-toto framework structures how to create and verify these statements; DSSE (Dead Simple Signing Envelope) makes them portable. Sigstore provides an ecosystem (Fulcio for issuing short-lived certificates, Cosign for signing and verifying artifacts, and Rekor for transparency logs) to make signing easy and verifiable at scale. Together, these let you answer: who produced this artifact, with what inputs, and is this record tamper-evident?
Hermetic, reproducible, and ephemeral builds
Hermetic builds avoid non-deterministic inputs by prohibiting ad hoc network fetches and pinning dependencies, which reduces supply chain variability. Reproducible builds allow multiple parties to independently regenerate identical outputs from the same inputs, making tampering detectable. Ephemeral, isolated build workers minimize persistence and cross-build contamination, shrinking the attacker’s window and blast radius.
Why SBOM Alone Is Not Enough
SBOMs help you find and fix known risks like vulnerable libraries. But if an attacker compromises your build pipeline, they can insert malicious code that still appears as legitimate components in your SBOM. Supply chain attacks like SolarWinds were not about a missing inventory; they were about a trusted process being subverted. SBOMs tell you what is in your software; SLSA tells you whether you can trust how it was made. You need both.
A Practical Maturity Roadmap: From SBOM to SLSA
Stage 0: Baseline inventory and policy
- Establish a central catalog of all software artifacts you build, buy, and deploy: applications, containers, plugins, third-party SaaS agents, and firmware.
- Set policy requiring SBOM for every artifact and signed provenance for sensitive workloads. Reference NIST SSDF and OpenChain/ISO 5230 for supplier expectations.
- Pin dependencies with lockfiles or digest-pinned references. Turn on 2FA for code hosting and package registries.
Stage 1: Generate SBOMs reliably
- Produce SBOMs at build time in SPDX or CycloneDX format for every pipeline and language ecosystem (npm, pip, Maven, Go modules, crates, NuGet, and OS packages in containers).
- Attach SBOMs to artifacts in your registry as OCI attachments and record them in a searchable catalog (consider GUAC to graph SBOM, provenance, and vulnerability data).
- Supplement with runtime SBOMs for containers to detect drift or late-stage bundling that your build missed.
Stage 2: Sign and attest
- Adopt Sigstore Cosign to sign images and attach signed SBOM attestations. Publish signatures to a transparency log (Rekor) for tamper evidence.
- Create attestations for critical checks: unit tests passed, SAST results, license policy conformance, and dependency integrity.
- Set up verification in CI and at deploy time; no attestation, no promotion.
Stage 3: Enforce SLSA Level 2
- Move to a hosted or centrally managed build service that can produce SLSA provenance by default. Options include GitHub Actions with slsa-github-generator, Google Cloud Build, GitLab, and Tekton Chains.
- Ensure provenance references the immutable source (commit SHA), build definition (workflow or pipeline), and materials (dependency digests). Require signatures tied to workload identities via OIDC, not long-lived secrets.
- Lock down artifact repositories; enforce write-once policies and image immutability.
Stage 4: Harden to SLSA Level 3
- Make builds hermetic: disallow outbound network fetches during compile; rely on a curated, mirrored dependency cache with pinned digests and verification.
- Use ephemeral, isolated runners with minimal privileges; rotate keys automatically; require two-person review for pipeline definitions.
- Adopt policy-as-code to gate on signed SLSA provenance and SBOM presence before deploy. Admission controllers (OPA Gatekeeper, Kyverno) or cloud-native binary authorization enforce this at cluster boundaries.
Stage 5: Approach SLSA Level 4 for critical releases
- Pursue reproducible builds for deterministic toolchains; capture and publish reproducibility attestations.
- Require strong review practices on high-impact repositories, including mandatory code review, branch protections, and provenance checks on build inputs.
- Perform pre-release attestations for fuzzing, SAST/DAST, and dependency integrity; include VEX to filter noise from vulnerability advisories.
Throughout these stages, treat SBOM and SLSA as complementary: SBOM enhances visibility for risk assessments and incident response; SLSA locks down the process to prevent tampering and ensure verifiable trust.
Lessons from Recent Incidents
- SolarWinds Orion: Attackers inserted malicious code into a trusted update via the build pipeline. SLSA Level 3 or 4 controls—hermetic builds, strong provenance, isolated builders, and multiple maintainers’ approvals—would have made this far harder and more detectable.
- Log4Shell: The vulnerability lived in a ubiquitous dependency. High-quality SBOMs cut discovery time from weeks to hours. VEX helped teams de-emphasize unaffected products while focusing patching on truly impacted systems.
- Codecov Bash Uploader: A build script used by many projects was altered upstream to exfiltrate credentials. Pinning by digest, verifying signatures on build tools, and hermetic builds that avoid network fetches at build time limit this vector.
- xz Utils backdoor attempt: A social-engineering marathon led to a near-miss backdoor in a critical compression library. Defense includes diverse maintainers, mandatory code review, reproducibility checks that flag unexpected binary differences, and upstream provenance verification before ingest.
Implement and Enforce in Cloud-Native Environments
High-fidelity SBOMs for containers
Containers pack app code, language packages, and OS packages. To avoid blind spots:
- Generate layer-aware SBOMs that include base image contents and custom layers. Capture package managers like apk, apt, and yum, plus language ecosystems.
- Use minimal, distroless base images to shrink the attack surface and simplify SBOMs.
- Propagate SBOMs and signatures through multi-arch builds; store them as OCI referrers next to the image manifests.
Provenance in CI/CD
Integrate SLSA provenance generation into your pipelines:
- GitHub Actions: Use the SLSA generator to issue in-toto provenance signed with OIDC-backed identities; require that release artifacts link to the exact workflow run and commit.
- Tekton Pipelines: Enable Tekton Chains to auto-generate attestations and push them to the registry; verify with Cosign before promotion.
- Cloud build services: Leverage native provenance support and binary authorization for deploy-time enforcement.
Gate deployments with policy-as-code
- Admission controllers: OPA Gatekeeper and Kyverno can block images lacking valid signatures, SBOM attestations, or SLSA provenance for the running digest.
- Binary Authorization: Enforce that only images with specific attestations and signers can run in trusted clusters; stage rollouts behind progressive delivery to monitor for anomalies.
- Conftest in CI: Pre-deploy checks on Kubernetes manifests and Terraform plans ensure only compliant resources reach production.
Consume SBOMs intelligently
- Aggregate SBOMs and provenance into a graph (for example, GUAC) to answer impact questions: which services use this vulnerable library, and where are they deployed?
- Correlate with vulnerability feeds and VEX. Prioritize based on exploitability, exposure, business criticality, and runtime reachability.
- Automate exception lifecycles; time-box waivers; track mean-time-to-remediate per component and team.
Organizational Design and Measurement
Make secure-by-default the paved road
- Centralize build and signing services; provide starter pipelines that generate SBOMs, provenance, and signatures out of the box.
- Offer curated dependency mirrors and base images; block direct internet fetches from builds.
- Embed security engineers with platform teams; measure adoption as a product metric.
Choose clear, outcome-oriented metrics
- Coverage: percent of artifacts with build-time SBOMs and SLSA provenance; percent of deployments blocked by missing attestations.
- Quality: SBOM completeness scores, average time from release to SBOM availability, false-positive suppression via VEX.
- Resilience: median time to rebuild and redeploy a service with fixed dependencies; percent of builds hermetic and reproducible.
Right-size for your organization
- Small teams: Start with SBOM generation, signing with Cosign, and basic policy gating in staging. Pin dependencies and use minimal base images.
- Enterprises: Add centralized provenance, hermetic builders, binary authorization, cross-org SBOM cataloging, and formal supplier requirements referencing NIST SSDF and OpenChain.
A Day in the Life: From Commit to Production with SBOM and SLSA
Imagine a team shipping a containerized payment microservice.
- Develop: Engineers push changes to a protected main branch. Required reviews and automated checks run on every pull request. Dependencies are pinned in lockfiles; risky updates are flagged by dependency bots.
- Build: A hosted CI runner spins up an ephemeral, isolated environment. It fetches sources by commit digest, uses a mirrored dependency cache, and blocks outbound network calls. The pipeline builds the binary and image from a minimal base.
- Attest: The pipeline generates a CycloneDX SBOM and a SLSA provenance attestation that lists the commit, builder identity, build steps, and materials (dependency digests). Cosign signs the image, SBOM, and provenance with an OIDC-issued certificate; signatures are logged to Rekor.
- Test: Unit, integration, and policy checks run; results are captured as additional attestations. License checks confirm no disallowed licenses made it into the image.
- Promote: A staging cluster admits only images with valid signatures and required attestations. Runtime scanning validates the image digest still matches what was tested; any drift is blocked.
- Deploy: Progressive delivery rolls out to production. Binary authorization enforces that only images signed by the trusted builders can run. Observability baselines watch for anomalies.
- Inventory: The platform ingests SBOMs and provenance into a searchable graph linked to deployments, so the team can answer impact queries instantly.
Weeks later, a critical vulnerability is disclosed in a library used by the service. Security queries the SBOM catalog and finds exactly which versions are affected and where they are deployed. A vendor releases a VEX indicating the vulnerability is not exploitable under specific configurations; the team verifies those conditions and focuses remediation on the truly at-risk services. A patched release is built; provenance shows it came from the expected builder, with pinned dependencies and no network fetches. Admission control verifies all attestations before the new version rolls out. The team closes the incident with minimal downtime and clear audit evidence of due diligence.
Looking Ahead: Regulation, Ecosystem, and Emerging Practices
Regulators and buyers are raising the bar. In the United States, Executive Order 14028 and subsequent OMB guidance pushed SBOM and secure development practices into federal procurement. NIST’s Secure Software Development Framework (SSDF) provides a vendor-agnostic blueprint. In Europe, the Cyber Resilience Act and NIS2 raise expectations on software producers and operators. Across sectors, procurement questionnaires now ask about SBOM availability, vulnerability management SLAs, and supply chain controls.
On the ecosystem side, expect broader default support for:
- First-class SBOM generation in build tools and registries, including automatic OCI attachment and signature workflows.
- Turnkey SLSA provenance from mainstream CI/CD providers and managed builders with hardened, hermetic defaults.
- Integrated consumption pipelines that correlate SBOM, vulnerability feeds, VEX, and runtime telemetry into prioritized, actionable backlogs.
Maintainer health and project risk will gain more attention. OpenSSF Scorecard, repo signing, and maintainer identity assurance help consumers judge upstream risk. Funding and staffing critical open source packages is not just altruism; it reduces systemic supply chain exposure.
Reproducible builds will continue to advance, particularly for language ecosystems with stable toolchains. Where full reproducibility is impractical, incremental steps—pinning, hermeticity, and transparent provenance—still deliver large risk reductions. Memory-safe languages, sandboxed build tools, and minimal, verifiable base images further shrink attack surfaces.
Finally, the line between development and operations will blur in service of policy automation. Policies that once lived in PDFs will become verifiable gates that evaluate signed evidence. SBOM gets you the map; SLSA tells you whether to trust the road; together, they turn software delivery into an auditable, resilient system—prepared for the next wave of supply chain threats.
Common Pitfalls and Anti-Patterns
As teams operationalize SBOM and SLSA, several recurring traps can erode benefits or create false confidence.
- Inventory without enforcement: generating SBOMs yet failing to gate deployments on signed attestations.
- Post-build scanning only: relying on image scanners while ignoring build-time provenance and hermeticity.
- Mutable artifacts: retagging or rebuilding “the same” version, breaking traceability and incident response.
- Unpinned builders: trusting self-hosted runners that fetch tools over the network with no checks.
- Alert overload: flooding teams with unactionable findings by skipping VEX and reachability context.
Mitigations center on simplicity and automation. Prefer a paved-path pipeline that emits SBOM, provenance, and signatures by default; time-box exceptions. Use digest-based promotions to guarantee the thing you tested is the thing you run. Require OIDC-backed signing with transparency logs, and block network egress during compilation. Feed SBOMs into a unified graph to answer impact questions fast, and layer VEX so risk triage reflects real exploitability. Automate rollbacks on attestation failure.
Treat supply chain controls as product features. Advertise attestations in release notes, publish verification instructions, monitor verification failures as reliability defects, not security noise.
Taking the Next Step
SBOM gives you visibility; SLSA gives you verifiable integrity—together they turn software delivery into an auditable, resilient supply chain. By standardizing on signed attestations, hermetic builds, and digest-based promotions, you reduce noise, speed incident response, and meet rising regulatory and buyer expectations. Treat these controls as product features: ship SBOMs, publish verification steps, and monitor verification as a reliability SLO. Start small—pick one critical service, automate SBOM and provenance, enforce admission on signatures, and iterate. The sooner you embed these practices, the better prepared you’ll be for the next wave of supply chain threats and opportunities.