SBOM-guiden
Grunderna om SBOM

Vad finns i en SBOM?

Fälten som beskriver varje komponent och dokumentet som helhet

En SBOM har två delar: uppgifter om dokumentet självt, och en lista över komponenter med uppgifter om var och en. Fälten heter olika i CycloneDX och SPDX, men innehållet är i stort detsamma.

Uppgifter om varje komponent

FältExempelAnvänds till
Namnopenssl, react, log4j-coreAtt identifiera komponenten
Version3.0.13, 18.2.0, 2.14.1Att avgöra om en sårbarhet gäller just den här versionen
LeverantörApache Software Foundation, Red HatAtt veta vem som står bakom komponenten
Unik identifierarepkg:npm/react@18.2.0 (purl), CPEAtt matcha komponenten mot sårbarhetsdatabaser
LicensMIT, Apache-2.0, GPL-3.0-onlyLicenskontroll
KontrollsummaSHA-256 för filenAtt verifiera att komponenten är den som anges

Namn och version räcker inte alltid för att peka ut en komponent, eftersom samma namn kan finnas i flera ekosystem. Därför behövs en unik identifierare. Den vanligaste är Package URL (purl), som anger ekosystem, namn och version i en sträng.

Relationer mellan komponenter

En SBOM beskriver också hur komponenterna beror på varandra. Ett direkt beroende är något applikationen själv använder. Ett transitivt beroende är något som ett annat beroende i sin tur behöver.

Relationerna behövs för att förstå varför en komponent finns med, och vilken uppdatering som krävs för att bli av med en sårbar version.

Uppgifter om dokumentet

  • Vem som skapade SBOM:en, och med vilket verktyg.
  • Tidpunkt för när den skapades.
  • Vilken produkt och version den beskriver.

Det som normalt inte finns i en SBOM

En SBOM listar komponenter, inte sårbarheter. Vilka sårbarheter som berör en komponent ändras från dag till dag, medan SBOM:en för en viss version är densamma. Sårbarheter tas därför fram genom att SBOM:en jämförs mot aktuella sårbarhetsdatabaser.

Bedömningen av om en sårbarhet faktiskt påverkar produkten delas i ett separat dokument, VEX.

Lägstanivå

Vilka fält som minst ska vara ifyllda beskrivs i SBOM Minimum Elements. Varför är SBOM-kvalitet viktigt? beskriver vad som händer när fält saknas.

Referenser

  • CycloneDX 1.6

    Referensdokumentationen för CycloneDX 1.6 visar hur fälten definieras i formatet.

    cyclonedx.org

På den här sidan