Beliebtes npm-Paket 'node-ipc' bei Supply-Chain-Angriff kompromittiert, Zugangsdaten gestohlen
Ein neuer Supply-Chain-Angriff hat das beliebte **node-ipc**-Paket ins Visier genommen und Zugangsdaten-stehlende Malware in kürzlich veröffentlichte Versionen eingeschleust. Das kompromittierte Paket, das häufig für die Interprozesskommunikation verwendet wird, stellt ein erhebliches Risiko für Entwickler und ihre Systeme dar.
Angreifer haben Zugangsdaten-stehlende Malware in neu veröffentlichte Versionen von **node-ipc**, einem beliebten Paket für die Interprozesskommunikation, im Rahmen eines neuen Supply-Chain-Angriffs auf npm eingeschleust.
Das **node-ipc**-Paket ist ein Node.js-Modul, das es verschiedenen Prozessen ermöglicht, über alle Arten von Sockets zu kommunizieren, einschließlich Unix, Windows, UDP, TLS und TCP.
Obwohl der Maintainer im März 2022 [weaponisierte Versionen](https://www.bleepingcomputer.com/news/security/big-sabotage-famous-npm-package-deletes-files-to-protest-ukraine-war/) veröffentlichte, die auf Systeme in Russland und Belarus abzielten und ein Datenüberschreibungsmodul enthielten, um gegen die russische Invasion der Ukraine zu protestieren, verzeichnet das Paket immer noch mehr als 690.000 wöchentliche Downloads auf npm.
### Entdeckung des Angriffs
Der jüngste Supply-Chain-Angriff wurde von mehreren Anbietern für Anwendungssicherheit entdeckt, darunter **Socket**, **Ox Security** und **Upwind**, die die folgenden drei Versionen als bösartig bestätigten:
* [email protected]
* [email protected]
* [email protected]
Der bösartige Code verbirgt sich im CommonJS-Einstiegspunkt (node-ipc.cjs) und wird automatisch ausgeführt, sobald Anwendungen geladen werden.
Die Malware ist stark verschleiert, identifiziert infizierte Systeme, sammelt Umgebungsvariablen und sensible lokale Dateien, komprimiert die gestohlenen Daten in Archive und exfiltriert sie über DNS TXT-Abfragen.
Die jüngste Kompromittierung scheint das Werk eines externen Akteurs zu sein, der das Konto eines inaktiven Maintainers namens 'atiertant' kompromittiert hat.
### Vom Malware betroffene Daten
Laut den Forschern sammelt der in die neuen **node-ipc**-Versionen eingeschleuste Infostealer die folgenden Arten von Informationen von kompromittierten Systemen:
* Cloud-Zugangsdaten von **AWS**, **Azure**, **GCP**, **OCI**, **DigitalOcean** und anderen
* SSH-Schlüssel und SSH-Konfigurationen
* Kubernetes-, Docker-, Helm- und Terraform-Zugangsdaten
* npm-, GitHub-, GitLab- und Git CLI-Tokens
* .env-Dateien und Datenbank-Zugangsdaten
* Shell-Verläufe und CI/CD-Secrets
* macOS Keychain-Dateien und Linux Keyrings
* Firefox-Profil- und Key-Datenbankdateien (auf macOS)
* Microsoft Teams lokale Speicher- und IndexedDB-Pfade
Die Malware überspringt Dateien, die größer als 4 MiB sind, und vermeidet das Scannen von .git- und node_modules-Verzeichnissen, um die Effizienz zu steigern und das operative Rauschen auf dem Host zu reduzieren.

### Exfiltration über DNS TXT-Records
Ein bemerkenswertes operatives Merkmal ist die Verwendung von DNS TXT-Abfragen anstelle des herkömmlichen HTTP-basierten Command-and-Control (C2)-Verkehrs für die Datenexfiltration. Die Angreifer verwenden eine gefälschte Azure-Themen-Domain (sh[.]azurestaticprovider[.]net:443) als Bootstrap-Resolver und übertragen die Daten an 'bt[.]node[.]js' mit Abfragepräfixen wie xh, xd und xf.
Laut **Socket** könnte die Exfiltration eines 500 KB großen komprimierten Archivs ungefähr 29.400 DNS TXT-Anfragen generieren, wodurch der Datenverkehr in die normale DNS-Aktivität eingebettet wird.
Vor der Übermittlung speichert die Malware gesammelte Daten in temporären komprimierten tar.gz-Archiven, die nach der Exfiltration gelöscht werden, um forensische Spuren zu reduzieren.
Die Malware etabliert keine Persistenz und lädt keine sekundären Payloads herunter, sodass die Operation auf den schnellen Diebstahl und die Exfiltration von Zugangsdaten ausgerichtet zu sein scheint.
### Abhilfemaßnahmen
Potenziell betroffene Entwickler sollten die betroffenen Versionen sofort entfernen, exponierte Geheimnisse und Zugangsdaten rotieren und Lockfiles sowie npm-Caches überprüfen.