PhantomRaven nutzte npm-Pakete und Remote-Code, um nach Entwicklerdeheimnissen zu suchen
PhantomRaven verbreitete über 100 schädliche npm-Pakete, lud Remote-Code nach und stahl Zugangsdaten sowie CI/CD-Geheimnisse von Entwicklern.
Von künstlicher Intelligenz erzeugter Text, ohne menschliche Überprüfung veröffentlicht. KI-Transparenz
Illustration mit KI erzeugt
CrowdStrike hat einen finanziell motivierten Akteur, der sich als Bug-Bounty-Jäger ausgab, mit PhantomRaven in Verbindung gebracht. Dabei handelt es sich um einen JavaScript-Infostealer, der über mehr als 100 schädliche npm-Pakete verbreitet wurde.
Die Supply-Chain-Kampagne zielte über Slopsquatting und Typosquatting auf Entwickler ab. Nach der Installation riefen die Pakete zusätzlichen Code von einer von den Angreifern kontrollierten Infrastruktur ab. Dadurch konnte PhantomRaven Entwicklungssysteme untersuchen und Zugangsdaten, Konfigurationsdetails sowie CI/CD-Geheimnisse exfiltrieren.
CrowdStrike bewertet es mit hoher Wahrscheinlichkeit, dass ein großes Sprachmodell bei der Erstellung der Malware geholfen hat. Zu den Indizien zählen ungewöhnlich umfangreiche Codekommentare, unvollständige Platzhalterabschnitte und eine statistische Analyse der Token-Muster im Quellcode.
Mehr als 100 Pakete zielten auf Entwicklungsumgebungen
Koi Security und DCODX identifizierten die Kampagne erstmals Ende Oktober 2025. Die schädlichen Pakete wurden in der npm-Registry platziert, wo Entwickler auf sie stoßen konnten, wenn sie nach Abhängigkeiten suchten oder Paketnamen eingaben.
Bei der Operation kamen zwei Strategien zur Namensgebung zum Einsatz. Typosquatting basiert auf Namen, die legitimen Paketen ähneln, in der Hoffnung, dass Nutzer sich verschreiben oder subtile Unterschiede übersehen. Slopsquatting zielt auf plausibel wirkende Paketnamen ab, die von einem LLM vorgeschlagen werden können, obwohl unter diesem Namen kein legitimes Paket existiert.
Im Verlauf der Kampagne wurden mehr als 100 Pakete hochgeladen. Eine vollständige Liste der entfernten Pakete, eine Übersicht der betroffenen Versionen und ein npm-Sicherheitsbulletin wurden jedoch nicht veröffentlicht.
Mindestens zwei npm-Konten wurden mit veröffentlichten PhantomRaven-Paketen in Verbindung gebracht:
jpdhellonpm1, dastransform-jsbi-to-bigintveröffentlichtejpd15, dassort-imports-es6-autofixveröffentlichte
Beide Konten waren nicht mehr zugänglich, als die Ergebnisse zusammengestellt wurden. Weitere mit der Aktivität verbundene Identitäten sind jpd12, jpd13, npmhell, npmpackagejpd, npmtestdharsh, jpdhackerone11 und packagedharsh.
Der Verlust des Zugriffs auf zwei Konten sorgt für eine gewisse Eindämmung, bedeutet aber nicht, dass jedes schädliche Paket oder jede damit verbundene Identität entfernt wurde. Ebenso gibt es keine öffentliche Bestätigung dafür, dass die gesamte zugehörige Angreiferinfrastruktur deaktiviert wurde.
Remote-Abhängigkeiten verbargen die Hauptfunktionen des Infostealers
Das Bereitstellungsmodell von PhantomRaven trennt das in npm sichtbare Paket von dem Code, der für den größten Teil des schädlichen Verhaltens verantwortlich ist.
Die Pakete verwenden eine externe dynamische Remote-Abhängigkeit (Remote Dynamic Dependency, RDD), die auf einem vom Betreiber kontrollierten Server gehostet wird. Nach der Installation ruft das Paket ausführbare Funktionen von dieser Infrastruktur ab. Dadurch befindet sich weniger offensichtlich schädlicher Code im npm-Archiv selbst, und die statische Untersuchung des veröffentlichten Pakets wird weniger zuverlässig.
Zudem verschafft dieser Ansatz dem Betreiber Flexibilität. Remote bereitgestellter Code kann potenziell geändert werden, ohne eine neue Paketversion zu veröffentlichen. Verteidiger, die nur das Registry-Artefakt untersuchen, sehen möglicherweise nicht dieselben Funktionen, die auf dem Rechner eines Opfers ausgeführt wurden.
Der abgerufene Code durchsucht die Entwicklungsumgebung und kann Folgendes erfassen:
- E-Mail-Adressen und andere Daten zur Identität von Entwicklern.
- Informationen über die lokale CI/CD-Umgebung.
- Einen System-Fingerprint einschließlich der öffentlichen IP-Adresse des Rechners.
- Laufzeitinformationen sowie das aktuelle Datum und die aktuelle Uhrzeit.
- Benutzernamen und E-Mail-Adressen aus der Git- und npm-Konfiguration.
- Umgebungsvariablen im Zusammenhang mit GitHub Actions, GitLab CI, Jenkins und CircleCI.
- Authentifizierungstoken, Zugangsdaten für die Quellcodeverwaltung und andere offengelegte Geheimnisse.
Die erfassten Informationen werden an einen von den Angreifern kontrollierten Server übertragen.
Es wurden keine destruktiven oder ransomwareähnlichen Aktivitäten gemeldet. Es gibt keine Hinweise darauf, dass PhantomRaven Daten verschlüsselt, Systeme beschädigt oder Build-Pipelines absichtlich stört. Der dokumentierte Zweck besteht in der Sammlung von Informationen.
Dennoch können die Folgen über den Entwicklerrechner hinausgehen. Ein gestohlenes CI/CD-Token kann je nach Berechtigungen Zugriff auf Quellcode-Repositorys, Build-Systeme, Deployment-Workflows oder andere Unternehmensressourcen ermöglichen.
LLM-Fingerabdrücke im Quellcode der Malware
CrowdStrike schreibt dem Einsatz eines LLM mit hoher Wahrscheinlichkeit eine Rolle zu, ohne direkt zu behaupten, welches Modell oder welcher Dienst verwendet wurde. Die Einschätzung stützt sich auf mehrere Merkmale im Code von PhantomRaven.
Ein Indiz war die Anzahl und der Stil der Kommentare. Malware-Entwickler dokumentieren ihren Code mitunter, doch ausführliche Erklärungen, die einfache Abläufe lediglich wiederholen, können wie die Ausgabe von Coding-Assistenten wirken. Die Forscher fanden außerdem unfertige Platzhalterlogik. Das deutet darauf hin, dass generierte Gerüststrukturen möglicherweise nicht vollständig fertiggestellt oder bereinigt wurden.
Eine statistische Token-Analyse lieferte ein weiteres Indiz. Bei dieser Art der Analyse werden Muster in der Konstruktion von Code und begleitendem Text untersucht, um Verteilungen zu erkennen, die mit modellgenerierten Ausgaben übereinstimmen.
Keines dieser Merkmale beweist für sich genommen eine Beteiligung von KI. Kommentare können manuell verfasst werden, Platzhalter sind in unfertiger Software üblich, und tokenbasierte Klassifikatoren sind nicht unfehlbar. Zusammengenommen führten die Merkmale CrowdStrike jedoch zu der Schlussfolgerung, dass ein LLM wahrscheinlich bei der Erstellung von PhantomRaven geholfen hat.
Das bedeutet nicht, dass die Kampagne autonom ablief. Ein menschlicher Betreiber scheint weiterhin Ziele ausgewählt, Registry-Identitäten erstellt, Pakete veröffentlicht, externe Infrastruktur betrieben und die gestohlenen Informationen empfangen zu haben.
Der operative Nutzen generativer KI ist praktischer Natur: Sie kann den Aufwand für das Erstellen von Code, das Erklären unbekannter APIs, die Produktion von Varianten und das Zusammenstellen eines funktionsfähigen Tools reduzieren. PhantomRaven zeigt, wie diese Effizienzgewinne nicht für die legitime Entwicklung, sondern für Angriffe auf die Software-Lieferkette eingesetzt werden können.
Der Betreiber stellte die Aktivitäten als Bug-Bounty-Forschung dar
CrowdStrike zufolge ist der Akteur seit November 2022 aktiv und tritt öffentlich als Bug-Bounty-Jäger auf. Die Person soll behaupten, von mindestens neun Organisationen aus den Bereichen Technologie, Einzelhandel und Gastgewerbe Prämien erhalten zu haben.
Maddie Stewart berichtete, dass der Akteur im August 2025 behauptete, mithilfe eines schädlichen npm-Pakets eine Schwachstelle zur Remote-Code-Ausführung gefunden zu haben. Dieser Darstellung zufolge kompromittierte das Paket einen Zielrechner, indem es dessen preinstall-Skript ausführte, und ermöglichte angeblich die Remote-Code-Ausführung.
Diese Darstellung verdeutlicht den grundlegenden Unterschied zwischen autorisierten Sicherheitstests und einer Kompromittierung. Ein Paket zu veröffentlichen, das ohne ausdrückliche Genehmigung Informationen stiehlt oder Code auf Systemen ausführt, ist nicht mit Tests innerhalb eines klar definierten Bug-Bounty-Rahmens gleichzusetzen.
CrowdStrike hat keine Hinweise darauf beobachtet, dass PhantomRaven-Daten auf Marktplätzen für Stealer-Logs angeboten wurden. Das Unternehmen geht daher davon aus, dass der Betreiber die Malware wahrscheinlich nutzt, um potenzielle Bug-Bounty-Funde zu identifizieren, statt die gesammelten Daten über etablierte kriminelle Kanäle zu verkaufen.
Diese Einschätzung beschreibt die wahrscheinliche Motivation, nicht die Legitimität der Methode. Entwickleridentitäten, Token und CI/CD-Variablen bleiben sensible Daten, unabhängig davon, ob der Betreiber sie über eine Bug-Bounty-Meldung oder einen kriminellen Markt zu Geld machen will.
Der Akteur scheint außerdem versucht zu haben, Pakete mit ähnlichem informationsstehlendem Code im Python Package Index (PyPI) zu veröffentlichen. Die bekannte Aktivität ist daher möglicherweise nicht auf das npm-Ökosystem beschränkt.
Verteidiger müssen Abhängigkeiten und offengelegte Geheimnisse untersuchen
Es gibt keinen Hersteller-Patch, da PhantomRaven keine Schwachstelle in einem bestimmten Softwareprodukt darstellt. Es wurden weder eine CVE, ein CVSS-Score, eine formale Bewertung des Schweregrads, eine bestätigte Zahl der Opfer, eine Erkennungssignatur noch ein umfassender Hinweis zur Behebung veröffentlicht.
Organisationen sollten zunächst npm-Abhängigkeiten, Lockfiles, Installationsprotokolle und interne Paket-Caches auf unerwartete Bibliotheken überprüfen. Die beiden öffentlich identifizierten Pakete transform-jsbi-to-bigint und sort-imports-es6-autofix sollten direkt untersucht werden, dürfen jedoch nicht als vollständige Indikatorenliste betrachtet werden.
Sicherheitsteams sollten außerdem Folgendes untersuchen:
- Paketinstallationen, die
preinstall- oder andere Lifecycle-Skripte ausgelöst haben. - Ausgehende Verbindungen, die während der Installation von Abhängigkeiten aufgebaut wurden.
- Abhängigkeiten, die ausführbaren Code von einer Infrastruktur außerhalb von npm herunterladen.
- Unerwartete Zugriffe auf Git- und npm-Konfigurationsdateien.
- Prozesse, die CI/CD-Umgebungsvariablen auslesen.
- Kürzlich erstellte oder geänderte Zugangsdaten für Entwickler- und Automatisierungskonten.
Wenn ein verdächtiges Paket ausgeführt wurde, reicht es nicht aus, es zu entfernen. Potenziell offengelegte Zugangsdaten für GitHub, GitLab, npm, Jenkins, CircleCI und andere CI/CD-Systeme sollten widerrufen oder ausgetauscht werden. Zudem sollten Repository- und Pipeline-Logs auf nachfolgende Zugriffe geprüft werden.
Teams können das künftige Risiko reduzieren, indem sie Abhängigkeiten fest an Versionen binden, Lockfiles erzwingen, Lifecycle-Skripte nach Möglichkeit einschränken und den Netzwerkzugriff während Builds kontrollieren. Neue Pakete sollten hinsichtlich der Historie des Herausgebers, der Verfügbarkeit des Quellcodes, unerwarteter Remote-Downloads sowie Abweichungen zwischen dem angegebenen Zweck und dem Installationsverhalten geprüft werden.
Der entscheidende Vorteil von PhantomRaven war keine hochentwickelte Exploitation. Ausschlaggebend war der durch das Vertrauen von Entwicklern ermöglichte Zugriff in Verbindung mit Remote-Code, der zunächst außerhalb des untersuchten Pakets blieb.
Quellen
Dieser Artikel ist eine eigenständige Aufbereitung auf Basis der folgenden Quellen.
