So automatisieren Sie die SBOM-Erstellung

Eine Software-Stückliste ist nicht mehr nur eine „gute“ Dokumentation für Unternehmen. Aus vielen Gründen ist es mittlerweile ein „Must-have“. Abgesehen von der Tatsache, dass bundesstaatliche Vorschriften die Offenlegung der Komponenten Ihrer Software zur Pflicht gemacht haben, haben Softwareunternehmen inzwischen erkannt, dass die Auflistung aller in Ihrer Anwendung verwendeten Open-Source- und kommerziellen Abhängigkeiten eine vorteilhafte Cybersicherheitspraxis ist.

Interessanterweise kann die Erstellung einer SBOM, obwohl man die Notwendigkeit einer SBOM erkannt hat, immer noch eine große Herausforderung darstellen. Das liegt daran, dass der Prozess der Erstellung der Software-Stückliste für ein Produkt komplex, langwierig und zeitaufwändig sein kann. Da Aufsichtsbehörden außerdem die Erstellung einer präzisen und genauen SBOM für jede Iteration Ihres Produkts empfehlen, ist die manuelle Implementierung jedes Mal recht ressourcenintensiv, wenn nicht sogar völlig unpraktisch. 

Wenn es um die Implementierung umfassender SBOMs geht, empfiehlt sich immer der Weg der Automatisierung. Jede Software ist ein kompliziertes Paket, das aus mehreren Abhängigkeiten besteht, die höchstwahrscheinlich auch ihre eigenen Abhängigkeiten haben. Das bedeutet, dass selbst die einfachste Software Hunderte oder sogar Tausende von Abhängigkeiten aufweisen kann. Es wird eine Menge Arbeit erfordern, all dies zusammenzustellen und manuell zu organisieren. In diesem Artikel wird erklärt, warum Automatisierung für die Implementierung von SBOMs notwendig ist und wie man Automatisierung implementiert, um den Stress zu verringern, der mit der manuellen Generierung von SBOMs einhergeht. 

Warum die Automatisierung des SBOM-Prozesses wichtig ist

Eine Software-Stückliste ist einfach eine Liste der Komponenten eines Softwareprodukts (ähnlich einer Zutatenliste eines essbaren Produkts). Im Allgemeinen benötigen Sie zum Erstellen einer Software-Stückliste lediglich eine Tabelle, in der diese Komponenten aufgeführt sind. Dies ist jedoch eine übermäßige Vereinfachung, die kaum jemals praktikabel ist. Eine SBOM ist eine vollständige Liste mit einem genauen Satz der erforderlichen Informationen. Der Versuch, diese Liste manuell zu bearbeiten, ist natürlich zeitaufwändig und kompliziert.

Manuelle SBOMs reichen einfach nicht aus, weshalb Automatisierung bei der Implementierung und Aufnahme von SBOMs von entscheidender Bedeutung ist. Abgesehen von der Schwierigkeit, manuelle SBOMs zu implementieren, birgt die manuelle Erstellung von SBOMs auch Risiken – ganz zu schweigen von den Compliance-Problemen. Im Folgenden sind einige der Gründe aufgeführt, warum SBOMs am besten mit einem automatisierten System erstellt werden, das eine umfassende Liste von Software sammelt und zusammenstellt und diese in einem Repository speichert, das für Menschen lesbar und leicht abzufragen ist.

Bedrohungen der Cyber-Lieferkette

Das Hauptziel der Erstellung einer umfassenden SBOM besteht darin, Softwarekomponenten besser zu verstehen und mögliche Schwachstellen zu analysieren. Dies ist zu einer wichtigen Cybersicherheitsmaßnahme geworden, um Bedrohungen für jedes Softwareprodukt abzuschwächen. Eine automatisierte SBOM macht diesen Prozess reibungsloser. Eine automatisierte Software-Stückliste ist nicht nur sicherer (dank kryptografischer Signatur und automatisierter Komponentenüberprüfung), sondern die Automatisierung stellt auch sicher, dass Komponenten während der gesamten Integrations- und Bereitstellungspipeline einer Software-Iteration kontinuierlich gescannt werden.

Zeitersparnis

