Mastodon Mastodon Mastodon Mastodon

Maliziöse npm-Pakete missbrauchen PostCSS für Windows-RAT

Foto des Autors

CyberSecureFox Editorial Team

Veröffentlicht:

Forschende von JFrog haben drei bösartige npm-Pakete entdeckt — aes-decode-runner-pro, postcss-minify-selector und postcss-minify-selector-parser —, die sich als legitime Build-Werkzeuge tarnen und einen mehrstufigen Remote-Access-Trojaner (RAT) für Windows ausliefern. Die Pakete missbrauchen das Vertrauen von Entwicklern in das PostCSS-Ökosystem: Der Name postcss-minify-selector-parser imitiert postcss-selector-parser — eine legitime Bibliothek mit mehr als 127 Millionen wöchentlichen Downloads. Insgesamt wurden die schädlichen Pakete mehr als 1000 Mal heruntergeladen. Entwickler, die eines dieser Pakete installiert haben, müssen sie umgehend entfernen, Artefakte säubern und alle Zugangsdaten auf betroffenen Maschinen rotieren.

Angriffsmechanismus: von npm install bis zum vollwertigen RAT

Nach Angaben der Forschenden wurden alle drei Pakete im letzten Monat vom Benutzer abdrizak veröffentlicht. Die Pakete aes-decode-runner-pro und postcss-minify-selector-parser geben sich als Utilities für AES-Codierung aus und hängen vom legitimen postcss-selector-parser ab. Das Paket postcss-minify-selector wird als Minifier für CSS-Selektoren beworben und hängt von postcss-minify-selector-parser ab. Unabhängig davon, welches der drei Pakete installiert wird, führt die Angriffskette zur Bereitstellung derselben Malware.

Die Infektionskette besteht aus mehreren Stufen:

  1. JavaScript-Dropper, im Paket integriert, schreibt das PowerShell-Skript settings.ps1 auf die Festplatte und führt es aus.
  2. PowerShell-Loader lädt die nächste Stufe über curl.exe von dem externen Server nvidiadriver[.]net herunter.
  3. Das heruntergeladene ZIP-Archiv enthält die VBS-Datei update.vbs, eine Python-Laufzeitumgebung, den Loader loader.py und eine Reihe kompilierter Python-Module (.pyd), die mit Nuitka erstellt wurden.
  4. Das VBS-Skript richtet die Python-Umgebung ein und startet loader.py, das die Kernlogik des RAT aktiviert.

Modulare Architektur des Trojaners

Der RAT ist als Satz nativer Python-Module implementiert, von denen jedes für eine eigene Funktion zuständig ist:

  • config.pyd — Konstanten, Befehlskennungen, URL des Command-and-Control-Servers, Namen der Registry-Schlüssel
  • api.pyd — Paketaustausch mit dem C2-Server über HTTP
  • audiodriver.pyd — Haupt-Orchestrierungsschleife des RAT (Name zur Tarnung gewählt)
  • command.pyd — Host-Profiling, Erkennung von virtuellen Maschinen, Dateiübertragung, Ausführung von Shell-Befehlen
  • auto.pyd — Diebstahl von Anmeldeinformationen und Daten von Google-Chrome-Erweiterungen unter Umgehung des Mechanismus App-Bound Encryption (ABE)
  • util.pyd — Hilfsfunktionen für die Arbeit mit tar/gzip-Archiven

Die Umgehung von ABE — einem Sicherheitsmechanismus von Chrome, der die Verschlüsselung an eine bestimmte Anwendung bindet — macht diesen RAT besonders gefährlich für Entwickler, die im Browser Passwörter und Zugriffstoken für Repositories, CI/CD-Systeme und Cloud-Dienste speichern.

Indikatoren einer Kompromittierung

  • C2-Server:95.216.92[.]207:8080
  • Domain zum Herunterladen der Payload:nvidiadriver[.]net

Welle von Supply-Chain-Angriffen auf npm

Die Entdeckung dieser Pakete fiel mit mehreren anderen Kampagnen zusammen, die auf das npm-Ökosystem abzielen, was auf einen systematischen Anstieg von Supply-Chain-Angriffen über Paketmanager hindeutet:

  • Das Paket apintergrationpost liefert laut SafeDep einen Linux-RAT namens MYRA aus. Berichten zufolge kompiliert es bei der Installation einen nativen C-Rootkit, richtet drei Persistenzmechanismen ein, tarnt sich als systemd-Service und unterstützt dateilose Ausführung.
  • Das Paket @withgoogle/stitch-sdk imitiert laut SafeDep das Tool Google Stitch AI und stiehlt Entwickler-Credentials aus acht Quellen: Claude Code, git config, ~/.git-credentials, SSH-Schlüssel, GitHub CLI, npm config, ~/.npmrc und ~/.docker/config.json. Die Daten werden an die Domain stitch-production[.]org gesendet.
  • Ein Cluster aus fünf Paketen (procwire, routecraft, endpointmap, bytecraft, staticlayer), die beim Ausführen von npm install auf Windows-Hosts einen Dropper ausliefern und starten.

