Was sind SBOMs und was bedeuten sie für Open-Source-Software?

0
218

Was steckt in der kommerziellen und Open-Source-Software, die Sie benutzen? Wie viel wurde vom Anbieter geschrieben und wie viel davon ist Code von Drittanbietern? Kann man all diesem Code vertrauen?

Die Bedrohungen sind real

Die jüngste Flut hochkarätiger Cyberangriffe zeigt deutlich, über die Auswirkungen aggressiver Cyber-Vorfälle. Der SolarWinds-Hack hat ihre Kunden entlarvt’ Netzwerken vor der Bedrohung durch die Cyberkriminellen. Der Codecov-Angriff hat ihre Nutzer entlarvt’ Continuous Integration/Continuous Deployment-Umgebungen für die Bedrohungsakteure.

VERWANDTESolarWinds Hack: Was ist passiert und wie Sie sich schützen können

In beiden Fällen kaskadierte der Angriff auf die Unternehmen auf andere in diesem Ökosystem, die Kunden. Angriffe, die kritische Infrastrukturen lahmlegen, haben weitreichendere Auswirkungen. Es sind nicht nur Kunden der betroffenen Organisation oder Dienstleistung, die betroffen sind, sondern die Auswirkungen erstrecken sich auch auf andere Branchen und die Gesellschaft.

Der Ransomware-Angriff im Mai 2021 auf die Colonial Pipeline Company führte zur Stilllegung einer 5.500 Meilen langen Pipeline. Neben anderen raffinierten Kraftstoffen liefert die Pipeline 45 % der Benzinversorgung —2,5 Millionen Barrel Benzin pro Tag—an die Ostküste. Die Benzinlieferung wurde einfach eingestellt. Die Preise an den Zapfsäulen schossen in die Höhe und Panikkäufe setzten ein. Tausende Tankstellen mussten wegen fehlender Versorgung schließen.

Der Angriff der Colonial Pipeline Company war finanziell motiviert. Es handelte sich um einen Ransomware-Angriff, eine gängige Form der digitalen Erpressung. Colonial Pipeline zahlte den Cyberkriminellen ein Lösegeld in Höhe von 75 Bitcoins —ca. 4,4 Millionen US-Dollar, abhängig von den Wechselkursen—um ihre Systeme wieder herzustellen.

Aber wenn dies ein Akt des Cyberterrorismus oder der Cyberkriegsführung gewesen wäre , hätte es keine Möglichkeit gegeben, das Entschlüsselungsprogramm zu erwerben, das erforderlich ist, um die betroffenen Systeme wieder online zu bringen. Ein Nationalstaat mit Fähigkeiten zur Cyber-Offensive kann ein anderes Land durch eine Kampagne strategischer Cyber-Angriffe funktionsunfähig machenVERBUNDEN: Müssen Sie das Lösegeld zahlen? Zuerst verhandeln

Auf die Bedrohungen reagieren

Am 21. März 2021 unterzeichnete Präsident Biden eine Durchführungsverordnung zur Verbesserung derim Cybersicherheit der Nation. Es legt eine Reihe von Standards und Anforderungen fest, die alle Bundesinformationssysteme erfüllen oder übertreffen müssen.

Abschnitt 4 der Durchführungsverordnung befasst sich mit Möglichkeiten zur Verbesserung der Sicherheit der Softwarelieferkette. Dies erlegt den Regierungsstellen termingebundene Pflichten auf, Leitlinien, Standards und Verfahren für viele Aspekte der Entwicklung und Beschaffung von Software bereitzustellen. Softwareanbieter müssen die Standards erfüllen und die Verfahren befolgen, um berechtigte Softwareanbieter für die Regierung zu sein.

Als Voraussetzung wird Transparenz genannt. Softwareanbieter müssen alle Komponenten und Bibliotheken von Drittanbietern offenlegen, die bei der Entwicklung ihrer Produkte verwendet wurden. Diese Anforderung erstreckt sich über die gesamte Lieferkette, sodass die Anbieter dieser Bibliotheken und Komponenten ihrerseits alle extern bezogen Softwarekomponenten auflisten müssen, die sie in ihren Produkten verwendet haben.

Open-Source-Software wird ausdrücklich erwähnt. Die Durchführungsverordnung spricht von “Sicherstellen und Nachweisen der Integrität und Herkunft von Open-Source-Software, die in einem beliebigen Teil eines Produkts verwendet wird, soweit dies möglich ist.”

Dies ist nicht überraschend. Ein Bericht über Open-Source-Sicherheit aus dem Jahr 2021 ergab, dass die durchschnittliche Anzahl von Open-Source-Komponenten in nicht trivialen kommerziellen Projekten erstaunliche 528 beträgt. Das ist eine Steigerung von 259% gegenüber vor fünf Jahren, als der Durchschnitt noch 84 Open-Source-Komponenten betrug pro Projekt.

VERWANDTE: Wie Sie Open Source Code sicher in Ihrem Projekt verwenden

Open-Source als Verbrauchsmaterial

Offensichtlich müssen Open-Source-Projekte den Standards und Verfahren entsprechen, die als Ergebnis der Durchführungsverordnung erlassen werden. Auf den ersten Blick sollte der Transparenzteil einfach sein. Open-Source-Projekte hängen ihren Quellcode für jede Art von Prüfung aus. Aber natürlich verwenden Open-Source-Projekte andere Open-Source-Komponenten, die andere Open-Source-Komponenten verwenden usw., verschachtelt wie russische Puppen.

