Software-Bestandsverzeichnis oder SBOM sind normierte Beschreibungen Ihrer Software, ähnlich wie ein Rezept die normierte Beschreibung einer Mahlzeit ist. SBOMs enthalten die Liste aller direkten und transitiven Komponenten der Software mit ihrer jeweiligen Versionsnummer und Lizenzmodell. Sie sind die Eingabe unseres Dependency Track Vulnerability Scanner, um jede Software Ihrer IT-Infrastruktur zu analysieren. Da SBOM eine präzise und vollständige Beschreibung Ihrer Software enthält, erfordert unser Scanner keine Verbindung zu Ihrem IT-System.

Wie man SBOMs abruft oder generiert
von praktisch jeder Software?

Um loszulegen, müssen Sie SBOMs mithilfe eines der verschiedenen Tools generieren, abhängig vom zu verfolgenden System oder der zu überwachenden Anwendung. Unsere Dependency Track SaaS-Lösung bietet Ihnen die einzige aggregierte Ansicht, um sie an einem zentralen Ort zu überwachen.

Den zusätzlichen Schritt der Automatisierung der SBOM-Generierung zu gehen, stellt sicher, dass Ihr Software-Inventar immer auf dem neuesten Stand bleibt und Ihre Reise zur Software-Transparenz erleichtert. Weitere Informationen zur Automatisierung der SBOM-Übertragung finden Sie auf dieser Dokumentationsseite.

Da das Abrufen von SBOMs ein sich ständig weiterentwickelndes Thema ist, bei dem im Laufe der Zeit Tools auftauchen oder verschwinden, werden wir unser Bestes tun, um diese Seite auf dem neuesten Stand zu halten und den aktuellen Stand der Open-Source-Community widerzuspiegeln.

Kontaktieren Sie uns, um zusätzliche großartige Tools zu teilen, die Sie gefunden haben, um den SBOM-Generierungsprozess zu erleichtern. Wir werden sie prüfen und hier aufnehmen, um anderen zu helfen.

Jetzt lassen Sie uns praktisch werden…

SBOM bei der Build-Phase extrahieren

Anwendungen, die durch ihren Quellcode erstellt werden, sollten idealerweise als zusätzlichen Schritt im CI/CD-Prozess ihr SBOM generieren.

Viele verschiedene Tools und Plugins können je nach zugrunde liegender Technologie Ihrer Anwendungen verwendet werden:

Alternativ können Sie auch cdxgen verwenden, welches ein vielseitiger SBOM-Generator ist und mit praktisch jeder Programmiersprache, Paketverwaltung und Betriebssystem kompatibel ist.

SBOM in der Bereitstellungsphase extrahieren

Idealerweise sollten Sie das SBOM für jede Drittanbieterlösung direkt von ihrem Anbieter erhalten. Dennoch sind viele Anbieter darauf noch nicht vorbereitet. Daher müssen Sie möglicherweise das SBOM von Drittanwendungen selbst generieren, während die Branche in diesem Bereich reift.

Glücklicherweise kann dies vollständig automatisiert und in Ihren Bereitstellungsprozess integriert werden. In diesem Abschnitt zeigen wir Ihnen die Tools, die Sie für diese Extraktion verwenden können.

Anwendungen, die über Paketverwaltungen installiert werden

SBOMs für über Paketverwaltungen installierte Anwendungen können recht einfach mit Tools wie syft oder spdx gescannt werden. In den folgenden Beispielen konzentrieren wir uns auf syft, da es keine Konvertierung erfordert und etwas ausgereifter ist als spdx.

Linux / MacOS

Die Analyse kann auf jeder Distribution durchgeführt werden:

# Syft installieren
curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sudo sh -s -- -b /usr/local/bin

# Den gesamten Host scannen
sudo /usr/local/bin/syft scan dir:/--output cyclonedx-json > "$HOSTNAME.sbom.json"

Oder wenn Sie Docker auf diesem Rechner haben und syft ohne vorherige Installation bevorzugen, um den Host zu scannen, führen Sie einfach aus:

docker run --rm -a stdout -v /:/host:ro anchore/syft scan dir:/host --output cyclonedx-json > "$HOSTNAME.sbom.json"

Windows

