Was ist eine Software-Stückliste (SBOM)?
Eine Software-Stückliste (SBOM) ist ein Dokument, das ein detailliertes Verzeichnis der in einem Softwareprojekt verwendeten Komponenten und Abhängigkeiten enthält. Sie führt außerdem alle im Softwareprojekt eingesetzten Bibliotheken und Frameworks sowie deren jeweilige Versionen auf. Bei Open-Source-Software (OSS) kann eine SBOM entscheidend dazu beitragen, Transparenz, Sicherheit und Compliance zu gewährleisten.
Warum Ihr Unternehmen SBOMs verwenden sollte
Der Einsatz einer SBOM – insbesondere bei Open-Source-Software (OSS) – ermöglicht es einem Unternehmen, Transparenz über Komponenten und Abhängigkeiten zu gewinnen, das Risikomanagement zu verbessern und vieles mehr. Im Folgenden erläutern wir diese Vorteile.
Komponententransparenz
Open-Source-Software (OSS) enthält häufig verschiedene Komponenten und Abhängigkeiten von Drittanbietern. Eine Software Bill of Materials (SBOM) verschafft Entwicklern und Nutzern einen klaren Überblick über alle in der Software verwendeten Komponenten. Dazu gehören Open-Source-Bibliotheken und -Frameworks einschließlich ihrer jeweiligen Versionen. Diese Transparenz hilft dabei, die Zusammensetzung der Software zu verstehen, potenzielle Schwachstellen zu erkennen und Lizenzpflichten im Zusammenhang mit den Open-Source-Komponenten nachzuverfolgen.
Schwachstellenmanagement
Wie jede andere Software kann auch OSS Sicherheitslücken aufweisen. Mithilfe einer SBOM können Unternehmen die Versionen von Open-Source-Komponenten nachverfolgen und sich über bekannte Sicherheitslücken informieren, die mit diesen Versionen verbunden sind. Dies ermöglicht ein proaktives Schwachstellenmanagement, indem zeitnah Patches oder Updates eingespielt werden, um Sicherheitsrisiken zu mindern und zu melden (siehe RFC8615). Mit einer aktuellen SBOM können Unternehmen die Auswirkungen von Sicherheitslücken bewerten und geeignete Maßnahmen zum Schutz ihrer Software ergreifen.
Sicherheit der Lieferkette
In den letzten Jahren ist die Sicherheit der Software-Lieferkette zu einem wichtigen Thema geworden. Eine SBOM trägt zur Verbesserung der Lieferkettensicherheit bei, indem sie Transparenz über die in der Software verwendeten Komponenten und deren Herkunft schafft. Zudem ermöglicht sie Unternehmen, die Vertrauenswürdigkeit und den Sicherheitsstatus der von ihnen eingesetzten Komponenten zu bewerten. Mithilfe einer SBOM können Unternehmen Risiken im Zusammenhang mit kompromittierten oder schädlichen Komponenten erkennen und mindern und so die Gefahr von Angriffen auf die Software-Lieferkette verringern.
Zusammenarbeit und Patch-Management
OSS fördert die Zusammenarbeit und die Beteiligung der Community. Eine SBOM erleichtert die effektive Zusammenarbeit, da sie bei verschiedenen Mitwirkenden und Stakeholdern ein gemeinsames Verständnis der Softwarekomponenten schafft. Sie unterstützt die Koordination des Patch-Managements, indem sie eindeutig aufzeigt, welche Komponenten aktualisiert oder korrigiert werden müssen. Die Zusammenarbeit innerhalb der Open-Source-Community wird effizienter, wenn alle Beteiligten auf eine gemeinsame SBOM zurückgreifen können, um Sicherheitslücken und andere Probleme zu beheben.
Einhaltung gesetzlicher Vorschriften
In einigen Branchen verlangen regulatorische Rahmenbedingungen von Unternehmen, Transparenz und Kontrolle über die in ihren Anwendungen oder Systemen verwendeten Softwarekomponenten nachzuweisen. Eine SBOM stellt die erforderliche Dokumentation bereit, um diese Compliance-Anforderungen zu erfüllen. Sie ermöglicht es Unternehmen, die gebotene Sorgfalt, Rückverfolgbarkeit und Einhaltung relevanter Vorschriften nachzuweisen, insbesondere im Hinblick auf Sicherheits- und Lizenzierungsaspekte von Open-Source-Software.
Lizenzkonformität
OSS unterliegt in der Regel bestimmten Lizenzen, die festlegen, wie die Software verwendet, verändert und verbreitet werden darf. Eine SBOM bietet einen umfassenden Überblick über alle Open-Source-Komponenten und die zugehörigen Lizenzen. Dies hilft Organisationen dabei, die Lizenzbedingungen der von ihnen verwendeten OSS einzuhalten. Wenn Organisationen ihre Lizenzpflichten kennen, können sie fundierte Entscheidungen über die Verbreitung und Nutzung ihrer Software treffen und zugleich rechtliche Probleme oder Compliance-Verstöße vermeiden.
SBOM-Anforderungen in stark regulierten Branchen
Mehrere Regierungen und Organisationen in stark regulierten Branchen wie dem Bank- und Gesundheitswesen setzen sich für die Verwendung von SBOMs ein oder erwägen, deren Verwendung entweder intern oder für ihre Lieferanten verpflichtend vorzuschreiben.
Beispiele für Branchen, die SBOMs verwenden
- Öffentlicher Sektor – Die Vereinigten Staaten, die Europäische Union, das Vereinigte Königreich und Japan gehören zu den vielen Ländern, die SBOMs nutzen, deren Verwendung regulieren oder empfehlen.
- Technologie – Große Technologieunternehmen wie Google, Microsoft und IBM gehen mit gutem Beispiel voran, indem sie SBOMs in ihre eigenen Softwareentwicklungsprozesse integrieren und zu Projekten wie dem Software Package Data Exchange (SPDX), OWASP und der Veröffentlichung eines Tools zur SBOM-Generierung als Open Source beitragen.
- Automobilindustrie – Mehrere große Automobilhersteller wie Ford und General Motors führen SBOMs ein und fordern ihre Zulieferer dazu auf, SBOMs für die in Fahrzeugsystemen verwendeten Komponenten und Software bereitzustellen.
- Gesundheitswesen – Hersteller von Medizinprodukten auf dem US-Markt verwenden inzwischen SBOMs, um eine 2022 erlassene Vorschrift der Food and Drug Administration einzuhalten.
Wer gehört zu einem SBOM-Team?
Die Erstellung einer SBOM erfordert die Zusammenarbeit und Einbindung verschiedener Interessengruppen entlang der gesamten Software-Lieferkette. Indem Organisationen diese Interessengruppen einbeziehen und ihre Zusammenarbeit fördern, können sie eine robuste und zuverlässige SBOM erstellen, die die erforderlichen Informationen über Softwarekomponenten erfasst, die Sicherheit der Lieferkette erhöht und das Risikomanagement sowie die Einhaltung von Vorschriften erleichtert.
Hier sind einige wichtige Personen oder Rollen, die in den Prozess einbezogen werden sollten:
- Entwicklungsteam – Das Entwicklungsteam, einschließlich Softwareingenieuren und Entwicklern, spielt eine entscheidende Rolle bei der Identifizierung und Dokumentation der im Projekt verwendeten Softwarekomponenten. Es ist dafür verantwortlich, genaue Informationen über die Abhängigkeiten, Versionen und Herkunft der eingesetzten Softwarekomponenten bereitzustellen.
- Projektmanager – Projektmanager überwachen den gesamten Softwareentwicklungsprozess und sollten an der Erstellung einer SBOM beteiligt sein. Sie können sich mit dem Entwicklungsteam abstimmen, um sicherzustellen, dass die erforderlichen Informationen zusammengetragen und in der SBOM dokumentiert werden. Projektmanager spielen außerdem eine wichtige Rolle dabei, die Einhaltung der SBOM-Anforderungen sicherzustellen und die SBOM in den Projektablauf zu integrieren.
- Sicherheitsteam – Das Sicherheitsteam, einschließlich Sicherheitsanalysten und -spezialisten, spielt eine entscheidende Rolle bei der Bewertung und Bewältigung von Sicherheitsrisiken im Zusammenhang mit Softwarekomponenten. Es kann Erkenntnisse zu Schwachstellen und bekannten Sicherheitsproblemen liefern, die die in Ihrer SBOM aufgeführten Komponenten betreffen. Seine Fachkenntnisse helfen dabei, potenzielle Sicherheitsrisiken zu identifizieren und Maßnahmen zu deren Behebung zu priorisieren.
- Beschaffungsteam – Das Beschaffungsteam bzw. die für die Beschaffung von Softwarekomponenten zuständigen Personen spielen eine entscheidende Rolle bei der Erstellung einer SBOM. Sie können Informationen zur Herkunft und zu den Lizenzdetails der aus externen Quellen bezogenen Komponenten bereitstellen. Die Zusammenarbeit mit dem Beschaffungsteam gewährleistet eine genaue Nachverfolgung und Überprüfung der Softwarekomponenten innerhalb der Lieferkette.
- Betriebsteam – Das Betriebsteam ist häufig für die Bereitstellung und Wartung der Software verantwortlich. Bei der Erstellung einer SBOM kann es wertvolle Informationen über die Laufzeitumgebung, Bereitstellungskonfigurationen und zusätzliche Softwarekomponenten beisteuern, die während der Betriebsphase eingeführt wurden. Seine Erkenntnisse gewährleisten eine umfassende und aktuelle SBOM.
- Rechts- und Compliance-Experten – Fachleute aus den Bereichen Recht und Compliance sind wichtige Beteiligte bei der Erstellung einer SBOM, insbesondere im Hinblick auf Lizenzierungsfragen und Aspekte des geistigen Eigentums. Sie können bei der Einhaltung von Lizenzbestimmungen beraten und sicherstellen, dass Ihre SBOM allen rechtlichen Anforderungen oder Einschränkungen im Zusammenhang mit den Softwarekomponenten entspricht.
- Externe Anbieter und Partner – Wenn das Softwareprojekt Komponenten oder Dienste externer Anbieter oder Partner umfasst, ist es entscheidend, diese in den SBOM-Prozess einzubeziehen. Sie können notwendige Informationen zu ihren Angeboten bereitstellen, darunter Abhängigkeiten, Versionen und Schwachstellen. Die Zusammenarbeit mit externen Beteiligten trägt dazu bei, eine umfassende und präzise SBOM zu gewährleisten.
So erstellen Sie eine SBOM
Unternehmen sollten danach streben, eine SBOM zu erstellen, die einen umfassenden Überblick über Softwarekomponenten, deren Herkunft und Abhängigkeiten sowie die zugehörigen Sicherheitsinformationen bietet. Dies ermöglicht ein besseres Management von Risiken in der Softwarelieferkette und erhöht die allgemeine Softwaresicherheit.
Die wichtigsten Schritte bei der Erstellung einer SBOM sind:
- Komponenten identifizieren und inventarisieren: Ermitteln Sie zunächst alle in Ihrem Projekt verwendeten Softwarekomponenten, einschließlich proprietärer und Open-Source-Komponenten. Erstellen Sie eine Bestandsliste mit Angaben wie Name, Version und Herkunft der einzelnen Komponenten.
- Herkunft der Komponenten bestimmen: Ermitteln Sie für jede Komponente, woher sie stammt und ob es sich um eine proprietäre oder eine Open-Source-Komponente beziehungsweise um eine Kombination aus beidem handelt. Dieser Schritt hilft dabei, potenzielle Sicherheitslücken im Zusammenhang mit den verschiedenen Komponenten zu bewerten.
- Abhängigkeiten dokumentieren: Dokumentieren Sie die Abhängigkeiten zwischen den Komponenten, einschließlich aller verwendeten Bibliotheken und Frameworks. Dies erleichtert das Verständnis der Beziehungen zwischen den verschiedenen Komponenten und stellt sicher, dass alle Abhängigkeiten erfasst werden.
- Metadaten erfassen: Erfassen Sie für jede Komponente Metadaten wie Lizenzinformationen, bekannte Schwachstellen und Veröffentlichungsdaten. Diese Informationen sind entscheidend, um die Sicherheits- und Compliance-Aspekte der Softwarekomponenten nachzuverfolgen.
- SBOM-Erstellung automatisieren: Um den Prozess effizienter zu gestalten, sollten Sie die Erstellung der SBOM mithilfe spezieller Tools automatisieren. Diese Tools können Ihr Softwareprojekt scannen, die Komponenten identifizieren und die erforderlichen Informationen automatisch erfassen.
- Halten Sie Ihre SBOM auf dem neuesten Stand: Da sich Ihr Softwareprojekt kontinuierlich weiterentwickelt, ist es wichtig, auch Ihre SBOM stets aktuell zu halten. Überprüfen und aktualisieren Sie regelmäßig das Inventar, die Herkunft der Komponenten, die Abhängigkeiten und die Metadaten, sobald Änderungen auftreten.
- Teilen und nutzen Sie Ihre SBOM: Stellen Sie Ihre SBOM den relevanten Beteiligten in Ihrer Software-Lieferkette zur Verfügung, beispielsweise Anbietern, Kunden und Prüfern. Dies fördert die Transparenz, ermöglicht eine bessere Risikobewertung und hilft dabei, Schwachstellen zu erkennen und zu beheben.
- Schwachstellen überwachen und verwalten: Überwachen Sie kontinuierlich neue Schwachstellen und Sicherheitsupdates für die Komponenten in Ihrer SBOM. Informieren Sie sich über die neuesten Sicherheitspatches und beheben Sie Schwachstellen umgehend, um die Sicherheit Ihrer Software zu gewährleisten.
Sieben Gründe, warum eine SBOM die Erwartungen nicht erfüllen kann
Es gibt verschiedene Gründe, warum eine SBOM scheitern oder ihren vorgesehenen Zweck nicht vollständig erfüllen kann. Wenn Sie diese Herausforderungen angehen und die Richtigkeit, Vollständigkeit und Aktualität Ihrer SBOM sicherstellen, können Sie das Risiko eines Fehlschlags verringern.
Hier sind einige häufige Fehlerursachen, die den Best Practices für die Erstellung einer SBOM entsprechen:
- Unvollständiges oder ungenaues Inventar: Wenn Ihre SBOM nicht alle in einem Projekt verwendeten Softwarekomponenten korrekt erfasst oder unvollständige Informationen enthält, kann dies zu blinden Flecken und Lücken beim Verständnis der Softwarelieferkette führen. Ein unvollständiges oder ungenaues Inventar kann dazu führen, dass Schwachstellen oder Abhängigkeiten übersehen werden, wodurch die Wirksamkeit Ihrer SBOM beeinträchtigt wird.
- Mangelnde Transparenz bei Komponenten: Wenn Ihre SBOM keinen klaren Einblick in die Herkunft, Versionen und Abhängigkeiten von Softwarekomponenten bietet, ist es schwierig, die damit verbundenen Risiken effektiv zu bewerten und zu steuern. Ohne umfassende Transparenz wird es schwierig, Schwachstellen nachzuverfolgen, verfügbare Patches zu ermitteln und die Einhaltung von Lizenzanforderungen sicherzustellen.
- Manuelle und veraltete Prozesse: Wenn Sie sich bei der Erstellung und Pflege einer SBOM auf manuelle Prozesse verlassen, kann dies zu Ineffizienz und Fehlern führen. Wird Ihre SBOM nicht regelmäßig aktualisiert, um Änderungen am Softwareprojekt abzubilden, ist sie schnell veraltet und verliert ihren Wert als zuverlässige Referenz für Sicherheits- und Compliance-Zwecke.
- Unzureichende Metadaten und fehlender Kontext: Eine SBOM sollte mehr als nur eine Liste von Softwarekomponenten enthalten – sie sollte auch relevante Metadaten wie Lizenzinformationen, bekannte Schwachstellen und Veröffentlichungsdaten umfassen. Fehlen diese zusätzlichen Kontextinformationen oder sind sie unvollständig, erschwert dies eine genaue Risikobewertung und fundierte Entscheidungen.
- Mangelnde Zusammenarbeit zwischen den Beteiligten: Die Zusammenarbeit und der Informationsaustausch zwischen den Beteiligten der Software-Lieferkette sind für die effektive Nutzung einer SBOM unerlässlich. Mangelt es an Kooperation oder besteht Zurückhaltung bei der Weitergabe von SBOM-Informationen, wird es schwierig, Schwachstellen gemeinsam zu identifizieren und zu beheben, wodurch die Gesamtsicherheit der Software beeinträchtigt wird.
- Begrenzte Tool-Unterstützung und Automatisierung: Die manuelle Erstellung und Pflege einer SBOM kann zeitaufwendig und fehleranfällig sein. Ohne geeignete Tools und Automatisierung ist es schwierig, Ihre SBOM effizient zu erstellen, zu aktualisieren und zu verwalten. Eine unzureichende Automatisierung kann zudem zu Verzögerungen bei der Erkennung neuer Schwachstellen oder Abhängigkeiten führen.
- Unzureichende Überwachung von Schwachstellen: Eine SBOM sollte durch einen zuverlässigen Prozess zur Überwachung von Schwachstellen ergänzt werden. Werden die Softwarekomponenten nicht regelmäßig auf neue Schwachstellen und Sicherheitsupdates überwacht, bleiben potenzielle Risiken möglicherweise unentdeckt und die Software ist bekannten Schwachstellen ausgesetzt.
Zusammenfassung
Insgesamt ist eine SBOM ein wertvolles Instrument zur Bewältigung der Komplexität von OSS. Sie fördert Transparenz, Sicherheit, Compliance und Zusammenarbeit innerhalb des Open-Source-Ökosystems. Durch ein detailliertes Verzeichnis der Softwarekomponenten, ihrer Versionen und der zugehörigen Lizenzinformationen versetzt eine SBOM Unternehmen in die Lage, fundierte Entscheidungen zu treffen, Risiken zu steuern sowie die Integrität und Sicherheit ihrer Softwareprojekte zu gewährleisten.

