Auf npm sind kompromittierte Varianten des Pakets "rand-user-agent" aufgetaucht, die einen Remote-Access-Trojaner (RAT) an Bord hatten. Der Random User Agent ist zwar als veraltet gekennzeichnet, kommt aber nach wie vor auf gut 40.000 wöchentliche Downloads. Wer es in den vergangenen Wochen verwendet hat, könnte sich Schadcode eingefangen haben.
Das Paket generiert User-Agents-Strings, also Zeichenketten, die Clients wie Browser an einen Server schicken. Der Herausgeber des Pakets WebScrapingAPI nutzt es für das Web-Scraping. Es lässt sich aber auch für andere Zwecke wie automatisierte Tests oder Sicherheitschecks verwenden.
Die letzte offizielle Version 2.0.82 ist sieben Monate alt, und der Herausgeber WebScrapingAPI hat das Paket als deprecated (veraltet) gekennzeichnet. Das auf der npm-Seite verlinkte GitHub-Repository existiert inzwischen nicht mehr.
Das auf Supply-Chain-Security spezialisierte Unternehmen aikido hat jedoch später veröffentlichte Versionen des Pakets auf npm gefunden. Diese haben in der Datei dist/index.js Schadcode eingeführt, der in der Vorschau auf npm nicht auf Anhieb zu sehen und zudem mehrfach verschleiert war.
Der Code richtet einen verdeckten Kanal zur Kommunikation mit einem Command-and-Control-Server (C2) ein und installiert Module in einem Ordner namens .node_modules. Der Client schickt anschließend unter anderem eine ID und Informationen zum verwendeten Clientbetriebssystem an den Server.