Ebenso für Windows kann die neueste Syft-Binärdatei von der Release-Seite heruntergeladen werden. Manchmal wird die Windows-Version nach den Linux- und Darwin-Versionen veröffentlicht. Verwenden Sie entweder eine vorherige Binärversion oder führen Sie die Linux-Version in WSL oder die Docker-Version aus, wenn Sie die neueste Version ohne Warten haben möchten.

Um die Windows-Version auszuführen, passen Sie den folgenden Befehl nach Bedarf in einer administrativen Eingabeaufforderung an:

syft scan dir:"c:" --output cyclonedx-json > "%ComputerName%.sbom.json"

Virtual environments

Docker containers

Wenn Sie das Docker SBOM CLI-Plugin haben (standardmäßig auf Windows installiert), können Sie den Befehl verwenden:

# Replace placeholder {{container:tag}}
docker sbom {{container:tag}} --format cyclonedx-json --output {{container:tag}}.sbom.json

Auf Linux können Sie sich den Aufwand der Verwaltung von Docker-Plugins ersparen und auf mehr Funktionen zugreifen, indem Sie unser einfaches syft.sh-Skript verwenden, das unten gezeigt wird.

#!/bin/bash

docker run --rm 
  -v /:/host:ro 
  -v ${PWD}:/out 
  -v /var/lib/docker/volumes:/var/lib/docker/volumes:ro 
  -v /var/run/docker.sock:/var/run/docker.sock:ro 
  -a stdin -a stdout -a stderr 
  -i anchore/syft "$@"

Es kann auf viele verschiedene Arten verwendet werden (prüfen Sie alle Möglichkeiten mit syft.sh —help). Zum Beispiel, um vorhandene Images zu scannen, würden Sie verwenden:

# Ersetzen Sie den Platzhalter {{container:tag}}
syft.sh scan registry:{{container:tag}} --format cyclonedx-json > {{container:tag}}.sbom.json

Betriebssystem / Virtuelle Maschine / Andere Anwendungen

Manuell installierte Anwendungen, einschließlich geschlossener Quellcode-Anwendungen, sind derzeit schwieriger zu scannen. Sie können nach Anwendungen suchen, die über Paketmanager installiert wurden, indem Sie syft verwenden, wie im oben gezeigten Abschnitt, oder möglicherweise zusätzliche Szenarien mit cdxgen abdecken.

# Nur OS-Pakete mit syft scannen (z. B. Debian)
syft scan dir:/var/lib/dpkg --output cyclonedx-json > "$HOSTNAME.sbom.json"

# Alles mit syft scannen (kann langsam sein)
syft scan dir:/ --output cyclonedx-json > "$HOSTNAME.sbom.json"

Binärdateien / Mobile App

Die Analyse von Binärdateien, wie beispielsweise von Paketen für mobile Anwendungen (APK für Android und IPA für iOS), birgt erhebliche Herausforderungen. Dennoch bleibt diese Praxis wichtig, insbesondere in Fällen, in denen der Anbieter noch keine Liste der Softwarekomponenten (SBOM - Software Bill of Materials) bereitgestellt hat. cve-bin-tool kann in solchen Situationen nützlich sein, um bestimmte Informationen zu extrahieren:

cve-bin-tool --sbom-type cyclonedx --sbom-output application.sbom.json Application.apk

Fazit

Die Community stellt viele verschiedene Tools zur Extraktion und Generierung von SBOM bereit. Hoffentlich konnten wir Ihnen mit dieser Seite helfen, die für Ihren Fall am besten geeigneten auszuwählen.

SBOMs sind bereits Standard bei der Bereitstellung von Software an die US-Regierung. Wir vertrauen darauf, dass sich diese Praxis weltweit entwickeln wird und dass SBOM zu einem standardmäßigen Lieferartefakt wird, das der Branche hilft, die Transparenz der Lieferkette zu verbessern.

Das Generieren von SBOM ist nur der erste Schritt Ihrer Reise. Die Cloud-Lösung Dependency Track SaaS basierend auf der gleichnamigen Open-Source-Lösung ist die vielseitigste und unternehmensbereite Lösung, um sie zentral zu organisieren und zu überwachen.

Als nächstes empfehlen wir Ihnen unsere Automatisierung der SBOM-Übertragung Seite.

Noch unsicher, wie man SBOM extrahiert?
Nehmen Sie noch heute Kontakt auf!

Kontaktieren Sie uns

Urheberrecht © 2024 YourSky.blue GmbH. Alle Rechte vorbehalten.

Cookie-freie Website, betrieben mit erneuerbarer Energie