AllInfo

So generieren Sie eine SBOM mit dem Open-Source-Tool von Microsoft

Shutterstock.com/Song_about_summer

Eine SBOM (Software Bill of Materials) hilft Ihnen, Ihre Software-Lieferkette zu verstehen, indem sie die Pakete und Anbieter auflistet, die Ihre Code stützt sich auf. SBOMs gewinnen schnell an Bedeutung, um die Sicherheit nach bekannten realen Lieferkettenangriffen zu verbessern.

Ein wichtiger Befürworter von SBOMs ist Microsoft, das seinen Ansatz für ihre Generation bereits im Oktober 2021 veröffentlicht hat. Anfang dieses Jahres hat das Unternehmen sein Tool zur Erstellung von SBOMs unter Windows, macOS und Linux als Open Source veröffentlicht.

In diesem Artikel erfahren Sie, wie Sie mit der Verwendung des Projekts beginnen, um die Abhängigkeiten Ihres Codes zu indizieren. Es erzeugt SPDX-kompatible Dokumente, die die Dateien, Pakete und Beziehungen innerhalb Ihres Projekts auflisten. SPDX (Software Package Data Exchange) ist der ISO-akzeptierte Standard für SBOMs, sodass Sie generierte Berichte direkt an andere Ökosystem-Tools übergeben können.

Microsoft kündigte das Projekt ursprünglich unter dem Namen Salus an. Seitdem hat man sich von diesem Begriff zurückgezogen, weil er im Konflikt mit dem bestehenden Salus-Code-Sicherheitsprojekt steht, das seinen Ursprung bei Coinbase hat. Der SBOM-Generator wird jetzt einfach als sbom-tool bezeichnet.

Erste Schritte

Sie können das SBOM-Tool aus dem GitHub-Repository von Microsoft herunterladen. Vorkompilierte Binärdateien sind auf der Releases-Seite verfügbar. Wählen Sie den richtigen Download für Ihr System aus, machen Sie dann die Binärdatei ausführbar und verschieben Sie sie an einen Ort in Ihrem Pfad.

Hier ist ein Beispiel für Linux:

$ wget https://github.com/microsoft/sbom-tool/releases/download/v<VERSION>/sbom-tool-linux-x64 $ chmod +x sbom-tool-linux-x64 $ mv sbom-tool-linux-x64 /usr/local /bin/sbom-tool

Sie sollten in der Lage sein, sbom-tool auszuführen, um die Hilfeinformationen in Ihrem Terminalfenster anzuzeigen:

$ sbom-tool Es wurde keine Aktion angegeben. Das Sbom-Tool generiert eine SBOM für jedes Build-Artefakt. Verwendung – Microsoft.Sbom.Tool <action> -options

Generieren einer SBOM

Neue SBOMs werden erstellt, indem der Unterbefehl “generate” des Tools ausgeführt wird. Einige Argumente müssen angegeben werden:

SBOM-Tool muss auch Ihre Projekte kennen Name und Version. Dies kann häufig aus Dateien abgeleitet werden, die sich bereits in Ihrem Repository befinden, z. B. den Namens- und Versionsfeldern von package.json, aber Sie müssen die Informationen möglicherweise manuell bereitstellen oder in einigen Fällen die Standardwerte überschreiben. Fügen Sie dazu die Flags pn und pv hinzu:

Hier ist ein Beispiel für das Generieren eines SBOM für die Dateien in Ihrem Arbeitsverzeichnis. Die SBOM wird im Unterverzeichnis sbom-output abgelegt. Diese muss vorhanden sein, bevor Sie das Tool ausführen.

$ mkdir sbom-output $ sbom-tool generate -b sbom-output -bc . -pn example -pv 1.0 -nsb https://example.com/sbom

Eine Übersicht der Scan-Ergebnisse wird in Ihrem Terminal angezeigt:

[INFO] Aufgezählt 3728 Dateien und 607 Verzeichnisse in 00:00 :00.5938034 [INFO] |Komponentendetektor-ID |Erkennungszeit |# Komponenten gefunden |# explizit referenziert | … [INFO] |Npm |0,63 Sekunden |241 |0 | … [INFO] |Gesamt |0,64 Sekunden |241 |0 | [INFO] Erkennungszeit: 0,6374678 Sekunden.

