SBOM explained: know what is inside your software
Learn how a Software Bill of Materials supports dependency visibility, vulnerability response and safer software purchasing without becoming a security guarantee.
Understand what an SBOM records
A Software Bill of Materials, or SBOM, is a structured inventory of the components and dependency relationships inside a software product. It plays a role similar to an ingredients list: it can identify packages, versions, suppliers and how components relate to one another. Unlike a manually written dependency page, a useful SBOM is machine-readable so organizations can compare many products and releases automatically.
Modern applications rarely consist only of code written by one team. They include open-source libraries, commercial components, generated packages, operating-system dependencies and nested dependencies brought in by other packages. When a serious vulnerability appears, an accurate SBOM helps an organization ask a specific question: which deployed products contain the affected component and version? It can reduce the time spent searching repositories and contacting every team separately.
An SBOM describes composition; it does not certify that the software is secure, licensed correctly or free from malicious code. A listed component can contain an unknown vulnerability, and an omitted component can create false confidence. The inventory becomes valuable when it is current, tied to an identifiable product release and connected to vulnerability, asset and supplier-management processes.
Check identity, relationships and generation context
Begin with component identity. Names alone are ambiguous, so useful records include the component version, supplier, unique identifiers where available and the SBOM author. The document should identify the software product or artifact it describes and include a creation timestamp. Dependency relationships should show whether one component contains, depends on or was built from another component instead of presenting an unexplained flat list.
Generation context explains what the tool was able to observe. A source or pre-build SBOM reflects repositories and declared dependencies. A build-time SBOM can record components that contributed to the releasable artifact. A post-build SBOM may come from analysis of binaries or containers. These views can differ legitimately, so record the method and tool rather than assuming that two files with different results mean one is fraudulent.
CISA's 2025 minimum-elements guidance identifies SPDX and CycloneDX as widely used machine-processable formats. An organization should select supported versions that its tools can reliably generate, validate and consume. Converting a file into one of these formats does not fix weak data: component identifiers, relationships and generation details still need to be complete enough for the intended use.
Generate and validate an SBOM in the delivery pipeline
Generate an SBOM for each release from a controlled build or artifact-analysis stage. Give the output a stable relationship to the exact binary, container image, package or firmware version shipped. Store it with release evidence and protect its integrity through repository controls, signatures or attestations supported by the delivery platform. Regenerate it when dependencies or build inputs change rather than copying the previous release's file.
Validate both the document and its contents. Confirm that the format parses, required fields exist, versions are supported, identifiers are well formed and relationships do not point to missing components. Compare declared packages with lockfiles, container layers or binary analysis as appropriate. Investigate surprising differences, but document expected exclusions and tool limitations so future reviewers do not repeat the same work.
Avoid publishing sensitive build paths, private repository names or internal infrastructure details without review. An SBOM does not always have to be public; access can follow customer, contractual or regulatory needs. Provide a documented discovery and delivery method so authorized consumers can find the correct SBOM for the exact product version rather than receiving an outdated attachment from an email thread.
Turn the inventory into vulnerability response
Load SBOM data into an asset or dependency-management process and map it to deployed products, owners and environments. Match components against reliable vulnerability sources, then confirm whether the affected code is present and reachable. A version match is a reason to investigate, not automatic proof that a product is exploitable. Configuration, backports and execution paths can change the result.
A Vulnerability Exploitability eXchange, commonly called VEX, can communicate whether a known vulnerability affects a particular product and why. Treat VEX as time-bound supplier input that needs product and version identity, supporting rationale and updates when conditions change. It complements the component inventory; it should not erase the underlying finding or prevent independent review of high-impact risks.
Measure whether the process improves response. Useful measures include the share of releases with validated SBOMs, component coverage, time needed to locate an affected product, unresolved supplier questions and the age of deployed unsupported dependencies. Run exercises using a real historical vulnerability to test whether teams can move from an advisory to product identification, risk decision, remediation and customer communication.
Ask useful questions when buying software
Buyers should request an SBOM for the product and release they will actually deploy. Ask which format and version is supplied, how it is generated, how often it is updated, how nested dependencies are represented and how corrections are delivered. Define access, retention and confidentiality terms in the contract instead of assuming that a sales promise will remain available after purchase.
Ask how the supplier monitors vulnerabilities, communicates exploitability, supports end-of-life components and notifies customers of a material issue. Determine whether the SBOM covers optional modules, bundled runtimes, containers and firmware. A short inventory for a complex product may still be legitimate, but it deserves an explanation of scope and generation visibility.
Do not make file delivery the finish line. Assign an internal owner who can ingest the SBOM, connect it to the deployed asset and act on new vulnerability information. Start with critical products and a small set of repeatable uses, then improve depth and automation. A smaller validated programme that supports incident response is more useful than collecting thousands of files that no team can search or maintain.
Quick checklist
- Tie every SBOM to an exact product, artifact and release.
- Record component identity, versions, suppliers and dependency relationships.
- Document whether generation occurred before, during or after the build.
- Validate the machine-readable format and compare it with available build evidence.
- Connect components to deployed assets, owners and vulnerability response.
- Test supplier update, correction and exploitability-notification procedures.
Primary references
Standards and platform support change. Use these authoritative sources to check the current specification and migration guidance.
