Software Bill of Materials (SBOM): Ein Überblick (2024)

Software Bill of Materials (SBOM): Ein Überblick (1)

Wie Sie sich vor Sicherheitsrisiken in der Software-Lieferkette schützen können? Also vor Sicherheitsproblemen, die von Software-Ressourcen eines Drittanbieters ausgehen, die Ihr Unternehmen nutzt oder auf die es angewiesen ist?

Ein wesentlicher Bestandteil der Antwort auf diese Frage ist die Erstellung einer Software-Stückliste – auf Englisch “Software Bill of Materials” (SBOM). Durch die systematische Auflistung der Komponenten, die in jeder Anwendung vorhanden sind, sowie der Abhängigkeiten, die die Anwendung zur Ausführung benötigt, bieten SBOMs die unverzichtbare Transparenz, die Unternehmen benötigen, um Sicherheitsrisiken in der Software-Lieferkette zu erkennen und darauf zu reagieren. Darüber hinaus können SBOMs in einigen Fällen dazu beitragen, Compliance-Anforderungen zu erfüllen und Kunden und Partnern die Gewissheit zu verschaffen, dass Ihr Unternehmen die Sicherheit in der Software-Delivery-Chain ernst nimmt.

Lesen Sie weiter, um zu erfahren, was eine SBOM ist, wie SBOMs funktionieren, warum sie wichtig sind und wie man eine SBOM erstellt.

Was ist eine SBOM?

Eine Software Bill of Materials oder SBOM ist eine Liste aller Komponenten und Abhängigkeiten (sowohl proprietär als auch Open Source), die eine Anwendung verwendet. SBOMs enthalten oft auch Versionsangaben zu den einzelnen Komponenten und Abhängigkeiten, da Sicherheitsprobleme häufig nur bestimmte Softwareversionen betreffen.

In der Regel werden SBOMs in einem bestimmten Format erstellt und können normalerweise als XML- oder JSON-Dateien dargestellt werden. Dennoch variiert die genaue Beschaffenheit einer SBOM, je nachdem, welchen SBOM-Standard wie zum Beispiel CycloneDX, SPDX oder SWID die Teams zur Erfassung und Strukturierung von SBOM-Informationen wählen. Trotz geringfügiger Unterschiede geht es bei allen SBOM-Formaten darum, auf einen Blick feststellen zu können, was in jeder einzelnen Anwendungen eines Unternehmens steckt.

Warum sind SBOMs wichtig?

SBOMs sind die einzige Möglichkeit, einen systematischen Überblick über die Komponenten und Abhängigkeiten einer Anwendung zu erhalten. Infolgedessen liefern sie die notwendigen Informationen, um feststellen zu können, ob Komponenten oder Abhängigkeiten Sicherheitsrisiken ausgesetzt sind.

SBOMs sind auch deshalb wichtig, weil sie in einigen Fällen von Regulierungsbehörden oder Kunden verlangt werden. Zum Beispiel kündigte die US-Bundesregierung im Jahr 2021 Pläne an, von Anbietern, die mit Regierungsbehörden Geschäfte machen, SBOMs zu verlangen. Das geschieht im Rahmen der Bemühungen, Behörden Einblick in Software zu gewährleisten, auf die sie angewiesen sind.

Die Erstellung von SBOMs ist aber auch dann sinnvoll, wenn sie von Kunden, Partnern oder Regulierungsbehörden nicht explizit gefordert werden. Denn das beweist, dass Sie die Sicherheit Ihrer Software-Lieferkette ernst nehmen. SBOMs geben externen Stakeholdern die Gewissheit, dass sie Einblick in Software-Komponenten und -Abhängigkeiten haben und prüfen können, ob Software von Drittanbietern ein Risiko für sie darstellt.

SBOMs vs. manuelle Verwaltung von Software-Komponenten

Natürlich können Sie versuchen, Komponenten und Abhängigkeiten manuell zu erfassen, indem Sie Ihre die Entwickler bitten, sie auf Anfrage aufzulisten, oder indem Sie diese Informationen formlos in der Dokumentation festhalten. Die Probleme bei dieser Herangehensweise sind jedoch folgende:

  • Keine Systematik: Man vergisst schnell, eine wichtige Abhängigkeit oder Komponente zu vermerken, wenn ein systematischer Prozess zur Definition und Formatierung dieser Informationen fehlt.
  • Erschwerte Weiterleitung: Informelle Informationen über Software-Komponenten lassen sich nur schwer an Aufsichtsbehörden, Prüfer, Partner und Kunden weitergeben, da diese möglicherweise keinen Zugriff auf die Speicherorte haben, in denen die Informationen abgelegt werden. Sie sind möglicherweise auch unsicher, wie diese Daten zu interpretieren sind.

SBOMs lösen beide Probleme, indem sie eine systematische und standardisierte Methode bieten, die festlegt, was in jeder von Ihrem Unternehmen verwendeten Anwendung enthalten ist. Wenn Sie die Erstellung von SBOMs zu einem festen Bestandteil des Bereitstellungsprozesses einer Anwendung machen, minimieren Sie das Risiko, wichtige Informationen zur Software-Lieferkette zu vergessen. Außerdem machen Sie diese Informationen damit für alle Beteiligten leicht zugänglich.

Ein Beispiel für SBOM

Eine SBOM besteht aus einer Liste der verschiedenen Open-Source- und proprietären Komponenten, die in einer Software enthalten sind. Wie bereits erwähnt, werden die Listen in der Regel mit XML oder JSON strukturiert, wodurch es möglich ist, die SBOM in verschiedene Abschnitte zu unterteilen und nicht nur die Anwendungskomponenten, sondern auch die mit ihnen verbundenen Metadaten zu definieren.

