Unternehmen 5 Min. Lesezeit

SBOM Lens: Ein offener Viewer für echte SPDX-Kaskaden

Warum wir SBOM Lens gebaut haben: ein client-only Open-Source-Viewer für kaskadierende SPDX-SBOMs, der die Lieferkette als einen Baum navigierbar macht.

SBOM Lens: Ein offener Viewer für echte SPDX-Kaskaden

SBOM Lens: Ein offener Viewer für echte SPDX-Kaskaden

Ein SBOM-Viewer klingt nach einem gelösten Problem. Ist es aber nicht, sobald die SPDX-Dokumente so aussehen wie in echten Delivery-Pipelines: ein Release-Dokument, das auf Komponenten-SBOMs verweist, die wiederum auf Container-Image-SBOMs zeigen, insgesamt schnell vier Ebenen und tausende Pakete. Genau an dieser Stelle haben wir in Kundenprojekten regelmäßig kapituliert und mit jq und Texteditor gearbeitet. Deshalb gibt es jetzt SBOM Lens, einen freien Viewer für SPDX-SBOMs, den wir als Open Source unter Apache-2.0 veröffentlicht haben. Dieser Artikel eröffnet unsere Serie zur sichtbaren Software-Lieferkette und erklärt, warum wir das Tool gebaut haben und welche Entscheidungen dahinterstecken.

Das Problem: SBOMs werden erzeugt, aber nicht gelesen

Die Industrie hat in den letzten Jahren gelernt, SBOMs zu produzieren. CI-Pipelines erzeugen sie mit Syft oder Trivy, Compliance-Abteilungen fordern sie, Regulierung wie der Cyber Resilience Act macht sie zur Pflicht. Was fehlt, ist die andere Hälfte: Werkzeuge, mit denen Menschen die Dokumente tatsächlich anschauen, verstehen und Fragen beantworten können. Welche Version von OpenSSL steckt im Release? Liefern zwei Komponenten dieselbe Bibliothek in unterschiedlichen Versionen aus? Was hat sich seit dem letzten Release geändert?

Das Erzeugen von SBOMs mit Werkzeugen wie Syft oder Trivy ist gut abgedeckt. Beim Lesen wird es dünn: Die meisten Viewer verarbeiten genau ein Dokument. SPDX kann aber mehr, nämlich Dokumente über ExternalDocumentRef verknüpfen. Release-SBOMs aus realen Pipelines nutzen das ausgiebig, und dann zeigt der übliche Viewer nur noch die oberste Ebene mit toten Verweisen.

Was SBOM Lens anders macht

SBOM Lens behandelt kaskadierende Dokumente als Normalfall, nicht als Sonderfall. Man zieht das Release-Dokument plus seine Komponenten-SBOMs in den Browser, das Tool löst die Verweise auf, zuerst über Prüfsummen, dann über Namespaces, und rendert einen durchgehenden Baum über alle Dokumentgrenzen hinweg: Release, Komponente, Container-Image, Paket. Fehlende Dokumente erscheinen als Platzhalter mit Handlungsoptionen statt als Fehlermeldung.

Fünf Sichten beantworten die Fragen, die in Projekten wirklich auftauchen. Explore zeigt den Baum mit Detailansicht und Rohquelle. Map visualisiert, wie die Kaskade verdrahtet ist. Inventory liefert die Stückliste als sortierbare Tabelle mit CSV- und JSON-Export. Conflicts gruppiert Pakete, die in mehreren Versionen ausgeliefert werden. Diff vergleicht zwei Releases und liefert die Änderungen als kopierbares Markdown für Release Notes.

Dazu kommt ein Qualitätsbericht je Dokument, orientiert an den NTIA-Minimum-Elements: Autor, Zeitstempel, Namespace, Relationships, plus die Abdeckung von Versionen, Lieferanten und Prüfsummen pro Paket. Bewusst als nackte Zahlen, ohne erfundenen Score. Ein SBOM mit 60 Prozent Lieferanten-Abdeckung ist keine “Note C”, sondern ein Dokument, bei dem 40 Prozent der Lieferantenangaben fehlen.

Drei Entscheidungen, die das Tool geprägt haben

Die erste Entscheidung: client-only. SBOM Lens ist eine statische Web-App, die Dokumente ausschließlich lokal im Browser parst. Nichts wird hochgeladen. Eine Abhängigkeitsliste verrät viel über ein Produkt, von Versionsständen bis zu potenziell verwundbaren Komponenten, und gehört nicht auf fremde Server. Wer dem gehosteten Viewer trotzdem nicht traut: Das Repo enthält ein Dockerfile, die Instanz läuft hinter dem eigenen Reverse Proxy und kann dort einen kuratierten SBOM-Katalog fürs Team ausliefern.

