Dependency Issues: Solving the World’s Open-Source Software Security Problem

Die Idee eines einsamen Programmierers, der sich auf sein eigenes Genie und seinen technischen Scharfsinn verlässt, um das nächste großartige Stück Software zu entwickeln, war immer eine Herausforderung. Heute ist es mehr denn je ein Mythos. Wettbewerbsfähige Marktkräfte bedeuten, dass sich Softwareentwickler auf Code verlassen müssen, der von einer unbekannten Anzahl anderer Programmierer erstellt wurde. Infolgedessen stellt man sich die meiste Software am besten als Bricolage vor – verschiedene, normalerweise Open-Source-Komponenten, die oft als Abhängigkeiten bezeichnet werden und mit benutzerdefinierten Codeteilen zu einer neuen Anwendung zusammengefügt werden.

Dieses Software-Engineering-Paradigma – Programmierer verwenden Open-Source-Softwarekomponenten wieder, anstatt wiederholt die Bemühungen anderer zu duplizieren – hat zu massiven wirtschaftlichen Gewinnen geführt. Laut der besten verfügbaren Analyse machen Open-Source-Komponenten mittlerweile 90 Prozent der meisten Softwareanwendungen aus. Und die Liste der wirtschaftlich wichtigen und weit verbreiteten Open-Source-Komponenten – Googles Deep-Learning-Framework TensorFlow oder der von Facebook gesponserte Konkurrent PyTorch, die allgegenwärtige Verschlüsselungsbibliothek OpenSSL oder die Container-Management-Software Kubernetes – ist lang und wird immer länger. Auch das Militär und die Geheimdienste sind auf Open-Source-Software angewiesen: Programme wie Palantir sind für Operationen zur Terrorismusbekämpfung unverzichtbar geworden, während die F-35 Millionen von Codezeilen enthält.

Das Problem besteht darin, dass die Lieferkette von Open-Source-Software unbekannte, möglicherweise beabsichtigte Sicherheitslücken einführen kann. Eine frühere Analyse aller öffentlich gemeldeten Kompromittierungen in der Softwarelieferkette ergab, dass die meisten böswilligen Angriffe auf Open-Source-Software abzielten. Mit anderen Worten, Angriffe auf proprietäre Software wie SolarWinds, die Schlagzeilen machen, machen tatsächlich die Minderheit der Fälle aus. Infolgedessen ist es aufgrund der immensen Komplexität des modernen Software-Abhängigkeitsbaums jetzt schwierig, Angriffe zu stoppen: Komponenten, die von anderen Komponenten abhängen, die wiederum von anderen Komponenten abhängen Ad infinitum. Zu wissen, welche Schwachstellen in Ihrer Software vorhanden sind, ist für Softwareentwickler eine fast unmögliche Vollzeitaufgabe.

Glücklicherweise gibt es Hoffnung. Wir empfehlen drei Schritte, die Softwarehersteller und Regierungsbehörden unternehmen können, um Open-Source-Software sicherer zu machen. Erstens sollten Hersteller und Verbraucher Softwaretransparenz annehmen und ein überprüfbares Ökosystem schaffen, in dem Software nicht einfach nur mysteriöse Blobs sind, die über eine Netzwerkverbindung übertragen werden. Zweitens sollten Softwarehersteller und -verbraucher Softwareintegritäts- und -analysetools einsetzen, um ein fundiertes Risikomanagement in der Lieferkette zu ermöglichen. Drittens können staatliche Reformen dazu beitragen, die Anzahl und die Auswirkungen von Kompromittierungen bei Open-Source-Software zu verringern.

Der Weg in die Abhängigkeit

Herkömmliche Berichte über den Aufstieg wiederverwendbarer Softwarekomponenten datieren ihn oft in die 1960er Jahre. Softwareexperten wie Douglas McIlroy von Bell Laboratories hatten die enormen Kosten für die Entwicklung neuer Software festgestellt. Um die Aufgabe zu erleichtern, forderte McIlroy die Schaffung einer „Softwarekomponenten“-Unterindustrie für die Massenproduktion von Softwarekomponenten, die auf allen Maschinen, Benutzern und Anwendungen weit verbreitet sein würden – oder mit anderen Worten, genau das, was modernes Open Source ist Software liefert.