Durch die Automatisierung der SBOM-Implementierung können Sie sich bei der Erstellung Ihrer Software-Stücklisten auf fortschrittliche Tools verlassen, die mit Maschinengeschwindigkeit arbeiten. Dadurch sparen Sie in mehrfacher Hinsicht Zeit. Erstens ist die Erstellung einer SBOM auf diese Weise schneller als der manuelle Versuch, einzelne Komponenten zu identifizieren und sie in eine Tabelle einzufügen.

Durch die Automatisierung von SBOMs können Schwachstellen außerdem einfacher und schneller erkannt werden. Bei manuell zusammengestellten SBOMs ist die Identifizierung möglicher Schwachstellen ein äußerst langwieriger Prozess.

Auch Aktualisierungen sind mit SBOMs schneller. Automatisierte Systeme führen häufige Überprüfungen Ihrer SBOM durch, um Schwachstellen auf der Grundlage neu aktualisierter Abhängigkeiten zu identifizieren. Auf diese Weise können Sie Risiken schneller mindern und Ihre Zeit und Ressourcen in andere wichtige Aufgaben investieren, anstatt Zeit mit der Erstellung von SBOMs oder deren manuellen Abfrage zu verschwenden.

NIST- und Bundesanforderungen

Die Automatisierung von SBOMs ist nicht nur vorteilhaft, sondern hat auch regulatorische Bedeutung. Bundesrechtliche Anforderungen an SBOMs, wie beispielsweise der Cyber ​​Supply Chain Management and Transparency Act von 2014, schreiben vor, dass automatische Lösungen und Tools zur Generierung von SBOMs verwendet werden sollten.

In ähnlicher Weise veröffentlichte die National Telecommunication and Information Administration (NTIA) im Juli 2021 staatlich genehmigte Richtlinien, in denen die Mindestelemente aufgeführt sind, die in jedem SBOM enthalten sein müssen. Die Automatisierungsunterstützung wurde in dieser Dokumentation aufgeführt als eines der wesentlichen Elemente jeder SBOM.

Laut NTIA muss die Software-Stückliste für Menschen und Maschinen lesbar sein und automatisch generiert werden können. Die Implementierung einer automatisierten SBOM erleichtert die Nachverfolgung der im Dokument enthaltenen Daten. 

Tabellenkalkulationen sind ineffizient und fehleranfällig

Wie bereits erwähnt, weist jedes Softwarepaket Hunderte von Abhängigkeiten auf. Das bedeutet, dass eine typische Software-Stückliste Tausende von Datenpunkten abdecken muss. Tabellenkalkulationen sind einfach nicht in der Lage, diese Datenmenge zu verwalten. Die manuelle Eingabe all dieser Datenpunkte öffnet die Tür zu menschlichen Fehlern, die schwerwiegende Folgen haben können, wenn sie nicht rechtzeitig erkannt werden. Wenn Sie sich stattdessen für ein automatisiertes System entscheiden, ist es wahrscheinlicher, dass Sie eine genaue und umfassende SBOM erstellen.

Konsistenz

Ein großer Vorteil der Automatisierung des SBOM-Generierungsprozesses besteht darin, dass er dazu beiträgt, die Konsistenz in der gesamten CI/CD-Pipeline der verschiedenen Iterationen eines Softwareprodukts aufrechtzuerhalten. Dazu gehören alle Änderungen, die an einem Produkt während der Herstellung und auch nach der Veröffentlichung vorgenommen werden.

Eine SBOM ist nicht statisch. Während sich ein Produkt weiterentwickelt, werden Änderungen an der Software-Stückliste vorgenommen, um jede neu hinzugefügte Abhängigkeit zu erfassen. Diese Änderungen müssen allen Benutzern und anderen Interessengruppen sowohl intern als auch entlang der Lieferkette der Software mitgeteilt werden. Es ist wichtig, dass jeder Stakeholder Zugriff auf die neueste Version einer SBOM sowie alle früheren Versionen der Software hat.

Bei einer manuell erstellten SBOM ist die Aufrechterhaltung der Konsistenz und Versionskontrolle schwierig, was zu Konflikten und anderen Problemen führen kann. Eine automatisierte SBOM stellt sicher, dass vorgenommene Änderungen konsistent sind, und es ist einfacher zu erkennen, wann und wie diese Änderungen vorgenommen wurden. Dies ist mit einem manuellen System schwer zu erreichen.

