SPDX vs. CycloneDX: SBOM-Formate im Vergleich

Alle Beiträge

Trotz der zunehmenden Akzeptanz der Software Bill of Materials (SBOM) als Schwachstellenmanagement- und Cybersicherheitstool haben viele Unternehmen immer noch Schwierigkeiten, die beiden heute gängigsten SBOM-Formate SPDX und CycloneDX zu verstehen. In diesem Artikel vergleichen wir diese beiden Formate, um Ihnen bei der Auswahl des richtigen Formats für Ihre Bedürfnisse zu helfen.

Was sind SBOM-Formate?

Bei der Entwicklung von Software-Stücklisten für die Softwareentwicklung und das Schwachstellenmanagement müssen bestimmte Formate oder Standards eingehalten werden. Die Standard-SBOM-Formate definieren eine spezifische und einheitliche Struktur für die SBOM-Erstellung und bestimmen auch, wie diese mit Kunden und Benutzern entlang der Software-Lieferkette geteilt wird. Die SBOM-Formate definieren auch die Zusammensetzung der Software in einem Format, das für andere Cybersicherheitstools leicht verständlich ist. Im Allgemeinen gibt es drei SBOM-Formate. Sie beinhalten:

Softwarepaket-Datenaustausch (SPDX): Dies ist ein maschinenlesbares Open-Source-SBOM-Projekt der Linux Foundation. Es wurde in erster Linie entwickelt, um Compliance und Transparenz bei der Verwaltung von Open-Source- und proprietärem Code durch Entwicklungsteams und Unternehmen sicherzustellen.

CycloneDX (CDX): Hierbei handelt es sich ebenfalls um ein Open-Source- und maschinenlesbares SBOM-Format, das von der Open Web Application Security Project (OWASP)-Community entwickelt wurde. Es handelt sich um ein leichtes SBOM-Format, das sich auf eine einfache Einführung und Automatisierung der SBOM-Generierung in Ihrer gesamten Softwareentwicklungspipeline konzentriert. 

Software-Identifikations-Tags (SWID):  SWID-Tags gelten eher als Software-ID denn als SBOM-Format. Es bietet eine einfache und transparente Möglichkeit, den Softwarebestand zu verfolgen, indem spezifische Informationen über die Softwareversion gespeichert werden.

Im Allgemeinen werden nur die SBOM-Formate SPDX und CycloneDX offiziell anerkannt. Das SWID-Format wird hauptsächlich zur Softwareidentifizierung verwendet, da es nicht so viele Informationen bietet wie die beiden anderen Formate.

SPDX und CycloneDX enthalten sich überschneidende Informationen, und viele argumentieren, dass sie austauschbar verwendet werden können, da es kein einziges „Standard“-SBOM-Format gibt. Allerdings haben die beiden Formate traditionell unterschiedliche Anwendungsfälle innerhalb des Softwareentwicklungslebenszyklus. Daher müssen verschiedene Organisationen anhand ihrer individuellen Cybersicherheits- und Compliance-Anforderungen ermitteln, welches für sie am besten geeignet ist.

Klicken Sie hier, um Erfahren Sie mehr über SBOM-Standardformate.

SPDX vs. CycloneDx Vergleich

SPDX und CyclonDX sind die beiden Standardformate für die SBOM-Generierung, und das wird wahrscheinlich auch noch lange so bleiben. Die meisten SBOM-Generierungsplattformen unterstützen beide Formate. Es handelt sich jedoch um unterschiedliche Tools mit unterschiedlichen Anwendungsfällen. Einige ihrer Hauptunterschiede werden im Folgenden hervorgehoben:

CycloneDX-Übersicht

CycloneDX ist ein Open-Source-SBOM-Projekt einer der führenden Software-Sicherheitsorganisationen, dem Open Web Application Security Project (OWASP). Das Projekt wurde 2017 als Plattform zur Komponentenanalyse gestartet, um Nutzern dabei zu helfen, Risiken in der Software-Lieferkette zu identifizieren. Die Identifizierung von Schwachstellen bleibt der Hauptanwendungsfall von CycloneDX. Dieses SBOM-Format hilft auch bei der Lizenzeinhaltung und bei der Identifizierung veralteter Softwarekomponenten.

