Die Geschichte über das Entfernen von drei schädlichen Paketen aus dem NPM-Repository, die den Code der UAParser.js-Bibliothek kopierten, nahm eine unerwartete Wendung – unbekannte Angreifer übernahmen die Kontrolle über das Konto des Autors des Projekts UAParser.js und veröffentlichten Updates, die Code zum Stehlen von Passwörtern und für das Mining von Kryptowährungen enthielten.
Das Problem ist, dass die Bibliothek UAParser.js, die Funktionen zur Analyse des HTTP-Headers User-Agent bietet, wöchentlich etwa 8 Millionen Downloads verzeichnet und als Abhängigkeit in mehr als 1200 Projekten verwendet wird. Es wird berichtet, dass UAParser.js in Projekten von Unternehmen wie Microsoft, Amazon, Facebook, Slack, Discord, Mozilla, Apple, ProtonMail, Autodesk, Reddit, Vimeo, Uber, Dell, IBM, Siemens, Oracle, HP und Verison eingesetzt wird.
Der Angriff wurde durch den Hack des Kontos des Entwicklers des Projekts durchgeführt, der etwas nicht stimmte, nachdem eine ungewöhnliche Welle von Spam in seinem Posteingang eingegangen war. Wie genau das Konto des Entwicklers gehackt wurde, wird nicht bekannt gegeben. Die Angreifer erstellten die Releases 0.7.29, 0.8.0 und 1.0.0 und fügte schädlichen Code ein. Innerhalb weniger Stunden erlangten die Entwickler die Kontrolle über das Projekt zurück und erstellten die Updates 0.7.30, 0.8.1 und 1.0.1 zur Behebung des Problems. Die schädlichen Versionen wurden nur als Pakete im NPM-Repository veröffentlicht. Das Git-Repository des Projekts auf GitHub blieb unbeschadet. Allen Benutzern, die die problematischen Versionen installiert hatten, wird geraten, das System als kompromittiert zu betrachten, wenn in Linux/macos die Datei jsextension und in Windows die Dateien jsextension.exe und create.dll gefunden werden.
Die hinzugefügten schädlichen Änderungen ähnelten Änderungen, die zuvor in Klonen von UAParser.js vorgeschlagen wurden, die anscheinend für Tests der Funktionalität vor dem Durchführung eines umfassenden Angriffs auf das Hauptprojekt veröffentlicht wurden. Auf das System des Benutzers wurde von einem externen Host die ausführbare Datei jsextension geladen und ausgeführt, die je nach Plattform des Benutzers ausgewählt wurde und die Arbeit in Linux, macOS und Windows unterstützte. Für die Windows-Plattform wurde zusätzlich zum Programm für das Mining von Kryptowährungen Monero (der XMRig-Miner wurde verwendet) auch die Bibliothek create.dll von den Angreifern bereitgestellt, um Passwörter abzufangen und an einen externen Host zu senden.
Der Code zum Hochladen wurde in die Datei preinstall.sh aufgenommen, in der folgende Zeile hinzugefügt wurde: IP=$(curl -k https://freegeoip.app/xml/ | grep 'RU|UA|BY|KZ') if [ -z "$IP" ] … Hochladen und Ausführen der ausführbaren Datei fi
Wie aus dem Code ersichtlich ist, hat das Skript zunächst die IP-Adresse im Dienst freegeoip.app überprüft und die schädliche Anwendung nicht für Nutzer aus Russland, der Ukraine, Weißrussland und Kasachstan gestartet.
Quelle: opennet.ru