Außerdem haben Softwareanwendungen Abhängigkeiten. Sie sind auf andere Softwarepakete angewiesen, um zu funktionieren. Wenn Sie sich dafür entscheiden, eine einzelne Open-Source-Komponente in Ihr eigenes Entwicklungsprojekt aufzunehmen, können Sie unwissentlich viele andere Open-Source-Produkte als Abhängigkeiten einbeziehen.

Es ist also nicht möglich, Ihren Quellcode zur Überprüfung zur Verfügung zu haben genug. Sie müssen eine Liste der Softwarebestandteile in Ihrem Produkt bereitstellen, genau wie die Liste der Lebensmittel- und chemischen Bestandteile auf einer Schokoriegelverpackung. In der Softwarewelt wird das als Software-Stückliste oder SBOM bezeichnet.

Die Software-Stückliste

RELATEDSo schützen Sie sich gegen Rootkits

Sicherheit beginnt mit Wissen. Sie müssen wissen, was Sie haben, um sicherzustellen, dass Sie es gesichert haben. Deshalb sind IT-Asset- und Datenverarbeitungsregister so wichtig. Eine SBOM—ausgesprochen ess-bomb—ist ein anwendungsspezifisches Dokument, das alle Softwareelemente auflistet, aus denen ein Softwareprodukt besteht.

Das ist wertvolles Wissen. Dadurch können die Benutzer dieser Software Sicherheitsentscheidungen treffen. Wenn Sie die in der Software vorhandenen Komponenten, das damit verbundene Risiko und die Schwere jedes Risikos kennen, können Sie überlegte und fundierte Entscheidungen treffen.

Sie könnten die Zutatenliste auf einer Schokoriegelverpackung lesen und feststellen, dass sie etwas enthält, auf das Sie allergisch sind. Mit einem SBOM können Sie die Build-Versionen und Release-Nummern der Softwarebestandteile überprüfen und entscheiden, ob Sie fortfahren möchten oder nicht. Zum Beispiel könnten Sie die Verwendung eines Produkts, das (sagen wir) Telnet integriert, oder eines, das eine SSH-Version verwendet, die eine bekannte Schwachstelle aufweist, vehement ablehnen.

Ein detailliertes SBOM zusammenzustellen ist nicht ’ eine Fünf-Minuten-Aufgabe. Aber es muss genau und ausreichend detailliert sein, sonst wird es seinen Zweck nicht erfüllen. Als Mindestgrundlage sollte eine SBOM für jede Softwarekomponente in einem Softwareprojekt Folgendes enthalten:

  • Lieferantenname: Der Hersteller oder die Personen, die die Software geschrieben haben.
  • Name der Komponente: Der Name der Komponente.
  • Eindeutige Kennung: Eine universell eindeutige Kennung (UUID).
  • Versionszeichenfolge: Die Build- und Versionsdetails der Komponente.
  • Komponenten-Hash : Ein kryptografischer Hash der Komponente. Auf diese Weise kann ein Empfänger bei Verdacht überprüfen, ob eine Binärdatei, die ihm zur Verfügung gestellt wurde, geändert wurde.
  • Beziehung: Die Beziehung zwischen Softwarekomponenten beschreibt die Abhängigkeiten zwischen Komponenten und welche Komponenten kompiliert und mit anderen Komponenten verknüpft wurden.
  • Lizenzierung: Die Art der Lizenz, unter der die Softwarekomponente freigegeben wird .
  • Name des Autors: Der Autor des SBOM. Dies ist nicht unbedingt der Softwarelieferant.

Um eine breite Akzeptanz von SBOMs zu erreichen, muss es einen Standard geben, der die Datenformate, den Dateninhalt und die akzeptierten Prozesse und Normen definiert. Dies wird wahrscheinlich als Teil der Leitlinien erscheinen, deren Erstellung die Durchführungsverordnung beantragt hat.

Es gibt mehrere konkurrierende SBOM-Standards. Die drei Spitzenreiter in diesem Bereich sind Software Package Data Exchange (SPDX), der ISO-Standard 19770-5:2013 Software Identification (SWID) und CycloneDX. Es wird interessant sein zu sehen, ob einer davon von der Bundesregierung als bevorzugter Standard übernommen wird.

Automatisierung kann helfen

RELATEDWas ist Typosquatting und wie? Verwenden Betrüger es?

Mehrere Werkzeugklassen können bei der Erstellung und Verwendung von SBOMs helfen. Es sind Softwarepakete verfügbar, die Projekte scannen, Abhängigkeiten bestimmen und SBOMs generieren können oder fast vollständige SBOMs, in die Sie einige Details zur Endbearbeitung einfügen können.

SBOMs werden wahrscheinlich entweder als Downloads oder als Teil des Softwarepakets zur Verfügung gestellt, ähnlich einer “Readme” Datei. Sobald Sie im Besitz der SBOM einer anderen Person sind, müssen Sie sie überprüfen.

Das wird einige Zeit dauern. Jede Komponente muss überprüft werden, um sicherzustellen, dass sie gemäß den von Ihrer Organisation festgelegten Kriterien zulässig ist und dass die Lizenzierung jeder Komponente keine Konflikte für Sie verursacht.

< p>Software ist verfügbar, die diese Prüfungen für Sie durchführen kann. Die umfassendsten Pakete listen die bekannten Schwachstellen für jede Komponente und den Schweregrad dieser Schwachstellen auf.

Sicherheit beginnt mit Wissen

Die Herkunft von Softwarepaketen und all ihren Komponenten wird für Softwarekonsumenten zu einem wichtigen Werkzeug für die Bewertung und Beschaffungsentscheidungen. Es wird auch ein Unterscheidungsmerkmal für Softwareanbieter und -hersteller sein, unabhängig davon, ob sie Software für andere Entwickler oder für Endbenutzer erstellen.