,

Software Bill of Materials (SBOM) im Detail erklärt

min Lesezeit

Was ist eine Software Bill of Materials?

Eine Software Bill of Materials (SBOM) ist ein essenzielles Werkzeug, um die Komponenten von Software zu überwachen und die Sicherheit der Softwarelieferkette zu gewährleisten. Hier erfahren Sie alles, was Sie über SBOM wissen sollten.

Softwareentwicklung und Autoproduktion – Gemeinsamkeiten und Bedeutung

Die Sphären der Softwareentwicklung und Autoproduktion mögen unterschiedlich erscheinen, doch sie teilen mehr Gemeinsamkeiten, als auf den ersten Blick erkennbar ist. Im Zentrum dieser Verbindung steht die Software Bill of Materials (SBOM). Lassen Sie uns einen Blick darauf werfen, wie SBOMs die Grundlage für Transparenz und Sicherheit in diesen Bereichen schaffen.

Die Software Bill of Materials im Detail

Eine SBOM fungiert als umfassendes Handbuch, das nicht nur eine Liste der Bestandteile Ihrer Software enthält, sondern auch deren komplexe Beziehungen untereinander. Wie eine Stückliste in der Fertigungsindustrie unterstützt die SBOM sowohl Anbieter als auch Käufer dabei, den Überblick über die Softwarekomponenten zu behalten und die Integrität der Softwarelieferkette zu gewährleisten.

SBOM – Definition und Bedeutung

Eine Software Bill of Materials ist eine formelle und strukturierte Aufzeichnung, die folgende Informationen umfasst:

  1. Die einzelnen Bestandteile eines Softwareprodukts sowie
  2. Ihre untereinander bestehenden Verbindungen innerhalb der gesamten Softwarelieferkette.

Die SBOM gibt nicht nur Aufschluss darüber, welche Pakete und Bibliotheken in Ihre Anwendung eingebunden sind, sondern beleuchtet auch die Interaktionen zwischen diesen Elementen sowie anderen vorangegangenen Projekten. Dies erweist sich als äußerst bedeutsam, insbesondere im Kontext von wiederverwendetem Code und Open-Source-Komponenten.

Parallele zu Stücklisten in der Automobilindustrie

Um die Bedeutung einer SBOM zu verdeutlichen, ziehen wir einen Vergleich zur Automobilindustrie. Stellen Sie sich eine detaillierte Stückliste vor, die jedes einzelne Bauteil in Ihrem Fahrzeug beschreibt. Selbst wenn ein Auto von einem renommierten Hersteller wie Toyota oder General Motors zusammengebaut wird, stammen viele Teile von Zulieferern rund um den Globus. Die Stückliste enthüllt die Herkunft eines jeden Bauteils. Dies dient nicht nur der Transparenz, sondern auch der Sicherheit. Im Falle von Rückrufen müssen Hersteller schnell ermitteln können, welche Fahrzeuge von einem bestimmten Problem betroffen sind.

Mit der zunehmenden Verwendung von Open-Source-Bibliotheken gewinnt die SBOM auch in der Softwareentwicklung an Bedeutung. Sowohl Entwickler als auch Anwender profitieren von der Möglichkeit, mithilfe einer SBOM die Bestandteile einer Software zu identifizieren, ihre Verteilung nachzuvollziehen und Sicherheitsüberlegungen anzustellen.

Vorteile der Software Bill of Materials

Die Ära der monolithischen, proprietären Codebasen ist längst passé. Moderne Anwendungen setzen verstärkt auf wiederverwendeten Code und Open-Source-Bibliotheken. Diese Anwendungen sind in kleinere, autarke Funktionskomponenten, sogenannte Container, unterteilt und werden über Plattformen wie Kubernetes orchestriert.

Diese Umstellung hat zweifelsohne die Produktivität der Softwareentwicklung gesteigert und Kosten reduziert. Dennoch ergeben sich aus sicherheitstechnischer Perspektive auch Herausforderungen. Entwickler setzen stark auf den Code von Drittanbietern, dessen interne Abläufe oft unbekannt sind. Dies führt zu einer komplexen Lieferkette von Softwarekomponenten, vergleichbar mit der Herstellung physischer Produkte. Da die Sicherheit einer Anwendung nur so robust ist wie ihr schwächstes Glied, können hierbei gravierende Sicherheitslücken auftreten. Die 2020er Jahre waren Zeugen verschiedener Angriffe auf die Softwarelieferkette, die für Schlagzeilen sorgten.

Einblick in die Rolle der Software Bill of Materials

Diese Vorfälle unterstreichen die potenzielle Bedeutung einer Software Bill of Materials im Bereich der Sicherheit. Viele Nutzer haben vielleicht von diesen Schwachstellen gehört, jedoch nicht erkannt, dass auch sie Log4j oder andere Komponenten verwenden. Eine SBOM ermöglicht es, die installierten Pakete samt Versionen genau zu erfassen. Bei Bedarf können Aktualisierungen durchgeführt werden, um die Sicherheit zu gewährleisten.

Darüber hinaus geht eine Software Bill of Materials über Sicherheitsaspekte hinaus. SBOMs können Entwicklern helfen, den Überblick über die Open-Source-Lizenzen ihrer verschiedenen Softwarekomponenten zu behalten. Dies ist insbesondere bei der Verteilung von Anwendungen von Bedeutung.

