Datenschutz & Sicherheit
Großer Angriff auf node.js | heise online
Ein großer Angriff auf die Lieferkette für Softwarepakete für die weit verbreitete Javascript-Laufzeitumgebung node.js ist am Montag entdeckt worden. Der Angreifer hat über den Paketmanager npm (vormals Node Package Manager) verschleierten Schadcode in zahlreiche populäre Pakete eingeschleust. Es dürfte sich um den bislang größten erfolgreichen Angriff auf npm handeln.
Bekannt sind rund 20 betroffene Pakete aus dem Repertoire des Entwicklers qix, die in Summe mehr als zwei Milliarden mal pro Woche (!) heruntergeladen werden. Schon allein dadurch wirkt der Angriff auf weite Teile des node.js-Universums. Zudem gibt es einen unbestätigten Hinweis darauf, dass auch Pakete anderer Entwickler mit Malware verunreinigt worden sein könnten.
Die bislang entdeckte und untersuchte Malware manipuliert laut JD Staerk bestimmte Browser-Routinen, um Daten im Webbrowser des Opfers abzufangen und zu manipulieren. Das trifft sowohl klassischen Netzwerk-Verkehr als auch solchen von und zu Programmierschnittstellen (API). Zusätzlich werden Routinen in gegebenenfalls installierten Browsererweiterungen für Kryptowährungsportemonnaies (Wallets) verändert.
Kryptodiebstahl
Ziel des Angreifers ist offenbar der Diebstahl von Einheiten der Kryptowährungen Bitcoin (BTC), Bitcoin Cash (BCH), Ethereum (ETH), Litecoin (LTC), Solana (SOL) und Tron (TRX). Die Schadsoftware wartet auf Zeichenketten, die wie Wallet-Adressen aussehen, und ersetzt die legitimen Adressen durch andere Adressen, die mutmaßlich vom Angreifer kontrolliert werden.
Beauftragt das Opfer eine Überweisung über eine normale Webpage im Browser, ersetzt die Schadsoftware die Zieladresse durch eine falsche – aber nicht irgendeine, sondern eine, deren Zeichenkette optisch sehr ähnlich aussieht. Dazu bedient sich der Angreifer eines Algorithmus‘, der auf möglichst geringe Levenshtein-Distanz setzt. Das macht es menschlichen Augen schwer, die Unterschiede in der Zieladresse zu erkennen.
Nutzt das Opfer eine Wallet-Browsererweiterung, fängt der Schadcode die Überweisung vor der Signierung ab und ersetzt im Arbeitsspeicher die Adresse des Überweisungsempfängers. Die verfälschte Transaktion wird dann zwecks Genehmigung an das Wallet weitergereicht. Schaut der Nutzer nicht ganz genau hin, signiert er die betrügerische Überweisung.
Spearphishing
Der Entwickler qix (Josh Junon) hat den Vorfall bestätigt und sich sogleich an die Aufräumarbeiten gemacht. Am frühen Montagmorgen hatte er eine Aufforderung von support@npmjs.help
erhalten, seine Einstellungen für die Zwei-Faktor-Authentifizierung zu erneuern, weil sie schon zwölf Monate unverändert seien. Leider gibt es immer noch Online-Dienste, die periodische Passwortänderungen oder ähnliche Maßnahmen vorschreiben, obwohl das geltenden Sicherheitsrichtlinien wie der NIST SP 800-63B (Abschnitt 3.1.1.2) zuwiderläuft. Änderungen von Zugangsdaten sollen nur dann erzwungen werden, wenn es Grund zur Annahme gibt, dass die bisher genutzten Daten kompromittiert worden oder sie sonst unsicher sind, etwa weil Passwörter zu kurz sind.
Der Angreifer verband den „schockierend echt“ wirkenden Auftrag mit der Drohung, das npm-Konto werde sonst am Mittwoch stillgelegt. Junon gehorchte und die Falle schnappte zu. „Ich hätte besser aufpassen sollen, aber es ist mir durchgerutscht. Es tut mir wirklich leid, das ist peinlich“, verheimlicht der Entwickler das Malheur nicht.
Bekannte betroffene Pakete
Laut IT-Sicherheitsfirma Aikido sind jedenfalls diese Pakete betroffen:
ansi-regex
ansi-styles
backslash
chalk
chalk-template
color-convert
color-name
color-string
debug
error-ex
has-ansi
is-arrayish
simple-swizzle
slice-ansi
strip-ansi
supports-color
supports-hyperlinks
wrap-ansi
Socket.dev hat zusätzlich das Paket proto-tinker-wc
ausgemacht. Mehrere der Pakete verwaltet qix gemeinsam mit Sindre Sorhus, dem npm-Entwickler mit der größten Downloadzahl. Der Angreifer hat den verfälschten Paketen neueste Versionsnummern zugeteilt, um deren Verbreitung zu beschleunigen. Der Code wurde verschleiert, zudem sind laut Aikido unsichtbare Zeichen und Code in unterschiedlichen Laufrichtungen (von links nach rechts sowie von rechts nach links) enthalten, um die Analyse zu erschweren. Die bekannten Malware-Pakete sind inzwischen aus dem npm-Bestand entfernt worden. Es kann derzeit aber nicht ausgeschlossen werden, dass auch ältere Versionen infiziert worden sind, oder dass weitere Entwicklerkonten auf npm betroffen sind. Und natürlich dürften zahlreiche Systeme die infizierten Pakete bereits heruntergeladen und installiert haben.
(ds)