SBOM erklärt

Was ist eine Software Bill of Materials?

Eine Software Bill of Materials (SBOM) hilft, Softwarekomponenten im Blick zu behalten und die Softwarelieferkette abzusichern. Das sollten Sie wissen.
Von 
CSO | 22. Juli 2022 05:23 Uhr
Softwareentwicklung und Autoproduktion haben mehr gemein, als man denkt. Lesen Sie, was Sie zum Thema Software Bill of Materials (SBOM) wissen sollten.
Softwareentwicklung und Autoproduktion haben mehr gemein, als man denkt. Lesen Sie, was Sie zum Thema Software Bill of Materials (SBOM) wissen sollten.
Foto: Ju1978 - shutterstock.com

Eine Software Bill of Materials ist ein detaillierter Leitfaden, der unter anderem Aufschluss über die Komponenten Ihrer Software gibt. Als eine Art Stückliste hilft eine SBOM Anbietern und Käufern gleichermaßen, den Überblick über die Komponenten zu behalten und die Sicherheit der Softwarelieferkette zu verbessern.

SBOM - Definition

Eine Software Bill of Materials ist eine formale, strukturierte Aufzeichnung, die die

  • Komponenten eines Softwareprodukts und

  • ihre Beziehungen innerhalb der Softwarelieferkette

beschreibt. Eine SBOM gibt also einerseits an, welche Pakete und Bibliotheken in Ihre Anwendung eingeflossen sind, andererseits auch die Beziehung zwischen diesen Paketen und Bibliotheken und anderen vorgelagerten Projekten. Das ist besonders wichtig ist, wenn es um wiederverwendeten Code und Open-Source-Komponenten geht.

Sie kennen Stücklisten vielleicht im Zusammenhang mit Neuwagen. In diesem Fall handelt es sich um ein Dokument, das jede Komponente, die sich in Ihrem neuen Fahrzeug befindet, detailliert beschreibt. Auch wenn Ihr Auto von Toyota oder General Motors zusammengebaut wurde: Viele seiner Komponenten stammen von Subunternehmern auf der ganzen Welt. Die Stückliste gibt Aufschluss darüber, woher jedes einzelne dieser Teile stammt. Das dient nicht nur der Transparenz, sondern auch der Sicherheit: Wird eine bestimmte Serie von Airbags zurückgerufen, müssen die Fahrzeughersteller schnell herausfinden können, wo diese verbaut sind.

Da Open-Source-Bibliotheken von Drittanbietern sich jedoch zunehmender Beliebtheit erfreuen, um containerisierte, verteilte Applikationen zu erstellen, weisen Softwareentwicklung und Fahrzeugfertigung inzwischen mehr Gemeinsamkeiten auf, als man denkt. Sowohl Entwickler als auch Benutzer können eine Software Bill of Materials verwenden, um nachzuvollziehen, welche Bestandteile in die Software eingeflossen sind, wie sie verteilt und verwendet wurden. Das erlaubt - insbesondere aus Sicherheitsperspektive - eine Reihe wichtiger Rückschlüsse.

Software Bill of Materials - Vorteile

Die Zeiten monolithischer, proprietärer Codebasen sind längst vorbei. Moderne Anwendungen basieren oft auf in großen Teilen wiederverwendetem Code - häufig mit Beteiligung von Open-Source-Bibliotheken. Diese Anwendungen werden auch zunehmend in kleinere, in sich geschlossene Funktionskomponenten, so genannte Container, aufgeteilt, die über Orchestrierungsplattformen wie Kubernetes gemanagt und lokal oder in der Cloud ausgeführt werden.

Im Großen und Ganzen waren diese Veränderungen ein Segen für die Softwareentwicklung und haben dazu beigetragen, die Entwicklerproduktivität zu erhöhen und Kosten zu senken. Aus Security-Perspektive sieht das Bild nicht ganz so rosig aus: Indem sie sich in hohem Maße auf den Code von Drittanbietern verlassen, (deren interne Prozesse sie möglicherweise nicht oder nur teilweise kennen), haben Entwickler eine Lieferkette von Softwarekomponenten geschaffen, die genauso komplex ist, wie die von Herstellern physischer Produkte. Da eine Anwendung jedoch nur so sicher ist wie ihre schwächste Komponente, kann dieses Gebahren gravierende Schwachstellen zur Folge haben. Die 2020er Jahre waren von einer Reihe von Angriffen auf die Softwarelieferkette geprägt, die für Schlagzeilen sorgten:

  • Ende 2020 gelang es Hackern, die mit dem russischen Geheimdienst in Verbindung stehen sollen, eine Backdoor in die Netzwerk-Monitoring-Plattform von SolarWinds einzuschleusen. Diese wird wiederum von anderen Sicherheitsprodukten genutzt, was zu ihrer Kompromittierung führte.

  • Ende 2021 wurde eine schwerwiegende Sicherheitslücke in Apache Log4j entdeckt, einer Java-Bibliothek, die für die Protokollierung von Systemereignissen verwendet wird. Das hört sich nur so lange langweilig an, bis man feststellt, dass fast jede Java-Anwendung Log4j in irgendeiner Form verwendet und damit angreifbar wird.

Diese Sicherheitskrisen verdeutlichen die potenzielle Rolle der Software Bill of Materials innerhalb der Sicherheitslandschaft. Viele Anwender haben vielleicht nur beiläufig von diesen Schwachstellen gehört, waren sich aber nicht bewusst, dass sie Log4j oder eine andere SolarWinds-Komponente verwenden. Mit einer SBOM wissen Sie genau, welche Pakete Sie installiert haben - und vor allem, welche Versionen dieser Pakete. So können Sie bei Bedarf aktualisieren, um auf der sicheren Seite zu sein.