Dieses Projekt verwendet npm, um seine Abhängigkeiten zu verwalten. Das Tool hat 241 Pakete in der Datei package.json des Arbeitsverzeichnisses erkannt.

SBOM Tool unterstützt derzeit 19 verschiedene Programmiersprachen und Paketformate. Die Liste umfasst npm, NuGet, PyPi, Maven, Rust Crates und Ruby Gems sowie Linux-Pakete, die in Docker-Images vorhanden sind. Verweise auf entfernte GitHub-Repositories werden ebenfalls unterstützt.

SBOM-Inhalte

Die generierte SBOM wird in _manifest/spdx_2.2/manifest.spdx.json innerhalb des von Ihnen angegebenen Build-Ausgabeverzeichnisses geschrieben. Die SBOM ist eine ziemlich ausführliche JSON-Datei, die von anderer Software verwendet werden soll.

{ "files": [], "packages": [ { "name": "color- convert", "SPDXID": "SPDXRef-Package-A72B0922E46D9828746F346D7FD11B7F81EDEB15B92BEEDAE087F5F7407FECDC", … }

Der Bericht enthält vier Haupttypen von Informationen:

Jetzt haben Sie eine SBOM Sie können es mit anderen Tools verwenden, um Schwachstellenscans durchzuführen und die Lizenzeinhaltung zu verwalten. Sie können erwägen, die SBOM mit Ihren Softwareversionen zu verteilen, damit Verbraucher den Inhalt jeder neuen Version einsehen können. SBOMs werden am besten als Teil Ihrer Build-Pipeline generiert, damit sie auf dem neuesten Stand bleiben.

Der Zugriff auf eine SBOM ist von unschätzbarem Wert, wenn größere neue Lieferkettenprobleme auftreten. Organisationen, die SBOMs verwenden, waren beispielsweise besser in der Lage, auf Log4j zu reagieren. Sie könnten ihre Berichte überprüfen, um Projekte je nach anfälliger Bibliothek schnell zu finden, anstatt Paketlisten von Hand zu prüfen.

Scannen von Docker-Images

SBOM Tool ist in der Lage, vorhandene Docker-Images als Teil einer Berichterstellung zu scannen. Um diese Funktion zu verwenden, müssen Sie das Flag -di hinzufügen und das Bild-Tag oder Digest angeben, das Sie scannen möchten. Der Rest der Argumente bleibt gleich.

$ sbom-tool generate -di ubuntu:latest -b sbom-output -bc . -pn demo -pv 1.0 -nsb https://demo.com/demo

Das Docker-Image wird analysiert, um die enthaltenen Pakete zu identifizieren. Sie werden dem SBOM-Bericht zusammen mit den in Ihrem Quellordner gefundenen Abhängigkeiten hinzugefügt. Sie können mehrere Docker-Images in einem einzigen Vorgang scannen, indem Sie ihre Tags oder Digest-Hashes durch Kommas trennen.

Zusammenfassung

SBOM Tool ist ein junges Open-Source-Dienstprogramm zur SBOM-Generierung, das von Microsoft entwickelt wurde. Es unterstützt mehrere führende Paketformate und erzeugt SPDX-kompatible Ausgabe. Das bedeutet, dass Sie generierte SBOMs direkt in andere Tools wie Grype einspeisen können, um Sicherheitslücken und veraltete Abhängigkeiten automatisch zu finden.

SBOMs sind eine effektive Möglichkeit, das Bewusstsein für Softwarelieferketten zu schärfen und lauernde Probleme aufzudecken. Das Erstellen und Verteilen einer SBOM hilft Benutzern zu verstehen, was stillschweigend in ihr Projekt aufgenommen wird. Das SBOM-Tool ist eine Möglichkeit, branchenübliche Berichte mit einem einzigen Befehl zu erstellen, wodurch es einfacher wird, mit jeder Ihrer Versionen eine SBOM anzubieten.

WEITER LESEN

Exit mobile version