A software bill of materials: the ingredient list for the software you build and buy. Joshua Marpet and Cairn Viktor
What Is an SBOM? · VCRI Learnvaluechainrisk.org/learn · CC BY 4.0
Why you care
“Are we affected?”
CVE is Common Vulnerabilities and Exposures, the public ID for a known flaw. CISA is the US Cybersecurity and Infrastructure Security Agency.
December 2021
A flaw called Log4Shell (CVE-2021-44228) is found in Log4j, a Java logging library.
CISA calls Log4j “very broadly used” in consumer and enterprise services, websites and applications.
The hard question
Not “how do we fix it?” but “where is it?”
Log4j usually arrives buried inside other software. You cannot patch what you cannot find.
Source: CISA, Apache Log4j Vulnerability Guidance
What Is an SBOM? · VCRI Learnvaluechainrisk.org/learn · CC BY 4.0
The idea in one line
A software bill of materials is “a formal record containing the details and supply chain relationships of various components used in building software.” “It is analogous to a list of ingredients on food packaging.”
US Executive Order 14028, Section 10(j), May 12, 2021
What Is an SBOM? · VCRI Learnvaluechainrisk.org/learn · CC BY 4.0
What is inside
The minimum fields, per component
Field
What it answers
Supplier
Who made this component?
Component name and version
What is it, exactly which release?
Other unique identifiers
A precise ID tools can match, such as a package URL
Dependency relationship
Which component pulls in which?
Author and timestamp
Who wrote this SBOM, and when?
Source: NTIA, The Minimum Elements for a Software Bill of Materials, July 12, 2021. A cryptographic hash is a recommended extra field.
What Is an SBOM? · VCRI Learnvaluechainrisk.org/learn · CC BY 4.0
Dependency relationships
Ingredients have ingredients
NTIA describes software as a hierarchical tree of components and subcomponents. The relationships are what let you trace a flaw upward.
Your app
The code your team wrote, plus everything it pulls in.
→
A web framework
A direct dependency: you chose it on purpose.
→
A logging library
A transitive dependency: the framework chose it for you.
→
Its own parts
And so on down. A software tree can be many levels deep.
What Is an SBOM? · VCRI Learnvaluechainrisk.org/learn · CC BY 4.0