Der Name klingt wie der eines bekannten Pakets, in Wahrheit aber enthält die Mogelpackung gefährliche Malware. Häufig setzen Angreifer darauf, dass der Anwender den Unterschied von wenigen Buchstaben überliest. So segeln sie unter falscher Flagge.
NPM, ein weitverbreiteter Paketmanager für die Javascript-Laufzeitumgebung Node.js, besteht aus einem Kommandozeilentool (»npm«) und einer Online-Datenbank für öffentliche und kostenpflichtige Pakete (NPM-Registry). Pakete selbst sind in der Registry im CommonFS-Format hinterlegt. Das umfasst zusätzlich auch Metadaten zur Beschreibung des Pakets im JSON-Format. Die Registry-Datenbank enthält allerdings keine Sicherheitsüberprüfung für submittierte Pakete. Deshalb lässt sich weder die Qualität noch die Sicherheit und Integrität von Paketen in der Datenbank gewährleisten. Stattdessen verlässt sich NPM auf Benutzer-Feedback und Berichte, um fehlerhafte oder gar schädliche Pakete zu identifizieren und dann unter Umständen zu entfernen. In der NPM-Version 6 wurde zu diesem Zweck noch ein Audit-Feature in den Paketmanager eingebaut, mit dem sich Korrekturen und Sicherheitspatches von Paketen einspielen lassen.
Am 30. Oktober hat Sonatype ein NPM-Paket in der Registry-Datenbank entdeckt, das Schadcode enthält und einem entfernten Angreifer Attacken gegen das betroffene System ermöglicht [1]. Das Paket verwendet den Firmennamen Twilio für Brandjacking. Beim Brandjacking nutzen Angreifer Paketnamen, die auf ein dem Anwender vertrautes Paket hindeuten und ihn dann dazu bewegen, die Sicherheit und Integrität des Pakets nicht zu hinterfragen. Solche Brandjacking-Attacken sind verbreitet und verführen Anwender immer wieder dazu, Software ohne genaue Prüfung zu installieren.
Der exakte Name des nun gefundenen schädlichen Pakets lautet twilio-npm und täuscht damit vor, dass es sich um Software von der Cloud-Kommunikationsplattform der Firma Twilio handelt. Das offizielle Paket von Twilio heißt allerdings twilio-node und ist in der aktuellen Version 3.5 verfügbar. Ein aufmerksamer Anwender erkennt in der öffentlich einsehbaren NPM-Statistik schon an der Zahl der Downloads, dass es sich bei Letzterem um ein offizielles Paket handelt: Es wird pro Woche momentan fast 500 000 Mal heruntergeladen. Das Brandjacking-Paket twilio-npm wies deutlich weniger Downloads auf, nämlich nur wenige Hundert. Bei solch niedrigen Download-Zahlen sollten beim Benutzer die Alarmglocken läuten.
Insgesamt sind drei verschiedene Versionen von twilio-npm kürzlich in der NPM-Datenbank veröffentlicht worden: 1.0.0, 1.0.1 und 1.0.2. Die erste Version besteht allerdings nur aus einer Manifestdatei »package.json«, die via Curl eine Ressource aus einer Subdomain des Ngrok-Anbieters lädt. Diese Version lässt sich nicht für eine Attacke verwenden. Beim Ausführen kommt es lediglich zu einer harmlosen Fehlermeldung der Applikation, weitere Aktionen unterbleiben.
Die beiden anderen Versionen, 1.0.1 und 1.0.2, sind jedoch sicherheitskritisch und können erheblichen Schaden verursachen. Sie ersetzen das Postinstall-Skript zum Zugriff auf den Ngrok-Server durch eine Reverse Shell zu einem externen Server (»4.tcp.ngrok.io:11425«). Dadurch öffnet das Paket eine Backdoor, die es einem entfernten Angreifer erlaubt, Befehle auf dem System auszuführen. Der Angreifer kann über die Reverse Shell auch problemlos NATs und Firewalls überwinden.
Das Paket wurde kurz nach seiner Entdeckung aus der Paketdatenbank entfernt. Neben solchen Brandjacking-Attacken kommen auch häufiger Typosquatting- und Social-Engineering-Attacken vor. Bei Typosquatting handelt es sich um das gezielte Ausnutzen von Tippfehlern in Paketnamen – solche Attacken gibt es häufig auch bei Webadressen. Grundsätzlich treten derartige Probleme und Attacken bei vielen Paketmanagementsystemen auf. (jcb/jlu)
Infos
- Meldung zum Schadpaket: https://blog.sonatype.com/twilio-npm-is-brandjacking-malware-in-disguise