Eine Software Bill of Material kann auch über die Sicherheit hinausgehen: SBOMs können Entwicklern beispielsweise dabei helfen, den Überblick über die Open-Source-Lizenzen ihrer verschiedenen Softwarekomponenten zu behalten, was wichtig ist, wenn es darum geht, Applikationen zu distribuieren.

SBOMs - Pflicht in den USA

Der SolarWinds-Hack hat insbesondere bei der US-Regierung die Alarmglocken schrillen lassen - auch weil viele US-Bundesbehörden die kompromittierte Komponente eingesetzt hatten. Deshalb enthielt die im Mai 2022 von der Biden-Regierung erlassene Cybersecurity-Verordnung auch Richtlinien im Zusammenhang mit Software Bill of Materials. Das US-Handelsministerium veröffentlichte einen Leitfaden, welche grundlegenden Elemente in SBOMs enthalten sein müssen.

Obwohl sich die Anordnung speziell auf diejenigen bezieht, die in direkter Beziehung zu den US-Bundesbehörden stehen, werden die Regelungen weitergehende Auswirkungen haben. Schließlich werden die an die US-Regierung verkauften Produkte, die nun mit einer SBOM ausgeliefert werden müssen, größtenteils auch an andere Unternehmen und Organisationen verkauft. Viele Softwarehersteller hoffen, dass die Kunden aus der Privatwirtschaft SBOMs ebenfalls als Mehrwert betrachten.

Außerdem ist das staatliche Auftragswesen selbst eine Lieferkette, wie Sounil Yu, ehemaliger Chief Security Scientist bei der Bank of America und jetzt CISO und Forschungsleiter bei JupiterOn, unterstreicht: "Es gibt nur eine bestimmte Anzahl von Unternehmen, die direkt mit der US-Regierung zusammenarbeiten und von der Verordnung betroffen sind. Die Auswirkungen auf der zweiten Zuliefererebene sind noch wesentlich größer."

Software Bill of Materials - Aufbau

Als Reaktion auf die Executive Order veröffentlichte die National Telecommunications and Information Administration (NTIA) im Juli 2021 den Leitfaden "The Minimum Elements For a Software Bill of Materials" (PDF). Das Dokument könnte zu einem De-facto-Standard für SBOMs in der gesamten Branche werden und legt sieben Datenfelder fest, die jede SBOM enthalten sollte:

  • Name des Anbieters: Der Name einer Einheit, die eine Komponente erstellt, definiert und identifiziert.

  • Komponentenname: Die Bezeichnung, die einer vom ursprünglichen Lieferanten definierten Softwareeinheit zugewiesen wird.

  • Version der Komponente: Eine Kennung, die vom Lieferanten verwendet wird, um eine Änderung der Software gegenüber einer zuvor identifizierten Version anzugeben.

  • Andere eindeutige Identifikatoren: Andere Informationen, die verwendet werden, um eine Komponente zu identifizieren oder als Nachschlageschlüssel für relevante Datenbanken dienen. Das könnte etwa ein Identifikator aus dem NIST CPE Dictionary sein.

  • Abhängigkeitsbeziehung: Kennzeichnet die Beziehung, in der eine Upstream-Komponente X in Software Y enthalten ist. Das ist besonders wichtig für Open-Source-Projekte.

  • Autor der SBOM-Daten: Der Name der Entität, die die SBOM-Daten erstellt.

  • Zeitstempel: Aufzeichnung des Datums und der Uhrzeit der Zusammenstellung der SBOM-Daten.

SBOMs müssen darüber hinaus auch folgende Anforderungen erfüllen:

  • Die SBOM muss in einem von drei standardisierten Formaten vorliegen, damit sie maschinenlesbar ist - SPDX, CycloneDX oder SWID-Tags.

  • Mit jeder neuen Softwareversion muss eine neue SBOM generiert werden, um sicherzustellen, dass sie auf dem neuesten Stand ist.

  • Die SBOM muss nicht nur Abhängigkeitsbeziehungen enthalten, sondern auch Aufschluss darüber geben, wo solche Beziehungen wahrscheinlich bestehen, aber der Organisation, die die SBOM erstellt, unbekannt sind.

SBOM erstellen - so geht's

Wenn Sie diesen Artikel lesen, empfinden Sie es möglicherweise als entmutigende Aufgabe, eine Software Bill of Materials zu erstellen. Schließlich muss es ein Alptraum sein, all diese Informationen manuell zusammenzutragen. Glücklicherweise werden SBOMs in den meisten Fällen mit Hilfe von SCA-Tools (Software Composition Analysis ) automatisch erstellt. Diese Tools werden häufig in DevSecOps-Pipelines eingesetzt und spielen nicht nur für die Erstellung von SBOMs eine Rolle.

SCA-Tools durchsuchen Ihre Codeverzeichnisse nach Paketen und vergleichen sie mit Online-Datenbanken, um sie mit bekannten Bibliotheken abzugleichen. Es gibt aber auch Werkzeuge, die eine Software Bill of Materials im Rahmen des Software-Build-Prozesses 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 diesen Bereich eintauchen möchten, sollten Sie außerdem einen Blick auf unseren Artikel "7 Tools, die Ihre Softwarelieferkette absichern" werfen.

Wenn Sie verteilte Software entwickeln, wird es immer wichtiger, SBOMs in Ihre Entwicklungspraxis zu integrieren. Auch wenn Sie keine Verträge mit der US-Regierung abschließen - Sie sollten sich angesichts der Bedrohungslage in jedem Fall Gedanken über die Sicherheit ihrer Softwarelieferkette machen. (fm)

Dieser Beitrag basiert auf einem Artikel unserer US-Schwesterpublikation CSO Online.

Josh Fruhlinger ist freier Autor in Los Angeles.