SBOMs mit der Snyk CLI erstellen
5. Februar 2025
0 Min. LesezeitDie Software-Stückliste (Software Bill of Materials, SBOM) wird immer wichtiger für Open-Source-Sicherheit und Compliance. In diesem Beitrag erfahren Sie, was SBOMs sind, warum sie gebraucht werden und welche Rolle sie für die Open-Source-Sicherheit spielen.
Was sind SBOMs?
Eine Software-Stückliste (Software Bill of Materials, SBOM) ist ein vollständiges Verzeichnis aller Komponenten, die in einem Softwareprodukt verwendet werden. Sie enthält alle wichtigen Details zu den einzelnen Komponenten, etwa Namen, Versionen und Lizenzinformationen. SBOMs lassen sich mit Zutatenlisten für Software vergleichen: Sie schaffen vollständige Transparenz über die Bestandteile eines Softwareprodukts.
Stellen Sie sich ein einfaches Python-Projekt mit verschiedenen Abhängigkeiten vor. Ein vereinfachtes Beispiel für eine SBOM dieses Projekts könnte so aussehen:
Haftungsausschluss:
Der obige Code ist ein vereinfachter Ausschnitt einer möglichen SBOM. Dieses Beispiel dient nur der Veranschaulichung und funktioniert beim Scannen nicht, da es unvollständig ist.
Warum brauchen wir SBOMs?
SBOMs sind entscheidend, um die Zusammensetzung unserer Software zu verstehen. In der Open-Source-Entwicklung spielen sie jedoch eine noch wichtigere Rolle. Open-Source-Komponenten haben oft eigene Abhängigkeiten, wodurch ein komplexes Netz miteinander verknüpfter Komponenten entsteht. SBOMs helfen, dieses Netz zu entwirren. So lässt sich das gesamte Ausmaß möglicher Sicherheitsrisiken und Compliance-Probleme durch Abhängigkeiten von Drittanbietern in unseren Anwendungen nachvollziehen.
Es ist entscheidend, zusammen mit dem erstellten Artefakt eine SBOM bereitzustellen, denn so können alle, die die Software verwenden, den Sicherheitsstatus des Projekts beurteilen. Wird eine schwerwiegende Sicherheitslücke in einem bestimmten Open-Source-Paket bekannt gegeben, wie bei Log4Shell und Spring4Shell, können alle Nutzer der betroffenen Komponenten feststellen, ob sie von dieser Sicherheitslücke betroffen sind.
SBOMs sind eine wertvolle Ergänzung für jede Software und sollten mit jedem Release bereitgestellt werden. Sie schaffen Transparenz, verbessern Sicherheit und Compliance und tragen zu hochwertigerer Software bei.
SBOMs mit der Snyk CLI erstellen
Die Snyk-Befehlszeilenschnittstelle (CLI) ist ein Open-Source-Sicherheitstool, mit dem Entwickler und DevOps-Fachkräfte bekannte Sicherheitslücken in Open-Source-Abhängigkeiten finden, beheben und überwachen können. Die Snyk CLI unterstützt zahlreiche Programmiersprachen und Paketmanager, darunter JavaScript (npm, yarn), Python (pip), Java (Maven), .NET (NuGet), Ruby (RubyGems), PHP (Composer) und weitere. Mit der Snyk CLI können Sie Softwareprojekte lokal oder in einer Pipeline auf SAST, SCA, Container und IaC untersuchen.
Und jetzt können Sie damit auch SBOMs für Ihre Projekte erstellen.
Die Snyk CLI installieren
Um mit der Snyk CLI zu beginnen, müssen Sie sie in Ihrer Entwicklungsumgebung installieren. Im Folgenden finden Sie eine einfache Anleitung zur Installation der Snyk CLI mit npm. Weitere Informationen und alternative Installationsmöglichkeiten finden Sie in unserer Benutzerdokumentation.
Nach der Installation der Snyk CLI müssen Sie Ihr Konto mit dem Befehl snyk auth authentifizieren. Daraufhin wird ein Webbrowser geöffnet, in dem Sie sich bei Ihrem Snyk-Konto anmelden oder ein Konto erstellen können.
Alternativ können Sie Ihr Snyk-Token als Umgebungsvariable festlegen. Das ist die empfohlene Methode, um die CLI in einer CI/CD-Pipeline zu verwenden. Weitere Informationen finden Sie in unserem praktischen CLI-Spickzettel oder in der offiziellen Dokumentation.
SBOMs mit der Snyk CLI generieren
Sobald die CLI einsatzbereit und mit einem Snyk-Unternehmenskonto verbunden ist, können Sie mit dem folgenden Befehl SBOMs für Ihre Softwareprojekte erstellen:
Mit der erforderlichen Option --format legen Sie das Ausgabeformat der SBOM fest. Zur Auswahl stehen CycloneDX, XML oder SPDX im JSON-Format.
Mit dem Flag --json-file-output=<OUTPUT_FILE_PATH> können Sie die SBOM als JSON-Datei speichern.
Wenn Sie diesen Befehl im Stammverzeichnis Ihres Projekts ausführen, erhalten Sie eine SBOM-Datei, die Sie zusammen mit Ihrem Artefakt bereitstellen können.
Mehrere Projekte
Die Snyk CLI verwendet die Paketmanifestdatei Ihres Build-Systems, um den Abhängigkeitsbaum und damit die Eingabe für die SBOM zu ermitteln. Standardmäßig wird die CLI beendet, sobald sie eine Manifestdatei gefunden hat. In Ihrem Projekt können jedoch mehrere Manifestdateien und Build-Systeme vorhanden sein. Beispielsweise könnte Ihr Projekt ein Java-Backend mit Maven und ein Node.js-Frontend mit npm umfassen. Wenn Sie dem SBOM-Befehl das Flag --all-projects hinzufügen, durchsucht die Snyk CLI Ihr Projekt nach Manifestdateien und nimmt diese in das Ergebnis Ihrer SBOM-Ausgabe auf.
Standardmäßig werden Manifestdateien bis zu einer Tiefe von vier Ebenen gesucht. Mit dem Flag --detection-depth können Sie diesen Wert anpassen. Außerdem lassen sich bestimmte Dateien mit dem Flag --exclude ausschließen.
Bitte beachten Sie, dass es zahlreiche Befehlszeilen-Flags für spezielle Ökosysteme gibt, etwa für Maven-Dateien mit mehreren Modulen, Konfigurationsattribute in Gradle oder Yarn-Workspaces. Eine vollständige Übersicht über alle verfügbaren Flags für Snyk SBOM finden Sie auf unserer ausführlichen Dokumentationsseite.
SBOM-Generierung mit der Snyk CLI automatisieren
Die Generierung einer Software-Stückliste mit der Snyk CLI zu automatisieren, ist ein wichtiger Schritt, um Sicherheit und Compliance in der CI/CD-Pipeline zu verbessern. Wenn Sie die Snyk CLI in Ihren Build-Prozess integrieren, können Sie bei jedem Build Ihres Codes automatisch eine umfassende SBOM erstellen. Diese listet sämtliche Abhängigkeiten auf, einschließlich transitiver Abhängigkeiten.
Während der Code die CI/CD-Pipeline durchläuft, kann Snyk nicht nur Sicherheitslücken finden, sondern auch sicherstellen, dass bei jedem Build-Release eine aktuelle SBOM erstellt und bereitgestellt wird. Diese Automatisierung vereinfacht nicht nur die Pflege einer sicheren und aktuellen SBOM, sondern verankert auch Sicherheitspraktiken in Ihrem Softwareentwicklungslebenszyklus. So können Sie regulatorische Anforderungen und Branchenstandards einfacher erfüllen und zugleich das Vertrauen Ihrer Kunden stärken.
SBOMs analysieren
SBOMs zu erstellen, ist eine effektive und unkomplizierte Möglichkeit, die Snyk CLI zu nutzen. Doch was, wenn Sie eine SBOM einlesen und prüfen möchten, ob ein Softwarepaket bekannte Sicherheitslücken enthält? Dafür stehen derzeit einige Möglichkeiten zur Verfügung:
Snyk CLI SBOM Test
Die Snyk CLI kann nicht nur eine SBOM für Ihr Projekt erstellen, sondern sie auch scannen. Wenn die Snyk CLI mit einem Unternehmenskonto verbunden ist, können Sie sie wie unten gezeigt auf eine SBOM-Datei verweisen lassen:
Zum Zeitpunkt der Erstellung dieses Beitrags ist dies noch eine experimentelle Funktion, daher das Flag `--experimental`. Beachten Sie außerdem, dass derzeit nur JSON-Dateien in UTF-8 unterstützt werden für
CycloneDX: Version 1.4, 1.5 und 1.6
SPDX: JSON-Version 2.3
Die neuesten Informationen zu dieser Funktion und weiteren verfügbaren Optionen finden Sie in der Dokumentation zum Snyk CLI SBOM Test.