CycloneDX konzentriert sich auf die Automatisierung und die einfachere Übernahme von SBOM-Anforderungen während des gesamten Erstellungszyklus der Software. Das Format wird sowohl von Open-Source- als auch proprietären Software-Organisationen für Sicherheitsanwendungsfälle verwendet.

Als Stücklistenformat bietet CycloneDX weitere Anwendungen als die Erstellung von Software-Stücklisten. Es kann auch zum Kompilieren von Komponenten, Schwachstellen und Diensten von Hardware- und Cloud-Systemen verwendet werden. Im Cyclone DX-Format erstellte SBOMs listen Schwachstellen in drei Hauptbereichen auf. Diese sind:

  • Common Platform Enumeration (CPE): Schwachstellen innerhalb einer Anwendung, Hardwaregeräten oder eines Betriebssystems.
  • SWID: Das Software-Identifikations-Tag wird zur Analyse der Komponenten installierter Software verwendet
  • Paket-URL (PURL). CycloneDX listet auch Softwarepaket-Metadaten auf.

Darüber hinaus unterstützt das CycloneDX-Format auch die Herkunftsverfolgung von Softwareprodukten und deren Komponenten. Dies erleichtert die Identifizierung der Autoren und Lieferanten von Software und allen ihren Komponenten.

SPDX-Übersicht

SPDX steht für Software Package Data Exchange. Es handelt sich um ein Open-Source-Projekt der Linux Foundation, das als gemeinsames Format für die Sammlung und Weitergabe von Softwaredaten – insbesondere Lizenzinformationen – dienen soll.

Der SPDX-Standard wurde ursprünglich 2011 als Open-Source-Lizenzverwaltungstool entwickelt. Im Laufe der Jahre wurde das Format verfeinert und um neue Felder erweitert, die die Fähigkeit des Formats zur Erfassung wichtiger sicherheitsrelevanter Informationen verbessern und die Interoperabilität mit anderen Standard-SBOM-Formaten verbessern.

Im September 2021 erkannte die International Standard Organization das SPDX-Format als international anerkannten Standard für die SBOM-Veröffentlichung an. SPDX ist das einzige SBOM-Format, dem dieses Kunststück gelungen ist.

Die ursprüngliche Version der SPDX-Spezifikation wurde in Version 2.2.2 entwickelt, um die Einhaltung von Softwarelizenzierungsrichtlinien zu erleichtern. Nachfolgende Versionen haben einige Funktionen hinzugefügt, die es für eine Vielzahl von Anwendungsfällen nützlich machen, einschließlich der Identifizierung von Software-Schwachstellen.

Die neueste Version des SPDX wurde im Einklang mit dem NTIA-Standard für „Minimum Elements For a Software Bill of Materials“ entwickelt. Es listet die Komponenten, Urheberrechte, Lizenzen und Sicherheitshinweise einer Software auf.

Von einem SBOM-Dokument im SPDX-Format wird erwartet, dass es bestimmte Felder und Abschnitte enthält, wie unten hervorgehoben:

  • Informationen zur Dokumenterstellung: Diese Informationen werden verwendet, um die Kompatibilität mit Standardverarbeitungstools zu bestimmen
  • Paketinformationen: Die Paketinformationen definieren wichtige Entitäten, die denselben Kontext innerhalb des Softwarepakets haben, wie z. B. Container, Komponenten und Produkte.
  • Dateiinformationen: Identifizierende Informationen für die Softwaredateien, z. B. Name, Lizenz und Copyright-Informationen für jede Datei.
  • Snippet-Informationen: Dies trifft nicht immer zu. Die Snippet-Informationen sind nur erforderlich, wenn die Softwaredaten aus einer anderen Quelle stammen.

●  Beziehungen und Anmerkungen: Eine SBOM im SPDX-Format zeigt auch die Beziehung zwischen den verschiedenen Dokumenten, Dateien und Paketen an, die in der Software verwendet werden, mit klaren Anmerkungen, die es jedem einfacher machen, die Beziehungen der Softwarekomponenten zu überprüfen.