Darüber hinaus hat SafeDep einen Supply-Chain-Angriff über das Projekt Egonex-AI/Understand-Anything dokumentiert, bei dem der schädliche Code die Blockchain Tron als Steuerungsinfrastruktur nutzt — die Adresse der letzten Transaktion codiert den Hash einer BSC-Transaktion mit aktiver Payload.

Einschätzung der Auswirkungen

Trotz der relativ geringen Download-Zahlen (insgesamt rund 1016) liegt die Hauptgefahr in der Zielgruppe: Die Pakete richten sich an Entwickler, die PostCSS verwenden — eines der beliebtesten Tools zur Verarbeitung von CSS. Eine Kompromittierung der Entwicklermaschine eröffnet den Zugriff auf private Repositories, CI/CD-Secrets, Tokens von Cloud-Providern und Signaturschlüssel. Das Modul auto.pyd, das auf den Diebstahl von Chrome-Daten einschließlich Erweiterungen spezialisiert ist, kann Token von Passwort-Managern und Authentifizierungs-Sessions extrahieren.

Der Einsatz der Domain nvidiadriver[.]net zum Herunterladen der Payload ist ein typisches Social-Engineering-Muster: Der Domainname imitiert legitime NVIDIA-Software und kann bei einer oberflächlichen Analyse des Netzwerkverkehrs unauffällig wirken.

Empfehlungen zur Reaktion

  • Projektabhängigkeiten prüfen auf das Vorhandensein der Pakete aes-decode-runner-pro, postcss-minify-selector, postcss-minify-selector-parser, apintergrationpost, @withgoogle/stitch-sdk, procwire, routecraft, endpointmap, bytecraft, staticlayer.
  • Bösartige Pakete entfernen und sämtliche Artefakte: Dateien settings.ps1, update.vbs, loader.py, Verzeichnisse mit der Python-Laufzeitumgebung und .pyd-Modulen.
  • Netzwerkverbindungen prüfen zu 95.216.92[.]207:8080, nvidiadriver[.]net und stitch-production[.]org in Proxy- und DNS-Logs.
  • Alle Zugangsdaten rotieren auf betroffenen Maschinen: Chrome-Passwörter, SSH-Schlüssel, GitHub-/npm-/Docker-Tokens, CI/CD-Secrets.
  • Richtlinien zur Prüfung von Abhängigkeiten einführen: Auditing-Tools einsetzen (npm audit, Socket, Snyk) und die Installation ungeprüfter Pakete mithilfe von Lockfiles und Richtlinien für erlaubte Pakete blockieren.
  • Monitoring einrichten für das Starten von PowerShell und wscript.exe aus node_modules-Verzeichnissen — dies ist ein anomales Verhalten für npm-Pakete.

Dieser Fall zeigt eindrücklich, dass selbst ein kleines Hilfspaket, das eine populäre Build-Abhängigkeit imitiert, eine vollwertige mehrstufige Angriffskette verbergen kann. Die zentrale Maßnahme für Entwicklungsteams besteht darin, ihre Projekte umgehend auf die genannten Pakete zu prüfen, die aufgeführten Indikatoren einer Kompromittierung auf Ebene der Netzwerkinfrastruktur zu blockieren und einen automatisierten Abhängigkeitsaudit als verpflichtenden Schritt in der CI/CD-Pipeline zu verankern.


CyberSecureFox Editorial Team

Die CyberSecureFox-Redaktion berichtet über Cybersecurity-News, Schwachstellen, Malware-Kampagnen, Ransomware-Aktivitäten, AI Security, Cloud Security und Security Advisories von Herstellern. Die Beiträge werden auf Grundlage von official advisories, CVE/NVD-Daten, CISA-Meldungen, Herstellerveröffentlichungen und öffentlichen Forschungsberichten erstellt. Artikel werden vor der Veröffentlichung geprüft und bei neuen Informationen aktualisiert.

Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre, wie deine Kommentardaten verarbeitet werden.