Original-URL des Artikels: https://www.golem.de/news/event-stream-populaeres-npm-paket-verteilt-schadsoftware-1811-137935.html    Veröffentlicht: 27.11.2018 13:30    Kurz-URL: https://glm.io/137935

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.  (hab)


Verwandte Artikel:
Error 418: NPM liefert Fehler "Ich bin eine Teekanne" und bricht ab   
(29.05.2018, https://glm.io/134645 )
Javascript: Node.js- und JS-Foundation wollen Zusammenschluss   
(05.10.2018, https://glm.io/136951 )
Initiative Q: Gehen Sie nicht über Los, ziehen Sie keine Q ein!   
(15.11.2018, https://glm.io/137717 )
BSI-Richtlinie: CCC und OpenWRT kritisieren Router-TR als "Farce"   
(19.11.2018, https://glm.io/137796 )
BSI-Richtlinie: Routerhersteller müssen Support-Ende nicht auf Gerät drucken   
(16.11.2018, https://glm.io/137119 )

© 1997–2019 Golem.de, https://www.golem.de/