Bei der Software werden in hohem Maße vorgefertigte Komponenten von Drittanbietern eingesetzt, um Prozesse zu optimieren, von denen einige Open Source sind. Diese Komponenten sind die Bausteine moderner Webanwendungen, können aber auch Schwachstellen aufweisen und Cyberkriminellen potenzielle Einstiegspunkte in Ihr System bieten.
Um einen Überblick über die Komponenten zu erhalten und die Schwachstellen in den Abhängigkeiten Ihrer Software zu verwalten, ist das Führen einer SBOM (Software Bill of Materials) genannten Liste unerlässlich, um die Sicherheit, das Risikomanagement und die Compliance Ihrer Anwendung zu verbessern.
Was ist SBOM?
A Software Bill of Materials (SBOM) ist ein detailliertes Inventar aller in einer Anwendung verwendeten Closed- und Open-Source-Komponenten, Bibliotheken und Abhängigkeiten. Einfacher ausgedrückt: So wie ein physisches Produkt mit einer Liste von Bauteilen und Materialien geliefert werden kann, hat auch Software ihre Komponenten.
Entwickler und Anbieter konstruieren Software häufig durch die Kombination von Open-Source- und kommerziellem Code. Die SBOM beschreibt diese Komponenten systematisch, um die Transparenz und Rückverfolgbarkeit grundlegender Codekomponenten in Softwareprodukten zu gewährleisten und so die Sicherheit der Lieferkette zu erleichtern und die Einhaltung von Vorschriften sicherzustellen.
Was sind die Vorteile einer SBOM?
Im Kern bietet ein SBOM drei Hauptvorteile:

Transparenz
Sie bietet einen klaren Überblick über die Zusammensetzung der Software und ermöglicht es den Beteiligten - egal ob Entwickler, Prüfer oder Endbenutzer -, die Komponenten ihres Software-Stacks zu verstehen.

Vulnerability Management
Sicherheit ist eines der dringendsten Probleme bei der Softwareentwicklung. Mit einem SBOM können Komponenten in einem Softwareprodukt schnell identifiziert werden, wodurch es einfacher wird, Schwachstellen zu erkennen, zu beheben und zu beseitigen.
Wenn ein Sicherheitshinweis veröffentlicht wird, enthält er in der Regel aktuelle Informationen über Sicherheitslücken in Softwarekomponenten. Durch den Abgleich einer SBOM mit den neuesten Sicherheitshinweisen können Unternehmen schnell feststellen, ob ihre Anwendungen gefährdet sind, und die notwendigen Maßnahmen ergreifen, um sie angemessen abzusichern.

