Cyber Security Academy · Les

Software Bill of Materials (SBOM)

Inventariseren wat uw software bevat

Les 2 van 413 stappen

Software Bill of Materials (SBOM) is een gratis Cyber Security Academy-les op CoddyKit. Dit is les 2 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Cyber Security Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Cyber Security Academy bevat in totaal 4 lessen.

Wat een SBOM is

Een softwareonderdelenlijst (SBOM) is een formele, machineleesbare inventaris van elk onderdeel in een softwareproduct: bibliotheken, hun versies, licenties en leveranciersinformatie.

Net zoals een voedingsetiket ingrediënten vermeldt, kun je met een SBOM binnen enkele seconden antwoorden op de vraag: bevat dit product de kwetsbare versie van X? Zonder SBOM kan die vraag dagen handmatig speurwerk kosten.

Waarom SBOM's nu belangrijk zijn

Wanneer een kritieke kwetsbaarheid wordt gepubliceerd, is de eerste operationele vraag hoe groot de blootstelling is: welke van onze producten bevatten het getroffen onderdeel?

Tijdens het Log4Shell-incident konden organisaties met SBOM's hun inventaris doorzoeken en binnen enkele uren prioriteiten stellen. Organisaties zonder SBOM's waren weken bezig met het doorzoeken van bouwmappen. Toezichthouders en grote afnemers eisen steeds vaker SBOM's als voorwaarde voor inkoop.

  • Snelle impactanalyse van kwetsbaarheden
  • Naleving van licenties en bijhouden van verplichtingen
  • Transparantie van de toeleveringsketen voor klanten en controleurs

Standaardindelingen voor SBOM's

Twee open standaarden zijn dominant. Hulpmiddelen kunnen meestal tussen beide converteren.

  • SPDX — een standaard van de Linux Foundation, sterk op het gebied van licenties en breed geaccepteerd door toezichthouders
  • CycloneDX — een standaard van OWASP, gericht op beveiliging en geschikt voor gegevens over kwetsbaarheden en relaties tussen afhankelijkheden

Verzin geen eigen indeling; afnemers en scanners verwachten deze formaten.

Wat een item bevat

Elk onderdeel in een item moet genoeg identiteitsgegevens bevatten om het te kunnen koppelen aan gegevensbronnen met kwetsbaarheden. De belangrijkste velden:

  • naam en versie — exact, geen bereik
  • PURL (pakket-URL) — een universele aanduiding zoals pkg:npm/lodash@4.17.21
  • hash — om de integriteit te controleren
  • licentie — SPDX-licentieaanduiding
  • leverancier — wie het heeft geproduceerd
# A PURL uniquely identifies a component across ecosystems
pkg:npm/lodash@4.17.21
pkg:pypi/requests@2.31.0
pkg:golang/github.com/gin-gonic/gin@v1.9.1

Een SBOM genereren

Genereer SBOM's automatisch vanuit de broncode of vanuit een gebouwd artefact. Syft is een veelgebruikte generator voor meerdere ecosystemen die beide standaarden kan uitvoeren.

# from a project directory (CycloneDX JSON)
syft dir:. -o cyclonedx-json=sbom.cdx.json

# from a container image (SPDX JSON)
syft my-app:1.4.0 -o spdx-json=sbom.spdx.json

# CycloneDX has native generators per ecosystem too
cyclonedx-npm --output-file sbom.json

SBOM's voor broncode, bouw en uitvoering

Een SBOM die in verschillende fasen wordt gegenereerd, geeft verschillende werkelijkheden weer.

  • Bron-SBOM — wat het manifest opgeeft; kan gebundelde of meegeleverde code missen
  • Bouw-SBOM — wat er tijdens het bouwen werkelijk is binnengehaald; het nauwkeurigste beeld voor een uitgave
  • SBOM voor uitvoering of uitrol — wat daadwerkelijk aanwezig is in de actieve image, inclusief pakketten van het besturingssysteem

Genereer voor zekerheid over de toeleveringsketen een SBOM tijdens het bouwen vanuit het echte artefact en scan ook de uiteindelijke container op pakketten van het besturingssysteem.

Een SBOM scannen op kwetsbaarheden

Een SBOM wordt krachtig wanneer je die aan een koppelprogramma aanbiedt dat onderdelen aan bekende CVE's koppelt. Zo staan generatie en analyse los van elkaar: je kunt een oude SBOM scannen op de dag dat een nieuwe CVE verschijnt.

