Ondanks de toenemende acceptatie van de Software Bill of Materials (SBOM) als hulpmiddel voor kwetsbaarheidsbeheer en cyberbeveiliging, hebben veel organisaties nog steeds moeite met het begrijpen van de twee populairste SBOM-formaten die tegenwoordig worden gebruikt, SPDX en CycloneDX. In dit artikel vergelijken we deze twee formaten om u te helpen de juiste keuze te maken voor uw behoeften.
Wat zijn SBOM-formaten
Bij het ontwikkelen van softwarestuklijsten voor softwareontwikkeling en kwetsbaarheidsbeheer is het nodig om zich aan een specifiek formaat of specifieke standaarden te houden. De standaard SBOM-formaten definiëren een specifieke en uniforme structuur voor het genereren van SBOM en bepalen ook hoe deze wordt gedeeld met klanten en gebruikers in de softwaretoeleveringsketen. De SBOM-formaten definiëren ook de samenstelling van de software in een formaat dat gemakkelijk te begrijpen is voor andere cybersecuritytools. Over het algemeen zijn er drie SBOM-formaten. Ze bevatten:
Softwarepakket gegevensuitwisseling (SPDX): dit is een open-source, machinaal leesbaar SBOM-project van de Linux Foundation. Het is in de eerste plaats ontworpen om naleving en transparantie te garanderen bij het beheer van open-source- en bedrijfseigen code door ontwikkelingsteams en bedrijven.
CycloonDX (CDX): dit is ook een open-source en machineleesbaar SBOM-formaat ontwikkeld door de Open Web Application Security Project (OWASP)-gemeenschap. Het is een lichtgewicht SBOM-formaat dat zich richt op adoptiegemak en automatisering van het genereren van SBOM gedurende uw gehele softwareontwikkelingspijplijn.
Software-identificatietags (SWID): SWID-tags worden meer beschouwd als een software-ID dan als een SBOM-formaat. Het biedt een eenvoudige en transparante manier om software-inventaris bij te houden door specifieke informatie over de softwareversie op te slaan.
Over het algemeen worden alleen de SPDX- en CycloneDX SBOM-formaten officieel erkend. Het SWID-formaat wordt primair gebruikt voor software-identificatie, omdat het niet zoveel informatie biedt als de andere twee formaten.
SPDX en CycloneDX bevatten overlappende informatie, en velen hebben betoogd dat ze onderling uitwisselbaar kunnen worden gebruikt, omdat er geen enkel “standaard” SBOM-formaat bestaat. De twee formaten hebben echter traditioneel verschillende gebruiksscenario's binnen de levenscyclus van softwareontwikkeling. Daarom moeten verschillende organisaties bepalen welke het beste voor hen werkt, op basis van hun unieke behoeften op het gebied van cyberbeveiliging en compliance.
Klik hier om leer meer over SBOM-standaardformaten.
SPDX versus CycloneDx-vergelijking
SPDX en CyclonDX zijn de twee standaardformaten voor het genereren van SBOM, en dit zal waarschijnlijk nog lang zo blijven. De meeste SBOM-generatieplatforms ondersteunen beide formaten. Het zijn echter verschillende tools met verschillende gebruiksscenario's. Enkele van hun belangrijkste verschillen worden hieronder belicht:
CycloneDX-overzicht
CycloneDX is een open-source SBOM-project van een van de toonaangevende softwarebeveiligingsorganisaties, het Open Web Application Security Project (OWASP). Het project werd in 2017 gelanceerd als een componentanalyseplatform om gebruikers te helpen risico’s in de softwaretoeleveringsketen te identificeren. Identificatie van kwetsbaarheden blijft de primaire use case van CycloneDX. Dit SBOM-formaat helpt ook bij het naleven van licenties en bij het identificeren van verouderde softwarecomponenten.
CycloneDX is gericht op automatisering en het vergemakkelijken van de acceptatie van SBOM-vereisten gedurende de gehele bouwcyclus van software. Het formaat wordt gebruikt door zowel open-source als propriëtaire softwareorganisaties voor beveiligingsgebruik.
Als stuklijstformaat heeft CycloneDX andere toepassingen dan het opstellen van softwarestuklijsten. Het kan ook worden gebruikt om componenten, kwetsbaarheden en diensten van hardware en cloudsystemen te compileren. SBOM's opgesteld in het Cyclone DX-formaat vermelden kwetsbaarheden in drie hoofdvelden. Dit zijn:
- Common Platform Enumeration (CPE): Kwetsbaarheden binnen een applicatie, hardwareapparaten of besturingssysteem.
- SWID: de software-identificatietag wordt gebruikt om de componenten van geïnstalleerde software te analyseren
- Pakket-URL (PURL). CycloneDX vermeldt ook de metadata van softwarepakketten.
Daarnaast ondersteunt het CycloneDX-formaat ook het traceren van de herkomst van softwareproducten en hun componenten. Dit maakt het gemakkelijker om de auteurs en leveranciers van software en al zijn componenten te identificeren.
SPDX-overzicht
SPDX staat voor Software Package Data Exchange. Het is een open-sourceproject van de Linux Foundation, gecreëerd met de bedoeling te dienen als een gemeenschappelijk formaat voor het verzamelen en delen van softwaregegevens, met name licentie-informatie.
De SPDX-standaard werd oorspronkelijk in 2011 ontwikkeld als een open-source licentiebeheertool. In de loop der jaren is het formaat verfijnd met nieuwe velden die het vermogen van het formaat om belangrijke beveiligingsgerelateerde informatie vast te leggen verbeteren en het beter interoperabel maken met andere standaard SBOM-formaten.
In september 2021 erkende de International Standard Organization het SPDX-formaat als een internationaal erkende standaard voor SBOM-publicatie. SPDX is het enige SBOM-formaat dat deze prestatie heeft bereikt.
In versie 2.2.2 is de originele versie van de SPDX-specificatie ontwikkeld om de naleving van het softwarelicentiebeleid te vergemakkelijken. In latere versies zijn enkele mogelijkheden toegevoegd die het bruikbaar maken voor een breed scala aan gebruiksscenario's, waaronder de identificatie van softwarekwetsbaarheden.
De nieuwste versie van de SPDX is ontworpen in overeenstemming met de NTIA-standaard voor 'Minimum Elements For a Software Bill of Materials'. Het bevat de componenten, auteursrechten, licenties en beveiligingsreferenties van een stukje software.
Van een SBOM-document in SPDX-indeling wordt verwacht dat het specifieke velden en secties bevat, zoals hieronder aangegeven:
- Informatie over het maken van documenten: deze informatie wordt gebruikt om de compatibiliteit met standaardverwerkingstools te bepalen
- Pakketinformatie: de pakketinformatie definieert belangrijke entiteiten die dezelfde context delen binnen het softwarepakket, zoals de containers, componenten en producten.
- Bestandsinformatie: identificerende informatie voor de softwarebestanden, zoals de naam, licentie en copyrightinformatie voor elk bestand.
- Fragmentinformatie: dit is niet altijd van toepassing. De fragmentinformatie is alleen nodig als de softwaregegevens uit een andere bron komen.
● Relaties en annotaties: Een SBOM in SPDX-formaat geeft ook de relatie aan tussen de verschillende documenten, bestanden en pakketten die in de software worden gebruikt, met duidelijke annotaties die het voor iedereen gemakkelijker maken om de relaties van de softwarecomponenten te bekijken.
SPDX | CycloonDX |
---|---|
Informatie: Het SPDX SBOM-formaat legt informatie vast over de auteur van de software-BOM, hoe deze is gemaakt en wanneer deze is gemaakt voor elke versie van het SPDX-bestand. | BOM-metadata: Het CycloneDX-formaat legt belangrijke informatie vast over de softwarefabrikant/leverancier en doelcomponenten. Het bevat ook licentie-informatie en metagegevens van de tools die worden gebruikt om de stuklijst te maken. |
Pakketinformatie: bevat gegevens met betrekking tot de gemeenschappelijke eigenschappen van het gehele softwarepakket. | Componenten: schetst alle componenten van de software over de gehele supply chain. |
Bestandsinformatie: gegevens met betrekking tot alle bestanden die in het softwarepakket zijn opgenomen. | Services: schetst externe API's, eindpunt-URL's en authenticatievereisten. Vertrouw op grensoverschrijdingen en andere externe vereisten van de software. |
Fragmentinformatie: gegevens gerelateerd aan een specifiek deel van een bestand. | Afhankelijkheden: dit veld schetst de directe en transitieve relatie tussen de verschillende componenten van software |
Licentie-informatie: een veld om gegevens vast te leggen over licenties die niet zijn vastgelegd in de SPDX-licentielijst. | Extensies: Biedt gegevens over uitbreidingspunten die nuttig zullen zijn voor toekomstige gebruiksscenario's en functionaliteit. |
Correlatie tussen SPDX-elementen: het veld laat zien hoe de verschillende bestanden, documenten en pakketten die in de SPDX-documentatie worden beschreven, aan elkaar zijn gekoppeld. | |
nnotaties: aanvullende informatie om uit te leggen hoe het SPDX-document is beoordeeld, wie het heeft beoordeeld en wanneer het is beoordeeld. | |
Wat is het verschil tussen SPDX en CycloneDX?
De twee hierboven gemarkeerde standaard SBOM-formaten kunnen worden gebruikt voor het genereren, delen en beheren van SBOM-gegevens. Ze stellen gebruikers in staat nauwkeurige informatie te genereren over de componenten van een softwareproduct. Het SPDX-formaat (Software Package Data Exchange) is in de eerste plaats ontworpen als een manier om open-source softwarelicenties te beheren en informatie over de pakketten te delen. Met CycloneDX kunnen gebruikers daarentegen SBOM's (Software Bill of Materials) maken die gedetailleerde informatie over softwarecomponenten bieden.
Welke standaard is beter te gebruiken?
Omdat het formaat dat u kiest bepalend is voor de structuur van uw SBOM-document, de componenten ervan, hoe het wordt gegenereerd en hoe het wordt gedeeld met gebruikers, is het belangrijk dat u het juiste SBOM-formaat kiest voor SBOM genereren op basis van de unieke behoeften van uw organisatie.
Hoewel SPDX en CycloneDX zeer vergelijkbare toepassingen hebben, verschillen ze qua oorspronkelijke gebruiksscenario's. Het SPDX-formaat is in 2011 gemaakt als hulpmiddel voor licentiebeheer. Tegenwoordig is het nog steeds nuttig voor het delen van gedetailleerde informatie over de componenten van een softwaresysteem met mensen in de toeleveringsketen. Dit maakt dit formaat nuttiger voor softwareontwikkelingsdoeleinden.
CycloneDX (CDX) daarentegen is recenter ontwikkeld met als hoofddoel het genereren van SBOM-documentatie, waardoor het een efficiënter hulpmiddel voor kwetsbaarheidsbeheer is, omdat het alle standaardcomponenten van een softwareproduct beschrijft. Het lichtgewicht karakter van CycloneDX maakt het ook tot een efficiënt hulpmiddel voor het genereren van machinaal leesbare softwarestuklijsten die u snel kunt delen en verwerken
Uiteindelijk is er geen “beter” formaat tussen deze twee. Welke u kiest, hangt grotendeels af van de specifieke behoeften van uw organisatie en de beoogde use case van het SBOM-document dat u wilt genereren.
Deze inhoud wordt u aangeboden door Scribe Security, een toonaangevende aanbieder van end-to-end software supply chain-beveiligingsoplossingen die state-of-the-art beveiliging levert voor codeartefacten en codeontwikkelings- en leveringsprocessen in de software supply chain. Meer informatie.