Software bills of materials (SBOMs)
An SBOM records software components in a machine-readable inventory associated with a product or release.
What it means
An SBOM records software components in a machine-readable inventory associated with a product or release. A dependency graph adds relationships that help teams locate indirect components. Both support vulnerability response, but usefulness depends on completeness, version accuracy, and the link to actually deployed artifacts.
A practical example
A security team receives an advisory about a library and queries the SBOM for affected releases. It checks indirect dependencies and deployed versions before deciding which services require investigation, rather than treating every source repository as an identical exposure.
What to check
Generate inventories for releases, bind them to artifact identity, and document incomplete coverage. Preserve component versions and dependency relationships and verify that the inventory matches the delivered software.
A common pitfall
A component missing from an incomplete SBOM is not evidence that the software does not use it. An inventory also does not establish whether a vulnerability is reachable.
Think it through
Why tie an SBOM to a release digest or equivalent artifact identity?
Answer: It helps distinguish the components in a specific delivered artifact from assumptions about changing source code.
Ask what software the inventory actually describes
A useful software inventory must correspond to a particular product or release. A dependency manifest in a source repository may differ from the final deployed package: build steps can resolve versions, bundle libraries, or add operating-system components. Record the generation scope and preserve enough release identity to connect the inventory to the artifact people run.
Completeness is a separate question from valid formatting. A document may pass its schema check while omitting a bundled component. Its author and generation process therefore matter. An SBOM also does not establish that the listed software is secure; it supplies information that can support further analysis and response.
A fictional advisory response
A new advisory affects a parser library. An academy's application team searches its release inventories and discovers that a reporting plugin includes the library indirectly. The parent application never named the parser as a direct dependency, so checking only the top-level manifest would have missed it. The team now needs to assess the exact version and deployment context.
The inventory narrows the search, but the team still evaluates whether the vulnerable behavior is present and reachable, what remediation is available, and which deployed releases need attention. A signed inventory protects the integrity of the associated claim; it does not make every claim automatically complete or correct.
Inspect a harmless sample
Generate or obtain an SBOM for a training application you own. Find the product version, generation information, one direct component, and one indirect relationship. Compare a listed component with the actual build output where practical. Record any uncertainty instead of treating absence from the inventory as conclusive proof that a component is absent from the deployed software.
Related concepts
References & further reading
Original explanations, with primary references for deeper study.
OWASP: Dependency Graph SBOM