Integration in den SDLCSoftware Development Lifecycle)
Während die Software die Entwicklungspipeline durchläuft, wird sie ständig aktualisiert, von der Konzeption und dem Design bis zur Bereitstellung und Wartung. Ein SBOM dient als dynamischer Datensatz, der sicherstellt, dass in jeder Phase des SDLC ein klares Bild der Softwarekomponenten, Abhängigkeiten und Beziehungen besteht.
Wer braucht eine SBOM?
Im Großen und Ganzen kann ein Software-Konsument jede Einrichtung sein, ob kommerziell oder nicht, die ihre Drittkomponenten und Software-Dienstprogramme von Drittanbietern bezieht. Diese Anbieter decken ein breites Spektrum ab:
- Kommerzielle Software-Hersteller
- Softwareentwickler, die vertraglich verpflichtet sind, Softwarekomponenten zu liefern
- FOSS (Free and Open-Source Software) Anbieter, die Code in offenen Repositories oder Paketmanagern verwalten
Diese Anbieter tragen mehrere Hüte. Sie können Hersteller, Entwickler, Betreuer oder Anbieter sein. Idealerweise sollten diese Unternehmen auch SBOMs für ihre Softwarefunktionen erstellen. Ein wichtiger Unterschied ist, dass die meisten Zulieferer auch Verbraucher sind. Ein Lieferant ohne vorgelagerte Komponenten wird jedoch in der Regel als Root-Entität bezeichnet.
SBOM im öffentlichen Sektor
Bundesbehörden spielen eine zentrale Rolle bei der Annahme und Durchsetzung von SBOM-Normen. Bei ihrer Aufsicht geht es nicht nur um die Festlegung von Maßstäben, sondern auch um die Sicherstellung der Konformität mit diesen Maßstäben im Interesse der Allgemeinheit. Die im Mai 2021 erlassene US Executive Order 14028 beauftragt mehrere Behörden mit weitreichenden Zuständigkeiten, darunter auch das NIST (National Institute of Standards and Technology), mit der Verbesserung der Cybersicherheit durch eine Reihe von Initiativen im Zusammenhang mit der Sicherheit und Integrität der Software-Lieferkette.
Abschnitt 10 (j) der Executive Order 14028 definiert eine SBOM als "formale Aufzeichnung, die die Details und Lieferkettenbeziehungen der verschiedenen Komponenten enthält, die bei der Erstellung von Software verwendet werden". SBOMs haben das Potenzial, die Transparenz, die Herkunft und die Geschwindigkeit zu erhöhen, mit der Schwachstellen identifiziert und von Bundesministerien und -behörden behoben werden können.
SBOM-Typen und Definitionen
Je nach Softwareentwicklungs- und -bereitstellungsphase werden verschiedene Arten von SBOMs erstellt, die jeweils einem bestimmten Zweck dienen und unterschiedliche Einblicke in die Softwarekomponenten bieten. Hier sind sechs gängige Arten von SBOM-Dokumenten.
Gestaltung
In dieser Phase der Anwendungsentwicklung existieren einige Komponenten möglicherweise noch gar nicht. Diese Art von Stückliste wird in der Regel aus einer Entwurfsspezifikation, einem RFP (Request for Proposal) oder einem ersten Konzept abgeleitet.
Quelle
Sie wird direkt aus der Entwicklungsumgebung erstellt und bietet Einblicke in die Quelldateien und Abhängigkeiten, die für die Erstellung eines Produktartefakts erforderlich sind. Sie wird in der Regel von SCA-Werkzeugen (Software Composition Analysis) generiert und erfordert gelegentlich manuelle Klarstellungen.
Bauen Sie
Sie wird als Teil des Softwareerstellungsprozesses erstellt und fasst Daten aus Quelldateien, erstellten Komponenten und anderen Abhängigkeiten zusammen. Dies ist besonders wertvoll, da es während der Erstellung eines freizugebenden Software-Artefakts erzeugt wird.
Analysiert
Diese SBOM wird aus der Post-Build-Analyse von Software-Artefakten wie ausführbaren Dateien oder Images virtueller Maschinen abgeleitet. Sie umfasst verschiedene Heuristiken und wird manchmal als "Drittanbieter"-SBOM bezeichnet.
Eingesetzt
Ein umfassendes Inventar der auf einem System vorhandenen Software. Es wird durch die Dokumentation der SBOM der auf den Systemen installierten Softwarekomponenten erstellt und bietet Einblicke in die reale Bereitstellung von Software.
Was sind die Elemente einer SBOM?
Zu den Mindestelementen einer SBOM gehören nach Angaben der NTIA (National Telecommunications and Information Administration) der Name des Softwareanbieters, die Komponenten, ihre Versionen, eindeutige Bezeichner, die Beziehung der Abhängigkeiten, der Autor der SBOM-Daten und der Zeitstempel. Zusätzlich sollten SBOM-Daten die folgenden Elemente enthalten, um effektiv und umfassend zu sein:
- Datenfelder: Müssen über klar definierte Datenfelder verfügen, in denen der Name der Softwarekomponente, die Versionen und die Attribute aufgeführt sind. Dadurch wird gewährleistet, dass jeder Beteiligte den Aufbau der Software genau versteht.
- Unterstützung der Automatisierung: Angesichts der dynamischen Natur der Softwareentwicklung sollte eine SBOM automatisch aktualisiert und in die Softwareentwicklungs- und -bereitstellungspipelines integriert werden können. Dies gewährleistet Genauigkeit und Effizienz in Echtzeit.
- Praktiken und Prozesse: Über die bloße Auflistung von Komponenten hinaus sollte eine SBOM in bewährte Verfahren und Prozesse eingebettet sein, die ihre Erstellung, Pflege und Nutzung regeln.
SBOM-Formate
Beliebte SBOM-Formate sind:
- SPDXSoftware Package Data Exchange) - entwickelt von der Linux Foundation
- CycloneDX - wird häufig für die Anwendungssicherheit verwendet
- SWIDSoftware Identification Tagging) - definiert durch ISO/IEC 19770-2
Durch die Katalogisierung der einzelnen Komponenten ermöglicht ein SBOM den Unternehmen eine eindeutige Identifizierung der mit jeder Software verbundenen Lizenzen, wodurch sichergestellt wird, dass sie die Lizenzbedingungen einhalten und mögliche rechtliche Fallstricke vermeiden.
Bleiben Sie konform und Secure in Ihrem SDLC
Aufgrund der zunehmenden Angriffe auf die Lieferkette haben die Bundesregierung und der private Sektor die Bedeutung der Software-Identifizierung erkannt. Eine SBOM ist entscheidend für die Beschreibung von Softwarekomponenten, insbesondere von Komponenten Dritter. SBOM-Daten helfen bei der Vermeidung von Schwachstellen und sorgen für Transparenz bei der Erstellung von SBOMs. Jede Software sollte eine umfassende SBOM enthalten, um die Sicherheitsmaßnahmen zu unterstützen.
Durch die Katalogisierung der einzelnen Komponenten ermöglicht ein SBOM den Unternehmen eine eindeutige Identifizierung der mit jeder Software verbundenen Lizenzen, wodurch sichergestellt wird, dass sie die Lizenzbedingungen einhalten und mögliche rechtliche Fallstricke vermeiden.
Mit OPSWAT SBOM können Entwickler bekannte Schwachstellen identifizieren, Lizenzen validieren und ein Komponenteninventar für OSS (Open-Source-Software), Abhängigkeiten von Drittanbietern und Container erstellen. Um mehr über die Sicherung Ihrer Software-Lieferkette mit robusten SBOM-Lösungen zu erfahren, besuchen Sie die OPSWAT Software Supply Chain Security.