# match an SBOM against vulnerability databases
grype sbom:sbom.cdx.json

# OSV scanner consumes SBOMs directly
osv-scanner --sbom=sbom.spdx.json

# fail CI above a severity threshold
grype sbom:sbom.cdx.json --fail-on high

VEX: aangeven wat exploiteerbaar is

Een SBOM kan een kwetsbaar onderdeel tonen dat in je product in werkelijkheid niet exploiteerbaar is, omdat de kwetsbare functie nooit wordt aangeroepen. Een VEX-document (Vulnerability Exploitability eXchange) legt die beoordeling vast.

VEX vermindert ruis: in plaats van dat elke klant in paniek raakt over een vermelde CVE, publiceer je een verklaring van not_affected met een toelichting, of van affected met herstelmaatregelen. Zo verandert een ruwe inventaris in een bruikbare prioritering.

SBOM's verspreiden en ondertekenen

Een SBOM is alleen betrouwbaar als die authentiek is en aan het exacte artefact is gekoppeld dat erin wordt beschreven. Onderteken de SBOM en voeg die als attestatie toe in plaats van als los bestand.

# attach a signed SBOM attestation to an image with cosign
cosign attest --predicate sbom.cdx.json \
  --type cyclonedx \
  my-registry/my-app:1.4.0

# verify the attached SBOM attestation
cosign verify-attestation --type cyclonedx my-registry/my-app:1.4.0

SBOM's automatiseren in CI

Handmatige SBOM's raken meteen verouderd. Neem generatie op in de bouwstraat, zodat elke uitgave er een produceert en opslaat als bouwartefact, bij voorkeur ondertekend en gescand in dezelfde taak.

  • Genereer vanuit het gebouwde artefact, niet alleen vanuit de codeopslag
  • Sla SBOM's op in een doorzoekbaar register dat op versie is geïndexeerd
  • Scan opgeslagen SBOM's volgens een schema opnieuw tegen actuele CVE-gegevensbronnen
  • Laat uitgaven afhangen van het resultaat van de kwetsbaarheidsscan

Veelvoorkomende valkuilen met SBOM's

SBOM's werken ongemerkt niet wanneer ze als een afvinkpunt worden behandeld.

  • Verouderd — één keer gegenereerd en nooit opnieuw gegenereerd
  • Onvolledig — mist pakketten van het besturingssysteem en statisch gekoppelde of meegeleverde code
  • Niet geverifieerd — geen hash die de SBOM aan het uitgerolde artefact koppelt
  • Ongebruikt — geproduceerd maar nooit gescand of doorzocht

Het doel is een nauwkeurige, opnieuw gegenereerde, ondertekende en voortdurend gescande SBOM, niet een eenmalig JSON-bestand.

Korte controle: doel van een SBOM

Pas toe wat je hebt geleerd in een incidentscenario.

Samenvatting: SBOM

Je kunt nu inventariseren wat je software bevat en ernaar handelen.

  • Een SBOM is een machineleesbare lijst van elk onderdeel, in de indeling SPDX of CycloneDX
  • Identificeer onderdelen met PURL, versie, hash en licentie
  • Genereer de SBOM tijdens het bouwen en bied die vervolgens aan een koppelprogramma (grype, osv-scanner) aan voor CVE's
  • Gebruik VEX om de werkelijke exploiteerbaarheid aan te geven en valse alarmen te verminderen
  • Onderteken en automatiseer in CI; scan opgeslagen SBOM's opnieuw tegen nieuwe gegevensbronnen

Vervolgens toon je met ondertekening aan waar artefacten vandaan komen.

Gratis beginnen

Leer Cyber Security Academy met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
76
Lessen
303

Veelgestelde vragen

Is de les “Software Bill of Materials (SBOM)” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad Cyber Security Academy, waaronder “Software Bill of Materials (SBOM)”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Cyber Security Academy bevat in totaal 4 lessen.

Wat leer ik in “Software Bill of Materials (SBOM)”?

Inventariseren wat uw software bevat Je oefent met Cyber Security Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Cyber Security Academy te beginnen?

Ervaring vooraf is niet nodig. Cyber Security Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.

Hoe lang duurt de les “Software Bill of Materials (SBOM)”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Cyber Security Academy?

Ja. Elke les over Cyber Security Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Bedreigingen in de supply chain
  2. Software Bill of Materials (SBOM)
  3. Dependencies en artefacten ondertekenen
  4. CI/CD-pipelines beveiligen
← Terug naar Cyber Security Academy