Bomber
Bomber ist eine Open-Source-Anwendung, die SBOMs auf Sicherheitslücken untersucht. Snyk ist einer der integrierten Anbieter in bomber zum Scannen von SBOMs.
Um bomber zu installieren, laden Sie die neueste Version aus dem offiziellen GitHub-Repository herunter, verwenden Sie Homebrew für macOS oder das Tool dpkg für Linux.
Homebrew (macOS):
Dpkg (Linux):
Um bomber über die Befehlszeile mit Snyk auszuführen, benötigen Sie ein Snyk-API-Token. Sie können dieses über die Snyk-Weboberfläche abrufen. Wenn die CLI auf Ihrem lokalen Computer installiert ist, können Sie alternativ snyk config get api ausführen.
Sobald Sie das Snyk-API-Token haben, können Sie bomber folgendermaßen ausführen:
Die Ausgabe zeigt Ihnen alle bekannten Sicherheitslücken auf Ihrem Bildschirm an.

Aktuelle SBOMs mit Snyk bereitstellen
Mit der Snyk CLI können Sie für jeden Build Ihrer Software aktuelle SBOMs erstellen. Es empfiehlt sich (und ist in manchen Fällen sogar vorgeschrieben), eine SBOM zusammen mit einem erstellten Artefakt bereitzustellen, um Compliance-Anforderungen zu erfüllen.
Die SBOM-Erstellung in Ihrer Pipeline mit der Snyk CLI zu automatisieren, ist eine unkomplizierte Möglichkeit, dies umzusetzen. Abschließend möchte ich Ihnen folgende nächste Schritte für die Arbeit mit SBOMs in Ihren Projekten empfehlen:
Umfassender Leitfaden zur Generierung von SBOMs für JavaScript- und Node.js-Projekte
Open-Source-Tool Parlay zum Anreichern Ihrer SBOMs verwenden
Legen Sie mit der Snyk CLI los
Installieren Sie die Snyk CLI, um Schwachstellen in Ihren lokalen Projekten und Pipelines zu finden und zu beheben.
npm install snyk -g