Eine bösartige Software wurde im npm-Register entdeckt, die einen raffinierten Remote Access Trojaner auf kompromittierten Windows-Maschinen platziert. Das Paket mit dem Namen „oscompatible“ wurde am 9. Januar 2024 veröffentlicht und wurde insgesamt 380 Mal heruntergeladen, bevor es entfernt wurde. „oscompatible“ enthielt laut der Sicherheitsfirma Phylum „ein paar seltsame Binärdateien“, darunter eine ausführbare Datei, eine DLL-Datei und eine verschlüsselte DAT-Datei, sowie eine JavaScript-Datei.

Diese JavaScript-Datei („index.js“) führt ein Batch-Skript namens „autorun.bat“ aus, allerdings nur nachdem es einen Kompatibilitätstest durchgeführt hat, um festzustellen, ob die Zielmaschine mit Microsoft Windows läuft. Wenn das Betriebssystem nicht Windows ist, wird dem Benutzer eine Fehlermeldung angezeigt, dass das Skript auf Linux oder einem nicht erkannten Betriebssystem läuft, und er wird aufgefordert, es auf „Windows Server OS“ auszuführen. Das Batch-Skript überprüft seinerseits, ob es Administratorrechte hat, und führt, falls nicht, eine legitime Microsoft-Edge-Komponente namens „cookie_exporter.exe“ über einen PowerShell-Befehl aus.

Der Versuch, die Binärdatei auszuführen, löst eine User Account Control (UAC)-Aufforderung aus, in der der Benutzer aufgefordert wird, sie mit Administratorberechtigungen auszuführen. Dadurch startet die Angreifer die nächste Phase des Angriffs, indem sie die DLL („msedge.dll“) über eine Technik namens DLL Search Order Hijacking ausführt. Die manipulierte Version der Bibliothek ist darauf ausgelegt, die DAT-Datei („msedge.dat“) zu entschlüsseln und eine andere DLL namens „msedgedat.dll“ zu starten, die wiederum Verbindungen mit einer von den Angreifern kontrollierten Domain namens „kdark1[.]com“ herstellt, um ein ZIP-Archiv abzurufen.

Die ZIP-Datei enthält die Remote-Desktop-Software AnyDesk sowie einen Remote Access Trojaner („verify.dll“), der über WebSockets Anweisungen von einem Command-and-Control-Server empfangen und sensible Informationen vom Host sammeln kann. Er „installiert Chrome-Erweiterungen für sichere Einstellungen, konfiguriert AnyDesk, blendet den Bildschirm aus und deaktiviert das Herunterfahren von Windows und erfasst Tastatur- und Mausereignisse“, so Phylum.

Obwohl „oscompatible“ anscheinend das einzige npm-Modul ist, das im Rahmen der Kampagne verwendet wurde, ist diese Entwicklung erneut ein Zeichen dafür, dass Angreifer verstärkt Open-Source-Software-Ökosysteme für Supply-Chain-Angriffe ins Visier nehmen. „Von der Binärseite her betrachtet ist der Prozess des Entschlüsselns von Daten, die Verwendung eines ungültigen Zertifikats zur Signierung, das Abrufen anderer Dateien aus Remote-Quellen und der Versuch, sich entlang des gesamten Weges als Standard-Windows-Update-Prozess zu tarnen, im Vergleich zu dem, was wir normalerweise in Open-Source-Software-Ökosystemen sehen, relativ raffiniert“, so das Unternehmen.

Die Offenlegung erfolgt, während das Cloud-Sicherheitsunternehmen Aqua bekannt gab, dass 21,2 % der 50.000 meist heruntergeladenen npm-Pakete veraltet sind und Benutzer Sicherheitsrisiken ausgesetzt sind. Mit anderen Worten, die veralteten Pakete werden wöchentlich geschätzte 2,1 Milliarden Mal heruntergeladen. Dies umfasst archivierte und gelöschte GitHub-Repositorys, die mit den Paketen verbunden sind, sowie solche, die ohne sichtbares Repository, Commit-Historie und Fehlerverfolgung gepflegt werden. „Diese Situation wird kritisch, wenn die Entwickler statt Sicherheitslücken mit Patches oder CVE-Zuordnungen zu beheben, sich dafür entscheiden, betroffene Pakete zu veralten“, so die Sicherheitsforscher Ilay Goldman und Yakir Kadkoda. „Besonders besorgniserregend ist, dass diese Entwickler das Paket manchmal nicht offiziell als veraltet auf npm kennzeichnen, was eine Sicherheitslücke für Benutzer hinterlässt, die sich möglicher Bedrohungen nicht bewusst sind.“