SBOMs Are Useless: Why Software Supply Chain Security Demands More Than Lists

If you’ve spent any time in the world of DevSecOps or cloud-native security, you’ve been told that the Software Bill of Materials (SBOM) is the new silver bullet. It’s the mandated, check-the-box artifact that promises to bring transparency to the chaotic software supply chain. From executive orders to compliance frameworks, the message is clear: generate an SBOM, and you’ve taken a monumental step toward security. This is a dangerous illusion. Treating an SBOM as a goal in itself is like believing a list of ingredients automatically makes a meal nutritious—it’s a static record, not a dynamic control. In reality, SBOMs, in their current form, are largely useless as a security mechanism. They represent a starting point, but the industry’s obsession with the list is distracting us from the hard work of building actual, automated security.

The Fundamental Flaw: SBOMs Are Reactive, Not Proactive

An SBOM is a snapshot. It’s a historical document detailing what was in your application at the moment it was compiled or packaged. It does nothing to prevent a vulnerable component from entering your build pipeline. It doesn’t stop a compromised dependency from being downloaded. Its primary security value is post-facto: after a new critical vulnerability like Log4Shell is announced, you can theoretically query your SBOMs to see which applications contain the affected library. This is a classic reactive, vulnerability management playbook applied to a problem that demands proactive, preventative engineering.

By the time you’re grepping through SPDX or CycloneDX files, the malicious code is already in your artifact repository, your container registry, or worse, deployed in production. The security gap here is immense. The real challenge is shifting security left—integrating it into the CI/CD pipeline where dependencies are resolved and artifacts are built. An SBOM generated at the end of that pipeline is merely evidence of what already happened; it is not a gate.

The Operational Overhead of “SBOM as Artifact”

The prevailing model treats the SBOM as a standalone artifact to be stored, shared, and manually audited. This creates significant operational friction that undermines its utility:

  • Provenance & Authenticity: How do you know the SBOM you received from a vendor is accurate and matches the software you actually deployed? Without cryptographically signed attestations linking the SBOM to the exact build artifact (a concept like in-toto attestations), the SBOM itself is just another file of uncertain truth.
  • Scale and Aggregation: A modern microservices architecture can involve hundreds of containers, each with its own deep dependency tree. Manually managing, correlating, and analyzing thousands of SBOMs is a task for which human teams are utterly unsuited. The data volume alone renders manual processes obsolete.
  • Timeliness: Vulnerability databases are updated constantly. A static SBOM must be continuously re-analyzed against a flowing stream of new CVE data. Without deep, automated integration between your SBOM repository and your vulnerability scanners, the information is stale moments after it’s created.

This overhead means SBOMs often end up as compliance paperwork—generated to satisfy an audit requirement, then filed away, unmonitored and unactioned.

The Missing Links: Build Integrity and Policy Enforcement

Focusing on the list of components ignores the two most critical aspects of supply chain security: how the software was built and what rules it must obey.

1. Attestations, Not Just Inventories

Knowing what’s in the binary is less than half the story. You need to know:

  • Was it built from the verified source code?
  • Were the dependencies fetched from trusted, immutable sources?
  • Did it pass all security and unit tests?
  • Was it built in a secure, ephemeral environment and not on a developer’s laptop?

This is the realm of software attestations. Tools like the SLSA framework and Sigstore provide the means to generate cryptographic proof of these build steps. An SBOM becomes infinitely more valuable when it is one of several attested facts about an artifact, all tied together with a unforgeable signature. The list of components gains context and trustworthiness.

2. Automated Policy as Code

A list with no rules is just data. The security power comes from defining policy—as code—that automatically evaluates artifacts against that data. For example:

  • “No container may be deployed that contains a dependency with a critical CVSS score not explicitly waived.”
  • “All Go binaries must be compiled with version 1.21 or higher.”
  • “No application may use libraries from the following deprecated package repositories.”

An SBOM can be an input

A Practical Path Forward: SBOMs as a Data Source, Not a Destination

This isn’t a call to abandon SBOMs. It’s a demand to stop fetishizing the artifact and start building the systems that make its data actionable. Here is what a mature software supply chain security practice actually requires:

  1. Generate SBOMs Automatically and Early: Integrate SBOM generation (using tools like Syft, Trivy, or build-time plugin) directly into your CI build stage. Don’t make it a separate, manual job.
  2. Sign and Attest Everything: Use Sigstore’s Cosign to sign your container images and their accompanying SBOMs. Attest to the build provenance. This creates a chain of trust that is verifiable, not assumable.
  3. Feed SBOMs into a Unified Policy Engine: Pipe the SBOM data directly into your security scanning and policy platform. The analysis—vulnerability matching, license compliance, component approval—must be automatic and must produce a clear pass/fail result for the pipeline.
  4. Enforce at Critical Gates: Configure your CI system to fail the build if policy violations are detected. Configure your admission controller (e.g., Kyverno for Kubernetes) to reject deployments of artifacts that don’t have a valid signature and attestation, or that violate post-build discovered policies.
  5. Correlate with Runtime Context: Connect your SBOM/vulnerability data to your runtime security and observability tools. If a vulnerability is detected in a running service, you can instantly see its full component tree and assess exploitability based on actual usage, not just presence.

In this model, the SBOM is a critical, machine-readable data feed. It is not a PDF to be emailed to the security team. It is fuel for automation.

Conclusion: From Paperwork to Platform

The industry’s current SBOM checklist mentality is setting us up for failure. It creates a false sense of security while consuming energy that should be directed toward engineering robust, automated defenses. A list of components without verifiable build integrity is untrustworthy. A list of components without automated policy enforcement is inert.

Software supply chain security is not a documentation problem; it is an engineering and automation problem. We must move beyond treating SBOMs as the ultimate deliverable and start treating them as one sensor in a larger, interconnected security system. The goal is not to have an SBOM. The goal is to have a software factory where only verified, compliant, and attested artifacts can progress from code commit to production deployment. Let’s stop celebrating the list and start building the platform that makes it meaningful.

Related Posts