Skip to content
Distr
Book DemoStart free trialLogin
← Back to Glossary

Software Bill of Materials (SBOMs)

Discover what SBOMs are, their importance, and their role in software security supply chains.

What is an SBOM?

A Software Bill of Materials (SBOM) is a detailed, machine-readable list of all software components and dependencies within an application. Much like an ingredient list on food packaging, an SBOM provides transparency into the software’s composition, including open source libraries, frameworks, and other dependencies, along with their version and licensing information.

Application

SBOM

Direct Dependencies

Metadata

Licensing Info

Version Info

Dependency 1 v1.2.3

Dependency 2 v2.0.1

Transitive Dependencies

Sub-Dependency A v0.9.5

Sub-Dependency B v1.5.0

The diagram above illustrates how an SBOM provides a comprehensive inventory of all software components, including direct and transitive dependencies, along with essential metadata.

Why do SBOMs Matter?

The clearest illustration is the Log4Shell vulnerability in 2021. Organizations with SBOMs could search their inventories and know within hours which applications contained the vulnerable Log4j library. Organizations without them spent weeks manually auditing software.

Beyond incident response, SBOMs matter for:

  • Security. A clear view of all components and dependencies lets you act quickly when a new vulnerability in any of them is disclosed.
  • Compliance. Regulators increasingly require component transparency. In the US, Executive Order 14028 pushed SBOM requirements for software sold to the federal government. In the EU, the Cyber Resilience Act requires manufacturers of products with digital elements to maintain SBOMs.
  • Risk management. Knowing what components are in use makes it possible to assess the risk of third-party software before adopting it.
  • License audits. SBOMs record license information for each component, which matters when open source licenses impose obligations on distribution.

Where are SBOMs stored and how are they used?

SBOMs are typically stored in:

  • Version Control Systems: Integrated with source code repositories to ensure they are updated alongside the software.
  • Artifact Repositories: Can be attached to an image in an OCI-compliant registry and distributed alongside it.

By maintaining SBOMs in these locations, organizations ensure they are readily accessible for security assessments, audits, and compliance checks.

Common SBOM Formats

Three widely adopted SBOM formats include:

How to generate an SBOM

SBOMs can be generated using various tools and methods. Here are some commonly used tools:

  • Syft: A popular tool for generating SBOMs from container images and filesystems. It supports various formats like SPDX, CycloneDX, and its own format.
  • Trivy: A security scanner that also generates SBOMs from container images, filesystems, and repositories in SPDX and CycloneDX formats.
  • The SBOM Tool: Developed by Microsoft, generates SBOMs in SPDX format and supports various package managers.
  • CycloneDX Generator (cdxgen): The official OWASP SBOM tool, supporting a wide range of programming languages. It outputs SBOMs in CycloneDX format.
  • SPDX SBOM Generator: Supports multiple package managers and outputs SBOMs in SPDX format.
  • Distr: Once the feature is enabled, SBOMs are automatically generated upon pushing an artifact to the registry.

Here are some examples of how to generate SBOMs using these tools:

Terminal window
# Using Syft for container images and filesystems
syft alpine:latest -o cyclonedx-json > alpine-sbom.json
# Using CycloneDX tools for Maven projects
mvn org.cyclonedx:cyclonedx-maven-plugin:makeAggregateBom
# Using SPDX tools for Node.js projects
npm install -g @spdx/spdx-sbom-generator
spdx-sbom-generator -p ./
# Push a sample image to the Distr registry using ORAS (https://oras.land/)
# and automatically generate an SBOM
oras push registry.distr.sh/my-organization/my-application:1.0.0 \
./sample-image.tar:application/vnd.oci.image.layer.v1.tar

Best Practices for Implementing SBOMs

To maximize the effectiveness of SBOMs:

  • Automate SBOM generation in your CI/CD pipeline.
  • Keep SBOMs updated with each release.
  • Securely store SBOMs while ensuring accessibility for security teams.
  • Integrate SBOMs into your vulnerability management processes.
  • Include both direct and transitive dependencies.
  • Use automated tools to validate SBOM completeness.

An SBOM that sits unused in a repository does not improve security. The value comes from wiring it into vulnerability management, so that when the next Log4Shell happens, you can answer “are we affected?” in minutes.

Key Terms Recap

  • SBOM: A comprehensive inventory of software components
  • Software Supply Chain Security: Securing all components and processes in software development and deployment
  • Dependencies: External software packages your application relies on
  • Transitive Dependencies: Dependencies of your dependencies
  • Vulnerability Management: Identifying, classifying, remediating, and mitigating software vulnerabilities

Turn self-hosted into a repeatable sales motion

From your first on-prem POC to dozens of enterprise customers, the Distr platform gives you the tooling to deploy, update and manage self-hosted customers, backed by a team that supports you hands-on with the deployment knowledge and implementation help.

Proof from teams shipping self-hosted software

GovCloud deployments without extra overhead

"Distr gives us a clean way to deploy and update our software in GovCloud without breaking security or adding operational overhead."

Corbin Klett

Corbin Klett

Co-Founder, Artifact

Manual operations become one-click workflows

"Our main goal is to simplify the daily operations. No more manual installations, updates, or rollbacks — everything can now be handled with a single click with Distr."

Jefferson Rodrigues

Jefferson Rodrigues

Co-Founder & CTO, Lerian

Read case study

Updates that took days now take minutes

"Distr eliminated nearly all deployment headaches. Updates that used to take days now take minutes."

Ansh Gupta

Ansh Gupta

CTO, Sophris.ai

Read case study

One place for every self-hosted customer

"Having a dedicated space for all our self-hosted customers that can manage authenticated registry access is great."

Derek Reynolds

Derek Reynolds

Product Engineer, Basedash

Read case study

From guided setup to scalable delivery

"We went from hands-on Docker setup calls to an install flow that can be running in minutes."

Daniel Kasen

Daniel Kasen

Chief Engineer for Customer Success, Ozgar AI

Read case study

Self-hosted without the engineering tax

"Weave has a fully self-hosted offering. It's a huge unlock for us, but we almost didn't build it. Distr made such a huge difference in getting us there."

Andrew Churchill

Andrew Churchill

Co-Founder & CTO, Weave

Read case study