131% fler rapporterade CVE:er per dag 2026 än förra året.
← Tillbaka till ordlistan

SBOM-fullständighet

SBOM-fullständighet handlar om huruvida en SBOM listar varje komponent som gick in i den programvara den beskriver, på alla nivåer, inte bara om filen är giltig.

Senast uppdaterad: 11 november 2026

En SBOM är fullständig när den listar varje komponent som gick in i den programvara den beskriver, på alla nivåer i beroendeträdet, även komponenter som ingen lockfile eller manifest listar. SBOM-fullständighet är just den egenskapen. CISA:s 2026 Minimum Elements ber SBOM-författare att uttryckligen ange när information är okänd, och konstaterar att mottagare kan betrakta en SBOM som ofullständig om väsentliga komponentdata hålls inne.

Fullständighet, giltighet och kvalitet är olika saker

FrågaVad det betyderVad som kontrollerar detVad det inte kan säga
GiltigFilen följer CycloneDX- eller SPDX-schematEn schemavalidatorOm komponenter saknas
FältkvalitetVarje komponent har namn, version, leverantör, identifierare, licens och hashEtt kvalitetsbedömningsverktygOm komponenter saknas
FullständigInget av det som gick in i programvaran saknasEn jämförelse med vad bygget faktiskt tog inIndata som jämförelsen inte såg

Identifieraren i andra raden är oftast en package URL eller en CPE. En fil kan klara de två första kontrollerna perfekt och ändå utelämna halva programvaran.

Varför fullständighet är svår att mäta i efterhand

En skanner utgår från lockfiler, manifest eller det färdiga resultatet. Den kan inte känna till ett paket som ett post-install-skript laddade ner, ett crate som kompilerats in i en binär eller ett lager i basavbildningen som den aldrig fick se. Vart och ett av dem är ett dolt beroende.

Ta en Node.js-tjänst vars lockfile listar 400 paket. Ett av dem har ett postinstall-skript som laddar ner en förbyggd binär under npm ci. En SBOM som genererats från package-lock.json är giltig, varje komponent har en version och en package URL, och binären saknas. Inget kvalitetsbetyg flaggar det, eftersom inget i filen pekar på det som saknas.

Att bygga om senare avgör inte heller frågan: om bygget inte är ett reproducerbart bygge kan ett andra bygge ta in något annat än det första.

Hur du redovisar fullständighet ärligt

  • Ange genereringskontexten: om SBOM:en togs fram från källkoden före bygget, registrerades under bygget eller skapades genom att analysera resultatet i efterhand.
  • Lista kända luckor: delar av programvaran som verktyget inte kunde se, till exempel vendorad kod, förbyggda binärer eller komponenter som installerats utanför en pakethanterare.
  • Föredra en status med skäl framför ett betyg. En fullständighetsprocent kräver en total, och den totalen är precis vad ingen känner till. En uppgift som "ofullständig: jobbet tillät oövervakad trafik" går att agera på.

Bästa praxis för SBOM tar upp den bredare praxisen att ange vad en SBOM inte kunde se.

Fullständighetsstatus i CRACI

CRACI ger varje jobbs SBOM en fullständighetsstatus, och även cachar får en. Statusarna enligt CRACI:s dokumentation:

  • Complete: "CRACI observerade fullständiga underlag för jobbet, och varje återställd cache var fullständig."
  • Complete with connections: "Kraven uppfylldes, men jobbet använde en eller flera anpassade nätverksanslutningar."
  • Incomplete: "CRACI identifierade ett förhållande som kan göra att beroenden saknas i SBOM:en."
  • Unavailable: "CRACI kunde inte slutföra utvärderingen av underlaget."
  • Not recorded: "Jobbet är äldre än fullständighetsrapporteringen."

CRACI kan ange detta eftersom det ser varje jobbs trafik till paketkällor och därför vet när något kan ha gått förbi: trafik som det inte övervakade, eller en återställd cache vars egen SBOM var ofullständig. När ett jobb är ofullständigt visar jobbet skälet, till exempel "Unmonitored traffic was allowed". Se SBOM-generering.

De här statusarna gäller byggen som körs på CRACI:s runners. För en SBOM från en leverantör, eller från en pipeline som inte körs på CRACI, använder du jämförelserna och reglerna ovan.