Wat een SBOM is
Een SBOM somt elk softwarecomponent in een product op: open-source bibliotheken, het besturingssysteem, modules van derden en je eigen packages. Per component legt hij vast:
- naam en versie, bijvoorbeeld
openssl 3.0.13 - leverancier
- een unieke identificatie - een package-URL (purl) of CPE
- licentie
- van welke andere componenten het afhankelijk is
Wat de CRA vereist
Bijlage I van Verordening (EU) 2024/2847 (Cyberweerbaarheidsverordening) verplicht fabrikanten om de kwetsbaarheden en componenten in hun producten te identificeren en te documenteren, onder meer door een softwarestuklijst op te stellen in een gangbaar en machineleesbaar formaat die ten minste de afhankelijkheden op het hoogste niveau omvat. De SBOM maakt deel uit van je technische documentatie; je hoeft hem niet te publiceren, maar markttoezichtautoriteiten kunnen erom vragen.
CycloneDX en SPDX
Twee formaten worden veel gebruikt, en beide zijn machineleesbaar:
- CycloneDX (OWASP) - ontworpen voor securitytoepassingen, met ingebouwde ondersteuning voor de uitbuitbaarheid van kwetsbaarheden (VEX).
- SPDX (Linux Foundation, ISO/IEC 5962) - oorspronkelijk bedoeld voor licentiecompliance, breed ondersteund door buildtools.
De meeste build-ecosystemen kunnen ze genereren: bijvoorbeeld Syft of cdxgen voor containers en bestandssystemen, de CycloneDX-plug-ins voor Maven, Gradle en npm, en de SPDX-uitvoer van het Yocto Project voor embedded Linux.
Een SBOM is alleen nuttig als hij actueel blijft
Een SBOM die eenmalig is opgesteld voor de conformiteitsverklaring, is bij de volgende release al verouderd. Wat in de praktijk helpt:
- één SBOM per uitgebrachte versie, gegenereerd in de build-pipeline;
- elk component dagelijks getoetst aan nieuwe kwetsbaarheidsdata;
- een vastgelegde beslissing voor elke bevinding - getroffen, niet getroffen of opgelost;
- de verschillen tussen releases in één oogopslag zichtbaar.
Hoe Kernwatch je SBOM's gebruikt
- Importeer CycloneDX of SPDX via upload of vanuit CI met een API-sleutel.
- Vergelijk releases en zie welke componenten zijn toegevoegd, verwijderd of gewijzigd.
- Matching van componenten met een pakket-ID (purl) met OSV, de CISA-lijst van bekende uitgebuite kwetsbaarheden en de EU-kwetsbaarhedendatabase: dagelijks bij betaalde abonnementen, wekelijks bij Free.
- Beoordelingen als VEX geëxporteerd samen met de SBOM wanneer een klant of autoriteit erom vraagt.
- Bekijk: Producten, releases en SBOM's (4 min)
- Bekijk: SBOM's uploaden vanuit CI met een API-sleutel (2 min)
- Bekijk: Beoordeling, releasevergelijking en SBOM-export (3 min)