Hier ist zum Beispiel eine einfache SBOM-Datei im JSON-Format, die dem SBOM-Standard CycloneDX entspricht:

{"$schema": "http://cyclonedx.org/schema/bom-1.2a.schema.json","bomFormat": "CycloneDX","specVersion": "1.2","version": 1,"metadata": {"tools": [{"vendor": "cyclonedx","name": "cyclonedx-php-composer","version": "dev-master"}],"component": {"bom-ref": "pkg:composer/cyclonedx/cyclonedx-php-composer-demo@dev-master","type": "application","name": "cyclonedx-php-composer-demo","version": "dev-master","group": "cyclonedx","description": "demo of cyclonedx/cyclonedx-php-composer with a pinned version of laravel/framework","purl": "pkg:composer/cyclonedx/cyclonedx-php-composer-demo@dev-master"}},"components": [{"bom-ref": "pkg:composer/asm89/stack-cors@1.3.0","type": "library","name": "stack-cors","version": "1.3.0","group": "asm89","description": "Cross-origin resource sharing library and stack middleware","licenses": [{"license": {"id": "MIT"}}],"purl": "pkg:composer/asm89/stack-cors@1.3.0","externalReferences": [{"type": "distribution","url": "https://github.com/asm89/stack-cors.git","comment": "As detected by composer's `getSourceUrls()` (type=git & reference=b9c31def6a83f84b4d4a40d35996d375755f0e08)"},{"type": "distribution","url": "https://api.github.com/repos/asm89/stack-cors/zipball/b9c31def6a83f84b4d4a40d35996d375755f0e08","comment": "As detected by composer's `getDistUrls()` (type=zip & reference=b9c31def6a83f84b4d4a40d35996d375755f0e08 & sha1=UNDEFINED)"},{"type": "website","url": "https://github.com/asm89/stack-cors","comment": "As set via `homepage` in composer package definition."},{"type": "issue-tracker","url": "https://github.com/asm89/stack-cors/issues","comment": "As set via `support.issues` in composer package definition."},{"type": "distribution","url": "https://github.com/asm89/stack-cors/tree/1.3.0","comment": "As set via `support.source` in composer package definition."}]},]}

Die erste Hauptzeile dieser SBOM definiert Metadaten, die mit der SBOM selbst verbunden sind, wie z. B. den verwendeten SBOM-Standard und das Format. Außerdem enthält die SBOM den Abschnitt “components”:, der das Kernstück der SBOM darstellt. Im diesem Abschnitt werden die spezifischen Pakete aufgelistet, die in der betreffenden Anwendung enthalten sind, sowie zugehörige Daten wie Paket-URLs, Websites, Lizenzinformationen und sogar der Standort der Fehlerverfolgung.

Anhand dieser Informationen können Entwickler, IT-Engineers, Security-Teams, DevOps-Teams und DevSecOps-Teams nicht nur feststellen, welche Abhängigkeiten und Komponenten in der Software vorhanden sind, auf die sich die SBOM bezieht, sondern auch, woher diese Komponenten stammen und wo sie weitere Informationen darüber finden können.

SBOM-Tools

Sie können eine SBOM manuell durchlesen, um diese Informationen zu finden, oder Sie machen sich verschiedene Tools zunutze, die beim Analysieren und Visualisieren von SBOM-Dateien helfen. Berücksichtigen Sie dabei jedoch, dass die meisten SBOM-Tools nur für einen bestimmten SBOM-Standard ausgelegt sind. Sie müssen also darauf achten, Tools zu wählen, die mit den Standards und dem Format Ihrer SBOM kompatibel sind. Wenn Sie z.B. CycloneDX-kompatible Tools verwenden möchten, finden Sie auf der Website von CycloneDX eine Liste mit Open-Source- und proprietären Optionen.

SBOM-Tools und wie man eine SBOM erstellt

Der effizienteste Weg, eine SBOM zu erstellen, besteht in der Nutzung von SBOM-Tools, die automatisch die Komponenten und Abhängigkeiten jeder Anwendung sowie deren Versionen verfolgen und diese Informationen dann in einem standardisierten SBOM-Format wie CyloneDX, SPDX oder SWID anzeigen.

Mit SBOM-Tools können Sie die Erstellung von SBOMs automatisch in Ihren CI/CD-Prozesses integrieren. Sie können automatisch jedes neue Anwendungs-Build oder -Paket scannen, um festzustellen, ob sich die Komponenten der Anwendung geändert haben. Dadurch wird sichergestellt, dass die SBOMs immer auf dem neuesten Stand sind.

Weitere Tipps zur Erstellung und zum Arbeiten mit SBOMs finden Sie in unserem Artikel über Best Practices für das SBOM-Management.

Software Bill of Materials (SBOM): Ein Überblick (2024)
Top Articles
Latest Posts
Article information

Author: Dan Stracke

Last Updated:

Views: 6547

Rating: 4.2 / 5 (43 voted)

Reviews: 82% of readers found this page helpful

Author information

Name: Dan Stracke

Birthday: 1992-08-25

Address: 2253 Brown Springs, East Alla, OH 38634-0309

Phone: +398735162064

Job: Investor Government Associate

Hobby: Shopping, LARPing, Scrapbooking, Surfing, Slacklining, Dance, Glassblowing

Introduction: My name is Dan Stracke, I am a homely, gleaming, glamorous, inquisitive, homely, gorgeous, light person who loves writing and wants to share my knowledge and understanding with you.