Möglichkeiten zur Automatisierung von Software-Stücklisten

Regulatorische Standards wie die NTIA-Mindestanforderungen für SBOM legen bestimmte Formate für die Software-Stückliste fest. Zu diesen Standards gehören Software Package Data Exchange (SPDX) und CycloneDX. Software-Sicherheitsteams sollten wissen, dass die Natur dieser Standards bereits impliziert, dass SBOMs automatisiert werden sollen.

Daher sollte jedes Software-Sicherheitsteam die Generierung und Nutzung von SBOMs sicherstellen, indem es einen automatisierten Schritt hinzufügt, der an einem strategischen Punkt innerhalb seiner Entwicklungspipeline ausgeführt wird, um die SBOM zu generieren. Dabei kann es sich um ein Open-Source-Tool zur Untersuchung von Softwarekomponenten nach Abschluss des Builds oder um ein SCA-Tool handeln, das in die kontinuierliche Entwicklungspipeline der Software integriert ist. Die verschiedenen Methoden zur Automatisierung von Software-Stücklisten werden im Folgenden hervorgehoben.

Verwenden Sie ein Open-Source-Tool

Eine der günstigsten Möglichkeiten, eine Software-Stückliste zu erstellen, ist die Verwendung eines Open-Source-Tools. Sie sind praktisch kostenlos, bieten aber nur rudimentäre Funktionen. Es gibt mehrere Open-Source-Tools, die den SBOM-Implementierungsprozess automatisieren. Die von den meisten dieser Tools generierten Berichte werden jedoch nur in zwei Formaten generiert; CycloneDX und SPDX.

Ein gutes Beispiel für ein Open-Source-SBOM-Automatisierungstool ist Der SBOM-Generator von Microsoft. Dieser universelle Build-Time-Generator wurde entwickelt, um Unternehmen bei der Generierung von SBOMs für ihre Softwarepakete zu unterstützen. Das Tool bietet plattformübergreifende Unterstützung und generiert SBOMs im Standardformat Software Package Data Exchange (SPDX).

Der SBOM-Generator von Microsoft kann in Softwarepakete integriert werden, die mit NPM-, PyPI-, Maven-, Rust Crates-, Ruby Gems-, Linux- und NuGet-Frameworks erstellt wurden, um die Liste der Abhängigkeiten und Komponenten zu generieren. Es kann auch in öffentliche GitHub-Repositorys integriert werden.

Das Tool gibt allgemeine Informationen zur SBOM-Dokumentation gemäß den SBOM-Mindestanforderungen aus. Außerdem werden alle Dateien und Pakete sowie die Beziehungen zwischen ihnen aufgelistet.

Verwenden Sie ein Plugin-Tool

Ein weiterer Ansatz zur automatischen Generierung von SBOMs besteht darin, dies innerhalb Ihrer Continuous Integration- und Continuous Deployment-Pipeline (DevOps-Pipeline) zu tun. Sie können dies mit einem Maven-Plugin tun, das in die Build-Phase Ihres Workflows integriert wird. Dieser Ansatz ist eine skalierbare und praktische Möglichkeit, den Prozess der Software-Stücklistenerstellung direkt in der Pipeline zu automatisieren.

Sie werden feststellen, dass dies viel einfacher ist, da Sie dies in der gebauten Umgebung Ihres Projekts tun. Sie müssen nur ein paar Argumente übergeben, um die SBOM automatisch zu generieren. Für das Maven-Plugin wird die SBOM im Cyclone DX-Format generiert.

Das Maven-Plugin kann eine umfassende SBOM generieren, die alle Abhängigkeiten innerhalb Ihres Projekts detailliert beschreibt. Dazu sollten Sie zunächst die Datei pom.xml konfigurieren, bevor Sie den Befehl „mvn verify“ ausführen, um die SBOM-Dateien zu generieren. Vor der SBOM-Datei wird zunächst eine bom.json-Datei generiert.

