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

0
133
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:

  • -b (BuildDropPath) – Der Ordner zum Speichern der generierten SPDX-SBOM-Manifeste.
  • -bc (BuildComponentPath) – Der Ordner, der nach Abhängigkeiten in Ihrem Projekt durchsucht wird.
  • -nsb (NamespaceUriBase) – Der Basispfad, der als Namespace des SBOM-Manifests verwendet wird. Dies sollte eine URL sein, die Ihrer Organisation gehört, z. B. https://example.com/sbom.

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:

  • -pn (Paketname) – Der Name Ihres Projekts oder Pakets.
  • -pv (PackageVersion) – Die Projektversion, die Sie scannen. Diese sollte mit der Release-Version übereinstimmen, die Ihrem SBOM beiliegt, damit Benutzer Abhängigkeitslisten mit bestimmten Builds korrelieren können.

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:

  • Die Dateien Abschnitt– Hier werden alle Dateien aufgelistet, die Quellcode enthalten, den Sie in Ihrem Projekt geschrieben haben. SBOM Tool füllt diesen Abschnitt nur aus, wenn bestimmte Projekttypen gescannt werden, z. B. C#-Lösungen.
  • Der Paketabschnitt – Ein vollständiger Katalog aller Abhängigkeiten von Drittanbietern, die in Ihrem Projekt vorhanden sind, mit Verweisen auf deren Quellpaket-Manager, die verwendete Version und den anwendbaren Lizenztyp.
  • Der Abschnitt “Beziehungen”
  • stark>– Darin sind alle Beziehungen zwischen den in der SBOM aufgeführten Komponenten aufgeführt. Die häufigste Beziehung, die Sie sehen werden, ist DEPENDS_ON, die ein Element im Abschnitt “Pakete” als eine der Abhängigkeiten Ihres Projekts deklariert. Es gibt auch mehrere andere Arten von Beziehungen, z. B. CREATED_BY, DEPENDENCY_OF und PATCH_FOR.

  • Metadatendetails melden– Felder wie name, documentNamespace, spdxVersion und creationInfo identifizieren die SBOM, das zu ihrer Erstellung verwendete Tool und die anwendbare SPDX-Manifestrevision.

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

  • › iOS 16.0.2 ist da, hier sind die Fehler, die es behebt
  • › Die besten iPhone 14 Pro Max-Hüllen des Jahres 2022
  • › So beheben Sie den Linux-Boots-In-BIOS-Fehler
  • › So passen Sie die Uhr auf dem Android-Sperrbildschirm an
  • › So entsperren Sie Netflix
  • › Das Smart Display, das wir lieben, ist bis Sonntag um 45 % reduziert