Eine Software-Stückliste (SBOM) ist ein Dokument, das eine detaillierte Bestandsaufnahme der Komponenten und Abhängigkeiten enthält, die in einem Softwareprojekt verwendet werden. Sie listet auch alle Bibliotheken, Frameworks und ihre jeweiligen Versionen auf, die in der Software verwendet werden. Wenn es um Open-Source-Software (OSS) geht, kann eine SBOM eine entscheidende Rolle bei der Gewährleistung von Transparenz, Sicherheit und Compliance spielen.
Der Einsatz einer SBOM – insbesondere in OSS – ermöglicht es einer Organisation, Transparenz über Komponenten und Abhängigkeiten zu erlangen, das Risikomanagement zu verbessern und vieles mehr. Im Folgenden werden diese Vorteile erläutert.
OSS enthält oft verschiedene Komponenten und Abhängigkeiten von Drittanbietern. Eine SBOM ermöglicht es Entwicklern und Anwendern, einen klaren Überblick über alle in der Software verwendeten Komponenten zu erhalten. Dies schließt Open-Source-Bibliotheken und -Frameworks sowie deren spezifische Versionen ein. Diese Transparenz hilft dabei, die Zusammensetzung der Software zu verstehen, potenzielle Schwachstellen zu identifizieren und alle mit den Open-Source-Komponenten verbundenen Lizenzverpflichtungen zu verfolgen.
Wie jede andere Software kann auch OSS anfällig für Sicherheitslücken sein. Mit einer SBOM können Organisationen die Versionen von Open-Source-Komponenten verfolgen und sich über alle bekannten Schwachstellen in diesen Versionen informieren. Dies ermöglicht ein proaktives Schwachstellenmanagement, indem umgehend Patches oder Updates angewendet werden, um Sicherheitsprobleme zu entschärfen und zu melden (siehe RFC8615). Mit einer aktuellen SBOM können Organisationen die Auswirkungen von Schwachstellen abschätzen und geeignete Maßnahmen zur Sicherung ihrer Software ergreifen.
In den letzten Jahren ist die Sicherheit der Software-Lieferkette zu einem wichtigen Thema geworden. Eine SBOM trägt zur Verbesserung der Sicherheit in der Lieferkette bei, indem sie Transparenz über die in der Software verwendeten Komponenten und ihre Herkunft schafft. Sie ermöglicht es Organisationen auch, die Vertrauenswürdigkeit und Sicherheitslage der Komponenten, auf die sie sich verlassen, zu bewerten. Mit einer SBOM können Organisationen Risiken im Zusammenhang mit kompromittierten oder bösartigen Komponenten erkennen und mindern und so das Potenzial für Angriffe auf die Software-Lieferkette verringern.
OSS fördert die Zusammenarbeit und das Engagement der Community. Eine SBOM erleichtert die effektive Zusammenarbeit, indem sie ein gemeinsames Verständnis der Software-Komponenten für verschiedene Mitwirkende und Interessengruppen schafft. Sie hilft bei der Koordinierung von Patch-Management-Bemühungen, indem sie die Komponenten, die Updates oder Korrekturen benötigen, eindeutig identifiziert. Die Zusammenarbeit innerhalb der Open-Source-Community wird effizienter, wenn alle Teilnehmer auf eine gemeinsame SBOM zurückgreifen können, um Sicherheitslücken und andere Probleme zu beheben.
In einigen Branchen müssen Organisationen aufgrund gesetzlicher Vorschriften Transparenz und Kontrolle über die in ihren Anwendungen oder Systemen verwendeten Software-Komponenten nachweisen. Eine SBOM bietet die notwendige Dokumentation, um diese Compliance-Anforderungen zu erfüllen. Sie ermöglicht es Organisationen, ihre Sorgfaltspflicht, Rückverfolgbarkeit und die Einhaltung relevanter Vorschriften nachzuweisen, insbesondere wenn es um Sicherheits- und Lizenzierungsaspekte von OSS geht.
Die OSS unterliegt in der Regel bestimmten Lizenzen, die vorschreiben, wie die Software verwendet, verändert und verbreitet werden darf. Eine SBOM bietet einen umfassenden Überblick über alle Open-Source-Komponenten und die entsprechenden Lizenzen. Dies hilft Organisationen, die Einhaltung der Lizenzbedingungen der von ihnen verwendeten OSS sicherzustellen. Durch das Verständnis der Lizenzverpflichtungen können Organisationen fundierte Entscheidungen über die Verbreitung und Verwendung ihrer Software treffen und gleichzeitig rechtliche oder Compliance-Probleme vermeiden.
Mehrere Regierungen und Organisationen in stark regulierten Branchen wie dem Bankwesen und dem Gesundheitswesen befürworten die Verwendung von SBOMs oder erwägen, die Verwendung von SBOMs entweder intern oder für ihre Zulieferer zur Pflicht zu machen.
Die Erstellung einer SBOM erfordert die Zusammenarbeit und Mitwirkung verschiedener Interessengruppen in der gesamten Software-Lieferkette. Durch die Einbeziehung dieser Interessengruppen und die Förderung der Zusammenarbeit zwischen ihnen können Organisationen eine robuste und zuverlässige SBOM zusammenstellen, die die erforderlichen Informationen über Software-Komponenten erfasst, die Sicherheit der Lieferkette erhöht und das Risikomanagement und die Einhaltung von Vorschriften erleichtert.
Hier sind einige Schlüsselpersonen oder -rollen, die in den Prozess einbezogen werden sollten:
Organisationen sollten eine SBOM anstreben, die einen umfassenden Überblick über Software-Komponenten, deren Herkunft, Abhängigkeiten und zugehörige Sicherheitsinformationen bietet. Dies ermöglicht ein besseres Risikomanagement in der Softwarelieferkette und erhöht die allgemeine Softwaresicherheit.
Hier sind die wichtigsten Schritte bei der Erstellung einer SBOM:
Es gibt verschiedene Möglichkeiten, wie eine SBOM scheitern oder ihren Zweck verfehlen kann. Die Bewältigung dieser Herausforderungen und die Sicherstellung der Genauigkeit, Vollständigkeit und Aktualität Ihrer SBOM kann dazu beitragen, das Risiko eines Scheiterns zu mindern.
Im Folgenden werden einige häufige Fehlerursachen aufgeführt, die die bewährten Praktiken für die Erstellung einer SBOM widerspiegeln:
Insgesamt ist eine SBOM ein wertvolles Instrument zur Verwaltung der Komplexität von OSS. Sie fördert Transparenz, Sicherheit, Compliance und Zusammenarbeit innerhalb des Open-Source-Ökosystems. Durch die Bereitstellung einer detaillierten Bestandsaufnahme von Software-Komponenten, ihrer Versionen und der zugehörigen Lizenzinformationen ermöglicht eine SBOM es Organisationen, fundierte Entscheidungen zu treffen, Risiken zu verwalten und die Integrität und Sicherheit ihrer Software-Projekte zu gewährleisten.