SPDXCycloneDX
Informationen: Das SPDX-SBOM-Format erfasst Informationen über den Autor der Software-Stückliste, wie sie erstellt wurde und wann sie für jede Version der SPDX-Datei erstellt wurde.Stücklisten-Metadaten: Das CycloneDX-Format erfasst wichtige Informationen über den Softwarehersteller/-lieferanten und die Zielkomponenten. Es enthält außerdem Lizenzinformationen und Metadaten der zur Erstellung der Stückliste verwendeten Tools.
Paketinformationen: Enthält Daten zu den gemeinsamen Eigenschaften des gesamten Softwarepakets.Komponenten: beschreibt alle Komponenten der Software entlang der gesamten Lieferkette.
Dateiinformationen: Daten zu allen im Softwarepaket enthaltenen Dateien.Dienste: beschreibt externe APIs, Endpunkt-URLs und Authentifizierungsanforderungen. Vertrauen Sie Grenzüberschreitungen und anderen externen Anforderungen der Software.
Snippet-Informationen: Daten, die sich auf einen bestimmten Teil einer Datei beziehen.Abhängigkeiten: Dieses Feld beschreibt die direkte und transitive Beziehung zwischen den verschiedenen Komponenten einer Software
Lizenzinformationen: Ein Feld zum Erfassen von Daten zu Lizenzen, die nicht in der SPDX-Lizenzliste erfasst sind.Erweiterungen: Stellt Daten zu Erweiterungspunkten bereit, die für zukünftige Anwendungsfälle und Funktionen nützlich sein werden.
Korrelation zwischen SPDX-Elementen: Das Feld zeigt, wie die verschiedenen in der SPDX-Dokumentation beschriebenen Dateien, Dokumente und Pakete miteinander verknüpft sind.
Anmerkungen: Zusätzliche Informationen, um zu erklären, wie das SPDX-Dokument überprüft wurde, wer es überprüft hat und wann es überprüft wurde.

Was ist der Unterschied zwischen SPDX und CycloneDX?

Die beiden oben hervorgehobenen Standard-SBOM-Formate können zum Generieren, Teilen und Verwalten von SBOM-Daten verwendet werden. Sie ermöglichen es Benutzern, genaue Informationen über die Komponenten eines Softwareprodukts zu generieren. Das SPDX-Format (Software Package Data Exchange) wurde in erster Linie als Möglichkeit zur Verwaltung von Open-Source-Softwarelizenzen und zum Austausch von Informationen über die Pakete entwickelt. Mit CycloneDX hingegen können Benutzer SBOMs (Software Bill of Materials) erstellen, die detaillierte Informationen zu Softwarekomponenten bereitstellen.

Welcher Standard ist besser zu verwenden?

Da das von Ihnen gewählte Format die Struktur Ihres SBOM-Dokuments, seine Komponenten, die Art und Weise, wie es generiert und mit Benutzern geteilt wird, bestimmt, ist es wichtig, dass Sie das richtige SBOM-Format auswählen Generieren einer SBOM basierend auf den individuellen Anforderungen Ihrer Organisation.

Obwohl SPDX und CycloneDX sehr ähnliche Anwendungen haben, unterscheiden sie sich hinsichtlich ihrer ursprünglichen Anwendungsfälle. Das SPDX-Format wurde bereits 2011 als Lizenzverwaltungstool entwickelt. Auch heute noch ist es nützlich, detaillierte Informationen über die Komponenten eines Softwaresystems mit Menschen entlang der Lieferkette zu teilen. Dies macht dieses Format für Softwareentwicklungszwecke nützlicher.

CycloneDX (CDX) hingegen wurde in jüngerer Zeit mit dem primären Zweck entwickelt, eine SBOM-Dokumentation zu erstellen, was es zu einem effizienteren Schwachstellenmanagement-Tool macht, da es alle Standardkomponenten eines Softwareprodukts detailliert beschreibt. Die leichte Beschaffenheit von CycloneDX macht es auch zu einem effizienten Tool zum Erstellen maschinenlesbarer Software-Stücklisten, die Sie schnell teilen und verarbeiten können

Letztlich gibt es zwischen diesen beiden kein „besseres“ Format. Welche Sie wählen sollten, hängt weitgehend von den spezifischen Anforderungen Ihrer Organisation und dem beabsichtigten Anwendungsfall des SBOM-Dokuments ab, das Sie generieren möchten. 

Diese Inhalte werden Ihnen von Scribe Security zur Verfügung gestellt, einem führenden Anbieter von End-to-End-Sicherheitslösungen für die Software-Lieferkette, der modernste Sicherheit für Code-Artefakte sowie Code-Entwicklungs- und Bereitstellungsprozesse in der gesamten Software-Lieferkette bietet. Weitere Informationen.