event-stream: Populäres NPM-Paket verteilt Schadsoftware
Ein Entwickler des Javascript-Pakets event-stream interessierte sich nicht mehr für das Projekt und übergab die Entwicklung an eine unbekannte andere Person. Daraufhin wurde über das Modul Schadsoftware verteilt, die offenbar auf Bitcoin-Wallets abzielt.

Ein mit Schadsoftware versehenes Javascript-Paket zielt darauf ab, Nutzer der Bitcoin-Wallet-Software Copay zu bestehlen. Der Entwickler von event-stream hatte das Interesse an dem Paket verloren und die Kontrolle an eine unbekannte Person weitergegeben.
Die Javascript-Bibliothek event-stream kann über die Paketverwaltung NPM genutzt werden. Ein Nutzer der Bibliothek hatte festgestellt, dass das Paket an einen neuen Maintainer übergeben wurde und dieser eine verdächtige neue Abhängigkeit eingefügt hatte. Nachzuvollziehen ist das in einer Diskussion im Github-Bugtracker. Das Paket event-stream wird laut NPM knapp 2 Millionen Mal pro Woche heruntergeladen.
Demnach wurde das Paket von einem Entwickler mit dem Pseudonym Right9ctrl übernommen. Dieser fügte kurz darauf in einer neuen Version (3.3.6) von event-stream eine Abhängigkeit zu einem Paket namens flatmap-stream hinzu. Dieses Paket wiederum enthielt minimalisierten Javascript-Code, der nicht mit dem eigentlichen Code des Pakets übereinstimmte. In diesem minimalisierten Javascript fand sich der eigentliche Schadcode.
Entwickler hat Interesse am Paket verloren
Kurz darauf wurde eine neue Version 4.0.0 von event-stream veröffentlicht, die wiederum die Schadcode-Abhängigkeit nicht enthielt, offenbar um seine Spuren zu verwischen. Diese Situation führte dazu, dass alle Nutzer von event-stream, welche für ihre Pakete die Version 3 nutzten, die Schadsoftware einbanden.
Der ursprüngliche Entwickler von event-stream, Dominic Tarr, erklärte, dass er das Modul schon seit Jahren nicht mehr genutzt hatte. Der Nutzer Right9Ctrl habe ihm gemailt und angeboten, das Betreuen des Moduls zu übernehmen.
In der weiteren Diskussion analysierten einige Nutzer, was der Schadcode konkret tat. Aktiv wurde dieser nur, wenn er in einem Paket eingebunden war, das zur App Copay gehörte. Copay wiederum ist eine Software zur Verwaltung von Bitcoin-Wallets. Die Schadsoftware versuchte demnach, die privaten Schlüssel der Bitcoin-Nutzer zu klauen und schickte diese an den Server des Angreifers.
Der Hersteller der Copay-Software hat inzwischen eine Stellungnahme veröffentlicht. Demnach waren alle Versionen von 5.0.2 bis 5.1.0 von der Schadsoftware befallen. Nutzer, die diese installiert haben, sollten diese auf keinen Fall öffnen und auch davon ausgehen, dass ihre Keys bereits kompromittiert sind. Die Copay-Entwickler empfehlen, sofort ein Update auf die jüngste Version 5.2.0 durchzuführen und anschließend alle Bitcoins in ein neues Wallet zu transferieren.
Der ursprüngliche Autor von event-stream, Dominic Tarr, hat inzwischen eine Stellungnahme veröffentlicht. Er beschreibt darin die schwierige Situation, die Verantwortung für eine Software zu haben, für die er sich nicht mehr interessiert. Das Übergeben an andere Maintainer sei in der Community nicht unüblich. Für das konkrete Paket haben nun zwei andere, vertrauenswürdige Entwickler die Betreuung übernommen.
Probleme mit Abhängigkeiten in der NPM-Paketverwaltung gab es schon häufiger. Im Jahr 2016 entfernte ein Entwickler aus Verärgerung über einen Streit mit den NPM-Betreibern Hunderte seiner Pakete, darunter das besonders populäre left-pad, welches von Millionen anderer Pakete genutzt wurde. Im Juni dieses Jahres wurde Schadsoftware im Paket eslint-scope gefunden, der Account des Maintainers war gehackt worden.
Über tausend Abhängigkeiten keine Seltenheit in NPM
Im August 2017 wurden zahlreiche sogenannte Typosquatting-Pakete in NPM gefunden. Dabei versuchten Angreifer, Pakete mit Namen hochzuladen, die bestehenden, populären Paketen sehr ähnlich sind. Ähnliche Angriffe gab es auch mehrfach in der Python-Paketverwaltung PyPi.
Ein generelles Problem bei NPM ist, dass die Pakete oft extrem viele Abhängigkeiten haben. So weist auf Twitter ein Entwickler darauf hin, dass das von Facebook entwickelte Paket create-react-app insgesamt 1.770 indirekte Abhängigkeiten hat. Diese vielen Mikro-Abhängigkeiten sind natürlich ein enormes Sicherheitsrisiko.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Schießt das nicht am Thema vorbei? Als Entwickler werde ich auch mit Web Assembly...
Das trifft auch aif javascript zu. Warum aus der Vergangenheit lernen wenn man alle...
Uh, richtig! @Neuro-Chef: Danke! (-:
Ob man jetzt danach googelt oder npm install ausführt dürfte, ist doch der gleiche...