Das Maven-Plugin verfügt über ein integriertes SCA-Tool, das die generierten SBOM-Dateien auf Abhängigkeiten überprüft. Sobald die Datei geprüft wurde, können Sie das SCA-Tool ein zweites Mal ausführen, um die Software-Stückliste erneut zu generieren.

Ein Beispiel für ein solches Plugin-Tool ist das Schreibplattform, die es Softwareherstellern ermöglicht, SBOMs automatisch zu generieren. Es geht über die SBOM-Generierung hinaus und hilft Benutzern, ihre SBOMs zu verwalten und auch zu teilen, die Integrität zu validieren und Schwachstellen ihrer Container, Abhängigkeiten und Pipelines zu verfolgen. Hier ist ein einfacher Überblick über die Funktionsweise von Scribe zur Automatisierung der SBOM-Erstellung:

  • Schritt 1: Registrieren Sie sich und melden Sie sich (kostenlos) bei Scribe Hub an. Benutzer registrieren und richten ihre Projekte über diese Weboberfläche ein. Ein separater Beweissammler, der auf MACs und Linux-Geräten läuft, generiert die SBOM selbst.
  • Schritt 2: Integrieren Sie Scribe in Ihre Continuous Integration Pipeline. Dies wird durch das Hinzufügen von Codeausschnitten aus dem Scribe Hub zu Ihrer Continuous-Integration-Pipeline und/oder Ihrem endgültigen Build-Image erreicht.
  • Schritt 3: Generieren und exportieren Sie die Software-Stückliste. Eine Software-Stückliste wird mit dem Scribe gensbom CLI-Tool erstellt. Die generierte SBOM kann im CycloneDX JSON-Format exportiert werden.

Verwenden Sie ein Tool zur Zusammensetzungsanalyse (SCA).

Ein dritter Ansatz zur automatischen Generierung von SBOMs für Ihr Softwareprodukt ist die Verwendung eines Tools zur Analyse der Softwarezusammensetzung eines Drittanbieters. Ein SCA-Tool analysiert Ihr Produkt, um Komponenten und Lizenzen von Drittanbietern in der Software zu identifizieren. Das Tool bewertet die Legitimität des Codes sowie die Einhaltung der Lizenzanforderungen.

SCAs durchsuchen den Quellcode, Binärdateien, Container-Images und Manifestdateien einer Software, um deren Zusammensetzung zu bestimmen und alle in der Software enthaltenen Open-Source-Komponenten aufzulisten. Als Teil des SBOM führt eine SCA diese Komponenten auch in verschiedenen Datenbanken aus, um deren Sicherheitsinformationen, Lizenzen und bekannte Schwachstellen zu extrahieren.

Ein Software-Analysetool für die Zusammensetzung automatisiert und beschleunigt den Prozess der Erstellung von SBOMs. Das Tool ist darauf ausgelegt, innerhalb kurzer Zeit Tausende von Datenpunkten zu scannen, um eine Software-Stückliste für Ihr Produkt zu erstellen. SCA-Tools helfen Ihnen, Ihre DevOps-Pipeline zu sichern, indem sie einen vollständigen Überblick über die Komponenten eines Softwarepakets und die Herkunft dieser Komponenten bieten. 

Fazit

Obwohl einige Unternehmen SBOMs nur erstellen, weil dies durch behördliche Anforderungen vorgeschrieben ist, hat sich diese Praxis als notwendig erwiesen, wenn es um die Minderung von Bedrohungen in der Software-Lieferkette geht. Die Automatisierung des Prozesses ist umso wichtiger, da sie dazu beiträgt, die mühsame und zeitaufwändige Arbeit der manuellen Zusammenstellung von SBOMs zu reduzieren. Die SBOM-Automatisierung kann, wie in den einzelnen in diesem Artikel behandelten Techniken hervorgehoben, den SBOM-Erstellungsprozess beschleunigen und ihn außerdem genauer und zuverlässiger machen. Ein Plugin-Tool wie Scribe ermöglicht die Automatisierung der SBOM-Erstellung direkt in der Entwicklungspipeline Ihrer Software. Schauen Sie sich unseren Blog und andere Ressourcen an, um zu erfahren, wie Scribe die SBOM-Generierung automatisiert und wie Sie es nutzen können.