Die zweite: Ehrlichkeit gegenüber schmutzigen Daten. Reale SBOMs haben Macken. Prüfsummen mit Leerzeichen-Varianten, doppelte SPDXIDs, Versionen, die nur in der purl stehen, unbekannte Relationship-Typen. Ein Parser, der so etwas mit einer Exception quittiert, ist im Alltag nutzlos. SBOM Lens lädt tolerant und meldet die Befunde als Diagnose je Dokument.

Die dritte: Performance als Feature. Dokumente mit 6.500 Paketen parst ein Web Worker, Baum und Quellansicht sind virtualisiert, die Suche läuft gegen einen vorab gebauten Index. Wer schon einmal ein 40-Megabyte-JSON im Browser geöffnet hat, weiß, warum wir das erwähnen.

Für den Arbeitsalltag gibt es zusätzlich eine VS-Code-Extension auf Open VSX: “Open with SBOM Lens” auf jeder .spdx-Datei, plus Workspace-Scanning, das alle SBOMs im Repository findet.

Open Source, mit KI gebaut

SBOM Lens ist unter Apache-2.0 auf GitLab veröffentlicht, mit GitHub-Mirror. Das ist für uns kein Marketing-Nebenprodukt, sondern konsequent: Wir empfehlen Kunden seit Jahren Open-Source-Bausteine für ihre Infrastruktur, also veröffentlichen wir auch eigene Werkzeuge offen. Entwickelt wurde das Tool übrigens zu großen Teilen von KI-Agenten, mit menschlicher Architektur- und Review-Arbeit an den entscheidenden Stellen. Beide Themen, das Release und der AI-native Entwicklungsprozess, bekommen eigene Artikel in dieser Serie, ebenso der tiefere Blick in SPDX-Kaskaden und das Open Component Model.

Fazit

SBOMs entfalten erst dann Wert, wenn jemand sie liest, und dafür braucht es Werkzeuge, die mit echten, kaskadierenden Dokumenten umgehen können. SBOM Lens ist unsere Antwort darauf: offen, lokal, schnell. Probieren Sie es mit dem eingebauten Beispiel-Datensatz direkt im Viewer aus. Und wenn in Ihrer Delivery-Pipeline SBOMs zwar entstehen, aber niemand etwas damit anfangen kann, sprechen Sie uns an: Unser Team unterstützt von der Pipeline-Integration bis zur Auswertung, siehe Software Engineering bei EverBright.

Häufige Fragen

Was ist SBOM Lens?

SBOM Lens ist ein kostenloser Open-Source-Viewer für SPDX-SBOMs, entwickelt von EverBright IT. Er löst Verweise zwischen kaskadierenden Dokumenten auf und stellt die gesamte Lieferkette als einen navigierbaren Baum dar. Das Tool läuft vollständig im Browser, Dateien verlassen den Rechner nicht, und steht unter Apache-2.0-Lizenz.

Welche SBOM-Formate unterstützt SBOM Lens?

SBOM Lens liest SPDX 2.x in den Formaten Tag-Value, JSON und YAML, inklusive dokumentübergreifender Verweise per ExternalDocumentRef. CycloneDX wird derzeit nicht unterstützt, der Fokus liegt bewusst auf sauberer SPDX-Tiefe statt Formatbreite. Für CycloneDX-Workflows lassen sich Dokumente vorab nach SPDX konvertieren.

Werden meine SBOM-Dateien beim Öffnen hochgeladen?

Nein. SBOM Lens ist eine statische, client-only Anwendung: Dokumente werden lokal im Browser geparst und niemals an einen Server übertragen. URLs werden nur geladen, wenn dies explizit angestoßen wird. Für private Registries lässt sich das Tool selbst hosten und hinter dem eigenen Reverse Proxy betreiben.

Kann ich SBOM Lens im Unternehmen selbst hosten?

Ja. Das Repository enthält ein Dockerfile für ein etwa 25 MB großes nginx-Image, alternativ genügt jeder statische Webserver. Eine selbst gehostete Instanz kann einen kuratierten Katalog von SBOMs ausliefern, sodass das Team den Viewer öffnet und direkt analysiert, ohne Dateien manuell zusammenzusuchen.

#SBOM #SPDX #Supply Chain Security #Open Source #SBOM Lens
Teilen:
Sergej Bardin

Sergej Bardin

CEO · KI-Strategie & IT-Beratung

Begleitet mittelständische Unternehmen bei KI-Adoption und Cloud-Strategie. Fokus auf praxistaugliche Entscheidungen statt Hype.

KI-StrategieMCPRAGMulti-CloudIT-BeratungMittelstand