Als Open Source anfing, verschmolz es zunächst um technische Gemeinschaften, die für Aufsicht, etwas Management und Qualitätskontrolle sorgten. Beispielsweise wird Debian, das Linux-basierte Betriebssystem, von einem globalen Netzwerk von Open-Source-Softwareentwicklern unterstützt, die Standards darüber pflegen und implementieren, welche Softwarepakete Teil der Debian-Distribution werden und welche nicht. Aber diese relativ enge Aufsicht ist einem freizügigeren, wohl innovativeren System von Paketregistrierungen gewichen, die weitgehend nach Programmiersprachen organisiert sind. Stellen Sie sich diese Registrierungen als App-Stores für Softwareentwickler vor, die es dem Entwickler ermöglichen, kostenlose Open-Source-Komponenten herunterzuladen, aus denen er neue Anwendungen erstellen kann. Ein Beispiel ist der Python Package Index, eine Registrierung von Paketen für die Programmiersprache Python, die es jedem – vom idealistischen Freiwilligen über den Mitarbeiter eines Unternehmens bis hin zum böswilligen Programmierer – ermöglicht, Code darauf zu veröffentlichen. Die Anzahl dieser Registrierungen ist erstaunlich, und jetzt ist praktisch jeder Programmierer verpflichtet, sie zu verwenden.

Die Effektivität dieses Softwaremodells macht einen Großteil der Gesellschaft von Open-Source-Software abhängig. Open-Source-Befürworter verteidigen das aktuelle System schnell, indem sie sich auf Linus’ Gesetz berufen: „Wenn man genug Augen hat, sind alle Fehler oberflächlich.“ Das heißt, da der Software-Quellcode kostenlos eingesehen werden kann, werden Softwareentwickler, die Code online bearbeiten und teilen, Probleme finden, bevor sie die Gesellschaft betreffen, und folglich sollte sich die Gesellschaft wegen ihrer Abhängigkeit von Open-Source-Software wegen dieser unsichtbaren Armee nicht zu viele Sorgen machen wird es beschützen. Das mag, wenn Sie die Augen zusammenkneifen, 1993 zugetroffen haben. Aber seitdem hat sich viel verändert. Im Jahr 2022, wenn Hunderte Millionen neuer Zeilen Open-Source-Code geschrieben werden, gibt es zu wenige Augen und Fehler werden tief sein. Aus diesem Grund dauerte es im August 2018 zwei volle Monate, bis entdeckt wurde, dass ein Kryptowährung stehlender Code in eine Software geschmuggelt wurde, die über 7 Millionen Mal heruntergeladen wurde.

Event-Stream

Die Geschichte begann, als Entwickler Dominic Tarr die Veröffentlichungsrechte eines Open-Source-JavaScript-Pakets namens „Event-Stream“ an eine andere Partei übertrug, die nur unter dem Handle „right9ctrl“ bekannt ist. Die Übertragung erfolgte auf GitHub, einer beliebten Code-Hosting-Plattform, die von zig Millionen Softwareentwicklern frequentiert wird. User right9ctrl hatte angeboten, den Event-Stream zu warten, der zu diesem Zeitpunkt fast zwei Millionen Mal pro Woche heruntergeladen wurde. Tarrs Entscheidung war vernünftig und unauffällig. Er hatte diese Open-Source-Software kostenlos unter einer freizügigen Lizenz erstellt – die Software wurde so bereitgestellt, wie sie ist –, aber sie selbst nicht mehr verwendet. Er pflegte auch bereits mehrere hundert Teile anderer Open-Source-Software ohne Entschädigung. Als also right9ctrl, wer auch immer das war, die Kontrolle anforderte, gewährte Tarr der Bitte.

Die Übertragung der Kontrolle über eine Open-Source-Software an eine andere Partei geschieht ständig ohne Konsequenzen. Aber dieses Mal gab es eine bösartige Wendung. Nachdem Tarr die Kontrolle übertragen hatte, fügte right9ctrl eine neue Komponente hinzu, die versuchte, Bitcoins vom Computer des Opfers zu stehlen. Millionen und Abermillionen von Computern haben dieses bösartige Softwarepaket heruntergeladen, bis Entwickler Jayden Seric im Oktober 2018 eine Anomalie bemerkte.

Event-Stream war einfach der Kanarienvogel in der Code-Mine. In den letzten Jahren haben Computersicherheitsforscher Angreifer mit einer Reihe neuer Techniken ausfindig gemacht. Einige ahmen das Squatting von Domainnamen nach: Softwareentwickler, die einen Paketnamen falsch schreiben, dazu verleiten, bösartige Software herunterzuladen (dajngo vs. django). Andere Angriffe nutzen Fehlkonfigurationen von Softwaretools aus, die Entwickler dazu verleiten, Softwarepakete aus der falschen Paketregistrierung herunterzuladen. Die Häufigkeit und Schwere dieser Angriffe hat in den letzten zehn Jahren zugenommen. Und diese Zahlen beinhalten noch nicht einmal die wohl zahlreicheren Fälle von unbeabsichtigten Sicherheitslücken in Open-Source-Software. Zuletzt führte die unbeabsichtigte Schwachstelle des weit verbreiteten Softwarepakets log4j zu einem Gipfel im Weißen Haus zur Sicherheit von Open-Source-Software. Nachdem diese Schwachstelle entdeckt worden war, betitelte ein Journalist einen Artikel mit nur leichter Übertreibung: „Das Internet brennt“.

Der Drei-Stufen-Plan

Glücklicherweise gibt es mehrere Schritte, die Softwarehersteller und Verbraucher, einschließlich der US-Regierung, unternehmen können, die es der Gesellschaft ermöglichen würden, die Vorteile von Open-Source-Software zu nutzen und gleichzeitig diese Risiken zu minimieren. Der erste Schritt, der bereits vom US-Handelsministerium und auch von der Industrie unterstützt wird, besteht darin, Software transparent zu machen, damit sie bewertet und verstanden werden kann. Dies begann mit Bemühungen, die Verwendung einer Softwarestückliste zu fördern. Diese Rechnung ist eine vollständige Liste oder Bestandsaufnahme der Komponenten für eine Software. Mit dieser Liste wird es einfacher, Software nach möglicherweise gefährdeten Komponenten zu suchen.

Langfristig sollte diese Rechnung über eine einfache Liste von Komponenten hinausgehen und Informationen darüber enthalten, wer die Software geschrieben hat und wie sie erstellt wurde. Um eine Logik aus dem Alltag zu entlehnen, stellen Sie sich ein Lebensmittelprodukt mit klar spezifizierten, aber unbekannten und nicht analysierten Zutaten vor. Diese Liste ist ein guter Anfang, aber ohne weitere Analyse dieser Inhaltsstoffe werden die meisten Menschen bestehen. Einzelne Programmierer, Technologiegiganten und Bundesorganisationen sollten alle einen ähnlichen Ansatz für Softwarekomponenten verfolgen. Eine Möglichkeit, dies zu tun, wäre die Einführung von Supply-Chain-Ebenen für Software-Artefakte, eine Reihe von Richtlinien für den Manipulationsschutz der Software-Lieferketten von Organisationen.

Im nächsten Schritt entwickeln Softwaresicherheitsunternehmen und -forscher Tools, die erstens Software signieren und verifizieren und zweitens die Softwarelieferkette analysieren und es Softwareteams ermöglichen, fundierte Entscheidungen über Komponenten zu treffen. Das Sigstore-Projekt, eine Zusammenarbeit zwischen der Linux Foundation, Google und einer Reihe anderer Organisationen, ist eine solche Anstrengung, die sich auf die Verwendung digitaler Signaturen konzentriert, um die Überwachungskette für Open-Source-Software transparent und überprüfbar zu machen. Diese technischen Ansätze kommen dem digitalen Äquivalent eines manipulationssicheren Siegels gleich. Das Platform-One-Softwareteam des US-Verteidigungsministeriums hat bereits Elemente von Sigstore übernommen. Darüber hinaus könnte ein „Observatorium“ für die Software-Lieferkette helfen, das die weltweite Software-Lieferkette sammelt, kuratiert und analysiert, um Angriffen entgegenzuwirken. Ein Observatorium, das möglicherweise von einem Universitätskonsortium betrieben wird, könnte gleichzeitig dazu beitragen, die Verbreitung und den Schweregrad von Open-Source-Softwarekompromittierungen zu messen, die zugrunde liegenden Daten bereitzustellen, die eine Erkennung ermöglichen, und die Wirksamkeit verschiedener Lösungen quantitativ zu vergleichen. Das Software Heritage Dataset liefert die Keime für ein solches Observatorium. Regierungen sollten diese und andere ähnliche sicherheitsorientierte Initiativen unterstützen. Tech-Unternehmen können auch verschiedene „Ernährungslabel“-Projekte annehmen, die auf einen Blick einen Überblick über die „Gesundheit“ der Lieferkette eines Softwareprojekts bieten.

Diese relativ technischen Bemühungen würden jedoch von umfassenderen Regierungsreformen profitieren. Dies sollte mit der Festlegung der Anreizstruktur für die Identifizierung und Offenlegung von Open-Source-Schwachstellen beginnen. Beispielsweise erfordern „DeWitt-Klauseln“, die üblicherweise in Softwarelizenzen enthalten sind, die Zustimmung des Anbieters, bevor bestimmte Bewertungen der Sicherheit der Software veröffentlicht werden. Dies reduziert das Wissen der Gesellschaft darüber, welche Sicherheitspraktiken funktionieren und welche nicht. Der Gesetzgeber sollte einen Weg finden, diese wettbewerbswidrige Praxis zu verbieten. Das Heimatschutzministerium sollte auch die Einrichtung eines gemeinnützigen Fonds für Fehlerprämien für Open-Source-Software in Betracht ziehen, der Forscher für das Finden und Beheben solcher Fehler belohnt. Schließlich könnte, wie von der jüngsten Cyberspace Solarium Commission vorgeschlagen, ein Büro für Cyber-Statistiken Kompromittierungsdaten der Softwarelieferkette verfolgen und bewerten. Dies würde sicherstellen, dass interessierte Parteien nicht beim Erstellen doppelter, idiosynkratischer Datensätze festsitzen.

Ohne diese Reformen wird moderne Software Frankensteins Monster ähneln, einer plumpen Zusammenstellung verdächtiger Teile, die sich letztendlich gegen ihren Schöpfer wendet. Mit einer Reform können die US-Wirtschaft und die nationale Sicherheitsinfrastruktur jedoch weiterhin von der Dynamik und Effizienz profitieren, die durch Open-Source-Zusammenarbeit geschaffen werden.

John Speed ​​Meyers ist Security Data Scientist bei Kettenschutz. Zack Newman ist Senior Software Engineer bei Chainguard. Tom Pike ist Dekan der Oettinger School of Science and Technology an der National Intelligence University. Jacqueline Kazil ist Ingenieurin für angewandte Forschung bei Rebellion Defense. Wer sich für nationale Sicherheit und die Sicherheit von Open-Source-Software interessiert, kann sich auch auf der GitHub-Seite eines im Entstehen begriffenen Unternehmens informieren Open-Source-Software Nachbarschaftswache. Die in dieser Veröffentlichung geäußerten Ansichten sind die der Autoren und implizieren keine Billigung durch das Office of the Director of National Intelligence oder eine andere Institution, Organisation oder US-Regierungsbehörde.

Bild: Archivfoto

https://warontherocks.com/2022/05/dependency-issues-solving-the-worlds-open-source-software-security-problem/ Dependency Issues: Solving the World’s Open-Source Software Security Problem

Alley Einstein

USTimesPost.com is an automatic aggregator of the all world’s media. In each content, the hyperlink to the primary source is specified. All trademarks belong to their rightful owners, all materials to their authors. If you are the owner of the content and do not want us to publish your materials, please contact us by email – admin@ustimespost.com. The content will be deleted within 24 hours.

Related Articles

Back to top button