
Die besten Frameworks für plattformübergreifende Desktop-App-Entwicklung
Haben Sie schon einmal bemerkt, dass die meisten professionellen Softwareprodukte und Spiele für alle gängigen Plattformen verfügbar sind? Das ist […]
Join us at Qt C++ Warsaw Meetup - 21.08.2025
Sign up for free!Moderne Software basiert auf Schichten von Open-Source- und Drittanbieterkomponenten – was sowohl Innovation als auch Risiko mit sich bringt. In regulierten Branchen, insbesondere solchen, die mit sensiblen Daten oder kritischen Systemen arbeiten, ist es nicht mehr optional, genau zu verstehen, was in Ihrer Software enthalten ist.
Deshalb ist die Software-Stückliste (SBOM) zu einer zentralen Anforderung für Sicherheit, Compliance und Transparenz in der Lieferkette geworden.
Wenn Sie im Bereich Embedded- oder medizinische Softwareentwicklung arbeiten und SBOM-Praktiken für Compliance, Automatisierung oder Risikomanagement implementieren oder verbessern müssen – wir sind hier, um zu helfen.
Lassen Sie uns sprechen darüber, wie Sie das SBOM-Management über den gesamten Software-Lebenszyklus hinweg vereinfachen und skalieren können.
Eine Software-Stückliste (SBOM) ist im Wesentlichen ein Inventar oder eine Liste aller Komponenten, aus denen ein Softwareprodukt besteht – oft verglichen mit einer „Zutatenliste“ für Software.
Formell definiert die Cybersicherheits-Executive-Order 14028 der US-Regierung eine SBOM als „einen formalen Datensatz, der die Details und Lieferkettenbeziehungen der verschiedenen Komponenten enthält, die beim Erstellen von Software verwendet werden“.
In der Praxis listet eine SBOM jede Open-Source-Bibliothek, jedes Drittanbieter-Modul und jede andere Abhängigkeit in Ihrem Code auf, zusammen mit Metadaten wie Versionen, Lizenzen und kryptografischen Hashes. Diese detaillierte Transparenz ist entscheidend, um die Lieferkette Ihrer Software zu verstehen.
Softwareprodukte enthalten zahlreiche Drittanbieterbibliotheken und Open-Source-Komponenten. Eine SBOM schafft Transparenz über diese Komponenten, was aus mehreren Gründen von unschätzbarem Wert ist:
Kurz gesagt, eine SBOM dient als Grundlage für Softwaresicherheit und Governance. Sie wird von Regierungen und der Industrie zunehmend als „wesentlich für das Management von Softwaresicherheit und Risiko“ angesehen.
Mehrere staatliche Vorschriften und Industriestandards verlangen jetzt SBOMs oder empfehlen sie dringend, was ihre Bedeutung für die Compliance unterstreicht. Wichtige Beispiele sind:
Das Versäumnis, SBOMs dort zu erstellen und zu pflegen, wo sie erforderlich sind, kann schwerwiegende Folgen haben. Dazu gehören regulatorische Strafen (oder die Unfähigkeit, Ihr Produkt in bestimmten Märkten zu verkaufen), Haftungsrisiken im Falle eines Verstoßes (z. B. wenn sich herausstellt, dass Sie Drittanbieterkomponenten nicht überprüft haben) und Schäden am Unternehmensruf.
Um die Sicherheits- und Compliance-Vorteile von SBOMs zu nutzen, sollten Softwareunternehmen das SBOM-Management als integralen Bestandteil ihres Softwareentwicklungslebenszyklus betrachten. Hier sind Best Practices für die Erstellung, Pflege und Prüfung von SBOMs von der Entwicklung bis zur Bereitstellung:
Verlassen Sie sich nicht auf manuelle Prozesse zur Erstellung von SBOMs. Der beste Ansatz besteht darin, die SBOM-Erstellung in Ihre Continuous Integration (CI) und Delivery (CD) Pipeline zu integrieren, sodass bei jedem Build oder Release eine aktuelle SBOM erstellt wird. Automatisierung stellt sicher, dass keine Veröffentlichung ohne SBOM erfolgt und reduziert menschliche Fehler.
Sie können beispielsweise Open-Source-SBOM-Tools (wie Syft oder CycloneDX-Plugins) in Build-Skripte integrieren, um für jeden Build ein SBOM-Artefakt zu erstellen. Dies ermöglicht Ihnen auch die Einrichtung von Release-Gates – z. B. kann die Pipeline automatisch die SBOM auf „unzulässige Lizenzen oder kritische Schwachstellen“ überprüfen und den Build abbrechen, wenn Probleme gefunden werden.
Die Automatisierung der SBOM-Erstellung bedeutet, dass Sie immer eine genaue Stückliste für den Code haben, der in Test- oder Produktionsumgebungen läuft.
Eine SBOM ist ein lebendiges Dokument, das den aktuellen Zustand Ihrer Software widerspiegeln sollte. Es ist Best Practice, SBOMs zu aktualisieren, wann immer sich Abhängigkeiten ändern oder neue Releases erstellt werden. Veraltete SBOMs (z. B. aus der Produktversion des letzten Jahres) sind von geringem Nutzen; regelmäßige Aktualisierungen gewährleisten eine genaue Inventarisierung für proaktives Schwachstellenmanagement und Compliance-Audits.
Es ist auch entscheidend, die Vollständigkeit und Genauigkeit der SBOM sicherzustellen – überprüfen Sie, ob die von Ihren Tools generierte SBOM tatsächlich den Komponenten im endgültigen Build entspricht. Dies kann die Prüfung der SBOM gegen das Softwareartefakt beinhalten (z. B. die Überprüfung, ob alle dynamisch verlinkten Bibliotheken in einem Firmware-Image aufgeführt sind).
Führen Sie regelmäßige SBOM-Audits durch und vergleichen Sie diese mit Paketmanifesten oder Containerinhalten, um Auslassungen zu erkennen. Genauigkeit ist von größter Bedeutung: Eine SBOM mit fehlenden Komponenten untergräbt ihren Sicherheitswert.
Wenn Sie mehrere SBOM-Typen verwenden (z. B. eine Source-SBOM aus der Analyse von Quellabhängigkeiten und eine Build-SBOM aus dem kompilierten Output), vergleichen Sie diese, um Unterschiede abzugleichen.
Nutzen Sie SBOMs während der Test- und Release-Kandidatenphasen, um die Softwarequalität zu verbessern. Behandeln Sie die SBOM in der QA als Prüfobjekt: Scannen Sie die Komponenten der SBOM auf potenzielle Schwachstellen (unter Verwendung von Quellen wie der NVD des NIST oder anderen Beratungsdatenbanken) und auf Lizenzkonformität, bevor Sie eine Version freigeben.
Viele Organisationen implementieren jetzt einen „SBOM-Check“ in ihrer Release-Checkliste – z. B. die Überprüfung, dass keine Komponenten mit hochgradigen CVEs offen sind und keine neue GPL-lizenzierte Bibliothek unbemerkt eingeführt wurde. Diese Prüfungen können mit Tools automatisiert werden.
Durch die Kopplung der SBOM-Analyse mit Ihrem QA-Prozess stellen Sie sicher, dass jede Veröffentlichung Ihren Sicherheits- und Rechtsrichtlinien entspricht – Lizenzverstöße werden vermieden und Sicherheitsrisiken gemindert. (keine ungepatchten Schwachstellen, keine Lizenzverstöße). Diese Integration unterstützt konsistente Sicherheitspraktiken in Ihrer Release-Pipeline.
Es ist auch ratsam, jede SBOM und die Ergebnisse dieser Scans zu archivieren, um einen Prüfpfad für die Compliance zu haben. Auf diese Weise haben Sie Nachweise darüber, welche Komponenten (und Schwachstellen) in einer bestimmten Produktversion vorhanden waren und wie sie bewertet wurden, was zukünftige Audits oder Vorfalluntersuchungen erheblich erleichtern kann.
SBOM-Praktiken sollten nicht mit dem Release enden. In der Produktion und nach der Bereitstellung sollten SBOMs weiterhin für Überwachung und Wartung genutzt werden. Best Practice ist es, für jede in Verwendung befindliche Version Ihrer Software eine SBOM zu pflegen – sei es auf eingebetteten Geräten im Feld oder bei Kundeninstallationen.
Diese SBOMs können von kontinuierlichen Überwachungstools erfasst werden, um Sie zu warnen, wenn eine neue CVE auftaucht oder wenn Komponenten bekannte Sicherheitslücken enthalten. Im Wesentlichen ermöglicht das Speichern von SBOMs für bereitgestellte Versionen die kontinuierliche Nachverfolgung neuer Risiken: Wenn eine neue Schwachstelle angekündigt wird, können Sie sofort feststellen, welche Produktversionen (und welche Kunden oder Geräte) betroffen sind, indem Sie in Ihrem SBOM-Repository suchen.
Dies beschleunigt die Behebung (z. B. Priorisierung der Patch-Entwicklung oder Kundenbenachrichtigung für betroffene Produkte). In regulierten Branchen wie der Medizin sind Sie möglicherweise auch verpflichtet, einen Prozess für die Überwachung von Schwachstellen nach dem Inverkehrbringen zu haben – SBOMs sind die Grundlage dieses Prozesses, da Sie nicht überwachen können, was Sie nicht kennen.
Halten Sie SBOMs aktuell, wenn Patches oder Updates im Feld angewendet werden, und nutzen Sie sie, um Entscheidungen zum Lebenszyklusende zu steuern (z. B. zu wissen, welche veralteten Komponenten in älteren Produktlinien existieren).
Behandeln Sie SBOMs als vertrauliche Dokumente, da sie ausnutzbare Details über die Zusammensetzung Ihres Produkts offenlegen können. Best Practices für den Umgang mit SBOMs umfassen die digitale Signierung von SBOM-Dateien (um ihre Integrität und Authentizität sicherzustellen) und die Kontrolle ihrer Verteilung.
Speichern Sie SBOMs in einem sicheren Repository und verwenden Sie beim Teilen mit externen Parteien oder Regulierungsbehörden vertrauenswürdige Kanäle. Die SBOM sollte nur autorisierten Empfängern zur Verfügung gestellt werden (häufig erfolgt die Weitergabe an Kunden unter NDA oder an Behörden über sichere Portale).
Laufende Initiativen erwägen sogar SBOM-Verschlüsselung oder Zugriffskontrollen für hochsensible Umgebungen. Während der CRA ausdrücklich festlegt, dass Hersteller SBOMs nicht öffentlich machen müssen, sollten Sie dennoch bereit sein, diese auf Anfrage sicher bereitzustellen.
Stellen Sie außerdem sicher, dass Ihre SBOMs mit den Softwareversionen im Konfigurationsmanagement synchronisiert sind, sodass keine Verwirrung darüber besteht, welche SBOM zu welchem Build gehört (das Einbetten einer SBOM-ID oder URI im Produkt kann helfen).
Da die SBOM-Erstellung zur Routine wird, sollten Sie sicherstellen, dass Ihr Ansatz den aufkommenden Standards und regulatorischen Erwartungen entspricht. Wenn Sie beispielsweise EU-Märkte gemäß CRA bedienen, können Sie eine „Top-Level-Abhängigkeits-SBOM“ für die Compliance erstellen, aber auch vollständige Abhängigkeits-SBOMs als Best Practice pflegen.
Die Einführung eines Standardformats wie SPDX oder CycloneDX von Anfang an stellt sicher, dass Ihre SBOMs die gängigen Datenanforderungen erfüllen.
Es ist auch ratsam, Ihre Entwicklungsteams und DevOps in der Nutzung von SBOMs zu schulen – Entwickler sollten verstehen, warum SBOMs wichtig sind (z. B. wie das Hinzufügen einer neuen Bibliothek ein SBOM-Update auslöst oder wie man SBOM-Scanberichte interpretiert). Der Aufbau einer Kultur der Transparenz über die Nutzung von Komponenten erleichtert die Wartung von SBOMs erheblich.
Einige Organisationen benennen sogar einen SBOM-Champion oder verwenden „SBOM as Code“-Praktiken (behandeln SBOM-Konfiguration als Teil des Build-Pipeline-Codes), um es in den Workflow des Teams einzubetten.
SBOMs sind nur dann effektiv, wenn sie standardisiert und maschinenlesbar sind. Es haben sich mehrere Formate als De-facto-Standards für SBOM-Daten herausgebildet, die die Interoperabilität zwischen Tools ermöglichen. Die beiden beliebtesten SBOM-Formate sind SPDX (Software Package Data Exchange) und CycloneDX, wobei SWID-Tags ebenfalls anerkannt, aber in der Praxis weniger genutzt werden. Jedes hat seine Stärken:
SBOM-Format | Herkunft & Standardisierung | Unterstützte Dateiformate | Besondere Merkmale & Anwendungsfälle |
---|---|---|---|
SPDX | Linux Foundation; ISO/IEC 5962:2021 | Tag-Value, JSON, YAML, RDF/XML, Excel | Reich an Lizenz- und Copyright-Daten (ursprünglich für Compliance entwickelt). Weit verbreitet bei großen Anbietern (z. B. Microsoft, Google). Unterstützt Komponenten-Hashes, externe Referenzen (z. B. Verknüpfung mit Schwachstellen-IDs). Ideal für Open-Source-Compliance und Multi-Tool-Interoperabilität. |
CycloneDX | OWASP (in Richtung ECMA-Standard) | XML, JSON, ProtoBuf | Fokussiert auf Sicherheit und Abhängigkeiten. Entwickelt für Cybersicherheitsanwendungen (verfolgt Schwachstellen, Abhängigkeitsgraph). Entwickelt sich schnell weiter mit Unterstützung zusätzlicher BOM-Typen (Hardware, Dienste, ML-Modelle) und VEX-Statements. Beliebt in DevSecOps-Tools; ideal für Schwachstellenmanagement und Risikoanalyse der Lieferkette. |
SWID-Tags | ISO/IEC 19770-2:2015 (ISO-Standard) | XML | Software-Identifikations-Tags, die in Unternehmenssoftwareinventaren verwendet werden. Enthält eindeutige Produktkennungen, Versionen und Metadaten, aber keine vollständige Abhängigkeitsliste. Nützlich für die Nachverfolgung proprietärer Softwareinstallationen. Aufgrund fehlender verschachtelter Komponentendetails nur eingeschränkt als SBOM für Entwicklungszwecke nutzbar. |
Für die meisten Organisationen reichen entweder SPDX oder CycloneDX (oder beide) aus. Beide können die NTIA-Mindestelemente einer SBOM darstellen (verwenden nur leicht unterschiedliche Feldnamen) und werden von Tools breit unterstützt.
Es gibt zahlreiche automatisierte Tools zur Erstellung und Verwaltung von SBOMs in den oben genannten Formaten. Angesichts unseres Schwerpunkts auf C++ und Qt in der Embedded-Entwicklung lohnt es sich, einige Optionen hervorzuheben:
Ab Qt 6.8 bietet das Qt-Framework selbst eine integrierte SBOM-Erstellung. Das Qt-Build-System kann nun für jedes Qt-Modul ein „Build-SBOM“-Dokument ausgeben, das automatisch im Qt-Installationspaket enthalten ist.
Diese SBOMs (im SPDX-2.3-Format) listen jede Qt-Bibliothek und alle von ihr verwendeten Drittanbieterkomponenten auf, zusammen mit Abhängigkeitsbeziehungen, Versionsnummern, Lizenzen und sogar kryptografischen Hashes der Binärdateien.
Wenn Sie Qt über den Online-Installer installieren, finden Sie eine Reihe von SBOM-Dateien im Verzeichnis Qt/<platform>/sbom/, die den installierten Qt-Modulen entsprechen. Dies ist ein praktisches Beispiel dafür, wie ein Anbieter Entwicklern die Compliance erleichtert: Durch die Bereitstellung von SBOMs für das Framework wird es für Sie als Entwickler viel einfacher, Qt in ein Medizinprodukt oder ein anderes reguliertes Produkt zu integrieren und bereits SBOM-Abdeckung für diesen Teil Ihrer Software zu haben.
Sie können diese SBOMs mit der SBOM Ihrer eigenen Anwendung ergänzen, um ein vollständiges Bild zu erhalten. Die Qt-SBOM enthält nützliche Informationen wie die genaue verwendete Compiler-Version, Build-Zeitstempel und Komponenten-Hashes, die die Reproduzierbarkeit und Sicherheitsüberprüfung erleichtern.
Dies zeigt den Branchentrend – Build-Tools und Paketmanager beginnen, SBOMs standardmäßig auszugeben. Andere Ökosysteme (npm, Maven usw.) verfügen über Plugins zur Generierung von SBOMs während des Builds, und selbst C/C++-Buildsysteme können SBOM-Generatoren als Post-Build-Schritt aufrufen.
Wenn Ihre Toolchain die SBOM-Ausgabe nicht nativ unterstützt, können Sie spezielle SBOM-Generierungstools verwenden. Syft beispielsweise ist ein Open-Source-CLI-Tool von Anchore, das Container-Images, Dateisysteme oder Code-Repositories scannen kann, um eine SBOM (in SPDX oder CycloneDX) zu erstellen. Es ist besonders nützlich für C++-Entwicklungen, die in Linux-Pakete oder containerisierte Umgebungen kompiliert werden. Syft integriert sich mit Schwachstellenscannern wie Grype und verknüpft die SBOM-Generierung mit CVE-Scans.
Ein weiteres Tool, das Microsoft SBOM Tool, kann Komponenten in einem Code-Repository erkennen und eine SPDX-2.2-SBOM generieren, einschließlich der Anreicherung von Lizenzdaten über ClearlyDefined-APIs.
Es gibt auch CycloneDX CLI-Tools (cdxgen), die CycloneDX-SBOMs für viele Sprachen erstellen können und sogar Dinge wie Infrastructure-as-Code oder GitHub Actions als Teil eines umfassenderen „X-BOM“-Konzepts einbeziehen. Für die Embedded-Entwicklung können Sie diese Tools in Ihren Build integrieren oder sie verwenden, um endgültige Binärdateien/Firmware auf verlinkte Bibliotheken zu scannen.
Software Composition Analysis (SCA)-Plattformen wie Synopsys Black Duck, Sonatype Nexus Lifecycle, Snyk und Mend (WhiteSource) haben die Möglichkeit zur SBOM-Exportfunktion hinzugefügt. Diese können in CI-Pipelines integriert werden, um automatisch SBOMs zu erstellen und diese kontinuierlich zu aktualisieren, wenn sich Abhängigkeiten ändern. Einige Plattformen ermöglichen das Hosting von SBOMs in einem zentralen Dashboard und können SBOMs von Drittanbietern importieren (z. B. wenn Sie eine SBOM von einem Lieferanten erhalten). Der Vorteil kommerzieller Tools liegt oft in erweiterten Richtlinienkontrollen, Schwachstellenwarnungen und Berichterstellung rund um die SBOM (z. B. Lizenzrisikoberichte). Open-Source-Tools sind jedoch für viele Anwendungsfälle ausreichend, insbesondere in Verbindung mit robusten Prozessen.
Zur Ergänzung von SBOMs sollten Sie Tools für VEX (Vulnerability Exploitability eXchange) in Betracht ziehen. Ein VEX-Dokument gibt an, ob ein Produkt von einer bekannten Schwachstelle betroffen ist und warum oder warum nicht. Wenn Ihre SBOM beispielsweise OpenSSL 1.1.1 zeigt und eine Schwachstelle angekündigt wird, könnten Sie ein VEX ausstellen, das besagt: „nicht betroffen, weil die verwundbare Funktion nicht verwendet wird“. Formate wie CycloneDX und CSAF unterstützen VEX, und Produkte wie Azure- oder Red-Hat-Tools können VEX-Daten verwalten. Während VEX über den Umfang der SBOM selbst hinausgeht, ist es eine aufkommende Best Practice, VEX-Erklärungen zusammen mit SBOMs zu verteilen, um Fehlalarme zu minimieren und die Verbraucher auf reale Risiken zu fokussieren. In regulierten Umgebungen (z. B. erwartet die FDA eine Schwachstellenbewertung zusammen mit der SBOM) kann das Bereitstellen von Kontext über VEX sehr hilfreich sein.
Für CTOs, COOs, Projektmanager und Sicherheitsteams in Softwareunternehmen ist die Umsetzung von SBOM-Best Practices jetzt ein strategisches Gebot. Eine SBOM ist weit mehr als eine Papieranforderung; sie ist ein Werkzeug für Transparenz in der Lieferkette, regulatorische Compliance und proaktives Sicherheitsmanagement. Durch die Katalogisierung jeder Komponente in Ihrer Software können Sie die Einhaltung von Gesetzen wie dem EU CRA und den FDA-Richtlinien nachweisen und gleichzeitig Ihre Produkte gegen Lieferkettenangriffe und Schwachstellen absichern.
Über die Compliance hinaus bieten SBOMs greifbare Geschäftsvorteile: Sie verringern den Aufwand für das Sicherheitsmanagement über komplexe Abhängigkeiten hinweg, sie stärken das Vertrauen der Kunden (die die Gewissheit haben, dass Sie wissen und sich darum kümmern, was in Ihrem Produkt enthalten ist) und sie verbessern die interne Effizienz (z. B. schnellere Reaktion auf Vorfälle und einfachere Komponenten-Upgrades). Organisationen, die bei der Einführung von SBOMs führend sind, positionieren sich als sichere und verantwortungsbewusste Lieferanten in einem zunehmend Transparenz fordernden Ökosystem. Umgekehrt könnten diejenigen, die SBOMs vernachlässigen, von wichtigen Märkten ausgeschlossen werden oder im Falle der nächsten Zero-Day-Schwachstelle aufgrund mangelnder Einsicht in ihre eigene Software in Schwierigkeiten geraten.
Benötigen Sie Unterstützung bei der Implementierung von SBOMs in Ihren Softwareentwicklungsprozess? Lassen Sie uns sprechen darüber, wie Sie Compliance, Automatisierung und Sicherheit in Ihrer Pipeline miteinander verbinden können.
Kommen wir zur Sache: Es ist eine Herausforderung, Top-Qt-QML-Entwickler zu finden. Helfen Sie sich selbst und starten Sie die Zusammenarbeit mit Scythe Studio – echten Experten im Qt C++ Framework.
Entdecken Sie unsere Fähigkeiten!Haben Sie schon einmal bemerkt, dass die meisten professionellen Softwareprodukte und Spiele für alle gängigen Plattformen verfügbar sind? Das ist […]
Willkommen zu diesem umfassenden Leitfaden über 3D-Grafiken in Qt. In diesem Artikel werden wir drei Hauptmöglichkeiten untersuchen, wie Sie 3D-Inhalte […]
Ich werde nicht lügen: Viele der Projekte, die wir bei Scythe Studio durchführen, sind mit der Medizingerätebranche verbunden. Wir haben […]