Die US-amerikanische Perspektive

Der SolarWinds-Hack hat die US-Regierung alarmiert, da zahlreiche Bundesbehörden von den betroffenen Komponenten Gebrauch machten. Als Reaktion darauf veröffentlichte die Biden-Regierung im Mai 2022 eine Cybersecurity-Verordnung, die auch Richtlinien für SBOMs einschloss. Das US-Handelsministerium publizierte einen Leitfaden, der die wesentlichen Elemente einer SBOM definiert.

Diese Vorschriften haben nicht nur Auswirkungen auf Organisationen, die direkt mit US-Bundesbehörden in Verbindung stehen, sondern auch auf Unternehmen, die Produkte an die Regierung verkaufen. Viele Softwarehersteller hoffen, dass SBOMs auch in der Privatwirtschaft an Bedeutung gewinnen.

Die Bedeutung der Software Bill of Materials (SBOM) wird durch die Einsicht von Sounil Yu, einem ehemaligen Chief Security Scientist bei der Bank of America und nun CISO und Forschungsleiter bei JupiterOn, verdeutlicht. Er betont, dass das staatliche Auftragswesen selbst eine umfangreiche Lieferkette darstellt. Während einige wenige Unternehmen direkt mit der US-Regierung zusammenarbeiten und von den Vorschriften betroffen sind, erstrecken sich die Auswirkungen bis zur zweiten Zuliefererebene und darüber hinaus.

Aufbau einer Software Bill of Materials (SBOM)

Um den Aufbau einer SBOM zu verstehen, betrachten wir die vom National Telecommunications and Information Administration (NTIA) veröffentlichten Mindestelemente einer SBOM. Eine SBOM sollte sieben Datenfelder enthalten:

  1. Name des Anbieters: Dieser Abschnitt enthält den Namen der Einheit, die die jeweilige Softwarekomponente erstellt, definiert und identifiziert.
  2. Komponentenname: Hierbei handelt es sich um die Bezeichnung, die einer Softwareeinheit zugewiesen wird und die vom ursprünglichen Lieferanten definiert wurde.
  3. Version der Komponente: Diese Kennung wird vom Lieferanten verwendet, um Änderungen an der Software im Vergleich zu einer zuvor identifizierten Version anzugeben.
  4. Andere eindeutige Identifikatoren: Zusätzliche Informationen, die verwendet werden, um die Komponente zu identifizieren oder als Nachschlageschlüssel für relevante Datenbanken dienen. Dies kann beispielsweise ein Identifikator aus dem NIST CPE Dictionary sein.
  5. Abhängigkeitsbeziehung: Dieser Abschnitt kennzeichnet die Beziehung zwischen einer übergeordneten Komponente X und der enthaltenen Software Y. Dies ist besonders wichtig im Kontext von Open-Source-Projekten.
  6. Autor der SBOM-Daten: Hier wird der Name der Entität angegeben, die die SBOM-Daten erstellt hat.
  7. Zeitstempel: Dieser Abschnitt dokumentiert das Datum und die Uhrzeit, zu der die SBOM-Daten erstellt wurden.

Zusätzlich zu diesen Mindestanforderungen muss die SBOM in einem der drei standardisierten Formate vorliegen, die maschinenlesbar sind: SPDX, CycloneDX oder SWID-Tags. Mit jeder neuen Version der Software sollte eine aktualisierte SBOM erstellt werden, um sicherzustellen, dass sie stets auf dem neuesten Stand ist. Die SBOM sollte nicht nur vorhandene Abhängigkeitsbeziehungen aufzeigen, sondern auch solche, die wahrscheinlich bestehen, aber der erstellenden Organisation unbekannt sind.

Erstellung einer Software Bill of Materials (SBOM)

Die Erstellung einer SBOM kann angesichts der Menge an Informationen zunächst entmutigend wirken. Glücklicherweise können moderne Software Composition Analysis (SCA)-Tools diesen Prozess automatisieren. Diese Tools durchsuchen Ihre Codeverzeichnisse nach Paketen und gleichen sie mit Online-Datenbanken ab, um Übereinstimmungen mit bekannten Bibliotheken zu finden. SCA-Tools werden häufig in DevSecOps-Pipelines eingesetzt und spielen eine wichtige Rolle bei der Erstellung von SBOMs.

Es gibt Tools, die im Rahmen des Software-Build-Prozesses eine SBOM erstellen. Die OWASP Foundation hat eine umfassende Liste von SCA-Tools zusammengestellt, die von einfachen, quelloffenen Kommandozeilen-Tools bis hin zu spezialisierten, kommerziellen Produkten reicht. Wenn Sie tiefer in dieses Thema eintauchen möchten, empfiehlt sich ein Blick auf den Artikel „7 Tools, die Ihre Softwarelieferkette absichern“.

Unabhängig davon, ob Sie Verträge mit der US-Regierung haben oder nicht, wird es immer wichtiger, SBOMs in Ihre Entwicklungspraxis zu integrieren. Die Bedrohungslage erfordert, dass Sie die Sicherheit Ihrer Softwarelieferkette ernst nehmen.

Software Bill of Materials (SBOM) im Detail erklärt

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert