Warum Entwickler ihren eigenen Code sabotieren – TechCrunch

Warum Entwickler ihren eigenen Code sabotieren – BesteFuhrer

Wenn Angriffe bekämpft werden und Entführungen legitimer Software in Open-Source-Registern wie npm nicht herausfordernd genug waren, erleben App-Hersteller zunehmend die Folgen von Software-Selbstsabotage. Ein Entwickler kann aus einer Laune heraus seine Meinung ändern und mit seinem Open-Source-Code machen, was er will, der meistens sowieso „wie er ist“ ohne jegliche Garantie kommt. Oder, wie ein zunehmender Trend in diesem Jahr zeigt, sabotieren Entwickler absichtlich ihre eigenen Softwarebibliotheken aus Protest – indem sie Software in „Protestware“ verwandeln.

Im Juli, der Entwickler des weit verbreiteten Atomicwrites Die Python-Bibliothek Markus Unterwaditzer löschte vorübergehend seinen Code aus der beliebten Code-Registrierung PyPI, nachdem die Website angekündigt hatte, dass sie eine Zwei-Faktor-Authentifizierung für Betreuer von „kritischen Projekten“ vorschreiben würde – Projekte, die zu den oberen 1 % aller Downloads in der Registrierung gehörten. Unterwaditzers Atomicwrites Das Projekt entsprach den Kriterien und sein Konto musste für die Zwei-Faktor-Authentifizierung angemeldet werden, was er in einem Beitrag als „einen lästigen und berechtigten Schritt beschrieb, um die SOC2-Konformität für eine Handvoll Unternehmen zu gewährleisten (auf Kosten meiner Freizeit )“, die sich auf seinen Code verlassen.

Einige verglichen dies mit dem Vorfall im linken Pad von 2016, der kurzzeitig einen großen Teil des Internets zerstörte, nachdem der Entwickler des Projekts aus Protest seinen weit verbreiteten Code gelöscht hatte. Entwickler Azer Koçulu geriet in einen Markenrechtsstreit mit der Messaging-App Kik, weil sein npm-Paket „kik“ hieß. Nachdem sich npm im Streit auf die Seite von Kik gestellt hatte, zog Koçulu seinen gesamten Code zurück – insgesamt 273 Module, einschließlich der äußerst beliebten linkes Pad Bibliothek – aus der npm-Registrierung. Es lag völlig in seiner Macht, aber es verursachte sofort Probleme. Zu der Zeit war die massiv beliebt linkes Pad Das Paket hatte mehr als 15 Millionen Downloads gescheitert, und auch heute noch wird die Bibliothek wöchentlich millionenfach heruntergeladen. Daher waren Entwickler auf der ganzen Welt im März 2016 verwirrt – und entsetzt – als ihre Projekte scheiterten, weil die linkes Pad Komponenten, auf die sich ihre Anwendungen stützten, konnten nicht mehr gefunden werden.

Was vor Jahren wie ein isolierter Protest ausgesehen haben mag, wurde 2022 von Entwicklern wiederbelebt, die ihre eigenen Bibliotheken sabotierten – manchmal, um sich gegen große Unternehmen auszusprechen, aber in jüngerer Zeit, um gegen Russlands Invasion in der Ukraine zu protestieren.

Der jüngste Aufstieg von Protestware

Eine Woche im Jahr 2022, Tausende von Anwendungen, die auf die stark genutzten npm-Projekte angewiesen sind Farben und Schwindler brach und begann, Kauderwelsch-Text auf den Bildschirmen der Benutzer zu drucken. Es war kein böswilliger Akteur, der diese legitimen Bibliotheken kaperte und veränderte. Es stellte sich heraus, dass der Entwickler des Projekts, Mark Squires, seine eigene Arbeit absichtlich korrumpiert hatte, um eine Protestbotschaft an große Unternehmen zu senden.

Der Protest von Squires wurde durch die Sicherheitslücke von Log4Shell ausgelöst, die die Betreuer des Log4j-Projekts, meist Open-Source-Freiwillige, mit dem Patchen der kritischen Schwachstelle über die Dezemberferien belastete. Squires hatte zuvor seine Frustration darüber zum Ausdruck gebracht, dass Fortune-500-Unternehmen seinen Open-Source-Code kostenlos verwenden, ohne finanzielle Unterstützung anzubieten oder deren Wartung zu sponsern. Die Schwachstelle von Log4Shell hat dieses Gefühl nur verstärkt – dass die Unternehmen, die sich in ihren Anwendungen allgegenwärtig auf Log4j verlassen, nicht genug getan haben, um die unbezahlten Freiwilligen zu unterstützen, die diese kritischen Projekte in ihrer Freizeit unterstützen.

Während der Protest von Squires nur kurzzeitig Projekte einfror, die auf die Farben Library folgte Monate später ein ganzer Protestware-Trend, bei dem Entwickler ihre eigenen Projekte sabotierten, denen sie Hunderte von Stunden gewidmet hatten, um sich gegen Russlands Krieg in der Ukraine zu wehren.

Im März 2022, Wochen nachdem russische Truppen ukrainisches Territorium überquert hatten, startete das beliebte npm-Projekt Knoten-IPC – jede Woche über eine Million Mal heruntergeladen – begann, die Maschinen mutmaßlicher russischer und weißrussischer Entwickler zu löschen. Der Entwickler des Projekts, Brandon Nozaki Miller, soll den Code sabotiert haben, um die Computer zu beschädigen, auf denen er installiert war. Unnötig zu erwähnen, dass die sabotierten Versionen von Knoten-IPC – jetzt effektiv Malware – wurden aus der npm-Registrierung entfernt.

Seitdem hat sich das Protestware-Thema zu Entwicklern entwickelt, die sich friedlicheren Protesten hingeben. Neuere Versionen von Open-Source-Projekten wie Ereignisquelle-Polyfill, es5-extund gestylte Komponenten Zeigen Sie einfach eine Nachricht an, die in Russland ansässige Benutzer auffordert, Maßnahmen gegen den Krieg zu ergreifen. Daher verbleiben diese Versionen auf npm, da sie nicht gegen die Richtlinien der Registrierung verstoßen.

Die Veröffentlichung von Protestware dürfte auch für den Entwickler keine leichte Entscheidung sein. Es erfordert eine zusätzliche Überprüfung aller Versionen des sabotierten Projekts und kann das Vertrauen der Community in den Entwickler beeinträchtigen. Kann man irgendeiner Software, die sie geschrieben haben, ob in der Vergangenheit oder in der Zukunft, jemals wieder vertrauen?

Evan Jacobseiner der Hauptbetreuer dahinter gestylte Komponenten, sagte gegenüber BesteFuhrer, dass sein Projekt eine Geschichte des Aktivismus habe, „vor allem unsere Unterstützung der [Black Lives Matter] Bewegung und Empfehlung an unsere Nutzer, Spenden an die Equal Justice Initiative in Erwägung zu ziehen.“ Er fügte hinzu: „Ich hatte gehört, dass die russische Regierung anfing, westliche Nachrichten-Websites zu zensieren, und erkannte, dass wir eine einzigartige Gelegenheit hatten, eine prägnante, informative Nachricht über einen atypischen Kanal zu übermitteln: unsere npm-Paketinstallationen.“

Ein Screenshot des nestjs-pino-Projekts auf npm, das ein Foto der Ukraine während des Krieges mit der Bildunterschrift zeigt: "Krieg in der Ukraine Kinder warten in einem Luftschutzkeller in Mariupol, Ukraine."

Ein Screenshot des nestjs-pino-Projekts auf npm, das prominent ein Foto von Kindern zeigt, die in einem Luftschutzbunker in Mariupol, Ukraine, warten. Bildnachweis: BesteFuhrer / Bildschirmfoto.

Jacobs hielt es für entscheidend, dass die Russen genaue Nachrichten über den Krieg erhalten, die frei von staatlicher Einmischung sind. Er hat modifiziert gestylte Komponentendas im April mehr als 15 Millionen monatliche Downloads hatte, um eine zweisprachige Nachricht für in Russland ansässige Benutzer anzuzeigen, die die „vielen Gräueltaten, die von der russischen Armee in der Ukraine begangen werden“, zusammenfasst.

„Hat es Wirkung gezeigt? Wir werden es wahrscheinlich nie erfahren“, sagte Jacobs. „Davon abgesehen denke ich, dass es die Chance absolut wert war, Informationen zu verbreiten und hoffentlich die Aufmerksamkeit von Software-Leuten in Russland zu erregen, die sonst vielleicht nicht gesehen hätten, was passiert.“

Ein anderer Entwickler, Mariusz Nowak, der Schöpfer des es5-ext Projekt, modifizierte spätere Versionen der Bibliothek, um in Russland und Weißrussland ansässige Benutzer zu genauen Nachrichtenquellen wie dem Tor-Dienst der BBC zu leiten. Nowak sagte gegenüber BesteFuhrer über die Entscheidung, den Code zu ändern, und sagte, dies liege daran, dass die Russen „nicht genau wissen, was vor sich geht, und dass sie unter dem Einfluss ihrer Propagandamedien stehen“, und bezog sich dabei auf die strenge staatliche Kontrolle über die russischen Medien. „Diese Meldung wird nur angezeigt, wenn Sie Software in Russland installieren, sie ist für andere Teile der Welt nicht wirklich sichtbar“, sagte Nowak.

Nowak sagte, die Verwendung seiner Open-Source-Bibliothek für Aktivismus habe seine Glaubwürdigkeit in der breiteren Community nicht beeinträchtigt, aber er habe zu Beginn eine Handvoll wütender Reaktionen erhalten.

Jacobs und Nowak sind nicht die Einzigen, die ihren Open-Source-Code umrüsten, um gegen den Krieg zu protestieren. Das Software-Supply-Chain-Sicherheits-Startup Socket sagte gegenüber BesteFuhrer nestjs-pino, ein beliebtes npm-Projekt mit über 100.000 wöchentlichen Downloads, hat seine Haupt-Readme-Datei aktualisiert, um die Aufmerksamkeit auf die anhaltende Krise in der Ukraine zu lenken. Ein mit dem Paket gebündeltes Installationsskript gibt außerdem eine Konsolennachricht aus, sobald es installiert wird.

„Man kann nicht vertrauen, was man nicht verifizieren kann“

Open-Source-Entwickler entdecken neue und kreative Wege, die sie nicht länger darauf beschränken, neue Funktionen für ihre Projekte zu implementieren, sondern ihre Ansichten zu größeren sozialen Angelegenheiten aktiv zum Ausdruck zu bringen, indem sie ihre Projekte für einen guten Zweck modifizieren. Und im Gegensatz zu proprietärem Code, der den Erwartungen eines zahlenden Kunden entsprechen muss, sind die meisten Open-Source-Lizenzen ziemlich freizügig – sowohl für den Verbraucher als auch für den Entwickler – und bieten ihren Code mit Lizenzen an, die keine Garantie dafür bieten, was ein Entwickler nicht erwartet nie mit ihrem Code zu tun haben und niemals tun werden, was Protestware zu einer Grauzone für Verteidiger macht.

Tatsächlich habe ich als Sicherheitsforscher bei Sonatype beobachtet, wie Protestware in der Anfangsphase eine Herausforderung für uns darstellte und wie wir unsere automatisierten Malware-Erkennungsalgorithmen optimierten, um jetzt mit Projekten wie Selbstsabotage zu fangen Farben und Schwindler. Traditionell wurde das System entwickelt, um Typosquatting-Malware zu erkennen, die in Open-Source-Repositories hochgeladen wurde, aber Fälle wie böswillige Entführungen oder Entwickler, die ihre eigenen Bibliotheken ohne Vorwarnung ändern, erforderten ein tieferes Verständnis der Feinheiten der Funktionsweise von Protestware.

Das Thema hat auch große Open-Source-Registries wie npm – im Besitz von GitHub, einer Microsoft-Tochter – an einen Scheideweg gebracht, wenn es darum geht, mit diesen Randfällen umzugehen.

Der Gründer von Socket, Feross Aboukhadijeh, sagte gegenüber BesteFuhrer, dass Registrierungsstellen wie GitHub in einer schwierigen Position sind. „Auf der einen Seite wollen sie das Recht der Betreuer auf freie Meinungsäußerung und die Möglichkeit unterstützen, ihre Plattform zu nutzen, um die Anliegen zu unterstützen, an die sie glauben. Aber auf der anderen Seite ist GitHub gegenüber npm-Benutzern dafür verantwortlich, diesen bösartigen Code sicherzustellen wird nicht von npm-Servern bereitgestellt. Das ist manchmal ein schwieriger Balanceakt“, sagte Aboukhadijeh.

Eine einfache Lösung, um sicherzustellen, dass Sie nur geprüfte Versionen einer Komponente in Ihrem Build erhalten, besteht darin, Ihre npm-Abhängigkeitsversionen anzuheften. Selbst wenn zukünftige Versionen eines Projekts sabotiert oder entführt werden, verwendet Ihr Build auf diese Weise weiterhin die „gepinnte“ Version, anstatt die neueste, verdorbene Version abzurufen. Dies ist jedoch möglicherweise nicht immer eine effektive Strategie für alle Ökosysteme, wie PyPI, wo vorhandene Versionen einer Komponente erneut veröffentlicht werden können – wie wir im Fall der Entführung von gesehen haben ctx PyPI-Projekt.

„Das Gespräch über ‚Protestware’ ist eigentlich ein Gespräch über die Sicherheit der Softwarelieferkette. Sie können nicht vertrauen, was Sie nicht überprüfen können“, sagte Dan Lorenc, Mitbegründer und Geschäftsführer von Chainguard, einem Startup, das sich auf die Sicherheit von Softwarelieferketten spezialisiert hat, gegenüber BesteFuhrer.

Lorencs Rat gegen die Verhinderung von Protestware lautet: Befolgen Sie eine gute Open-Source-Sicherheitshygiene und Best Practices, die Entwicklern helfen können, Protestware einfacher und frühzeitiger zu entwickeln. „Ihre Abhängigkeiten zu kennen und zu verstehen, regelmäßige Scans und Audits des Open-Source-Codes durchzuführen, den Sie in Ihren Umgebungen verwenden, ist ein Anfang.“

Aber Lorenc warnt davor, dass die Debatte über Protestware Nachahmer anziehen könnte, die zu dem Problem beitragen und Verteidiger von Open-Source-Software davon abhalten könnten, sich darauf zu konzentrieren, was wirklich wichtig ist – böswillige Akteure in Schach zu halten. Und bei Protestware bleiben unbekannte Unbekannte. Welches Problem ist zu klein – oder zu groß – für Protestware?

Während niemand praktisch vorschreiben kann, was ein Open-Source-Entwickler mit seinem Code machen kann, ist es eine Macht, die Entwickler schon immer besessen haben, aber jetzt erst anfangen, sich diese zunutze zu machen.

tekken 3 download for pc

Leave a Comment

Your email address will not be published.