Direct naar de inhoud
Software Supply Chain Security

PhantomRaven npm stealer en LLM-gebruik

PhantomRaven npm stealer

Een financieel gemotiveerde dreigingsacteur is gelinkt aan de ontwikkeling en verspreiding van de PhantomRaven npm stealer: een JavaScript-gebaseerde informatieverzamelaar die zich via het npm-registry verstopt. Onderzoekers van CrowdStrike stellen dat de code mogelijk is gegenereerd met behulp van een large language model (LLM), op basis van opvallende aanwijzingen in de bronbeschrijvingen en codepatronen.

De aanval richt zich niet alleen op het stelen van inlog- en tokens, maar ook op kwetsbare ontwikkelomgevingen: configuraties, CI/CD-omgevingen en accounts van ontwikkelaars. In dit artikel zetten we op een rij hoe de PhantomRaven npm stealer werkt, welke signalen zijn gezien en wat dit betekent voor teams die software bouwen met npm en externe registries.

Van slopsquatting naar token-diefstal

Het incident begon volgens eerdere meldingen in late oktober 2025. Koi Security en DCODX brachten een campagne onder de aandacht waarbij meer dan 100 kwaadaardige npm-pakketten werden geüpload. De pakketten maakten misbruik van slopsquatting en typosquatting: namen die lijken op legitieme packages, zodat ontwikkelaars of automatische tooling per ongeluk de verkeerde afhankelijkheden binnenhalen.

Zodra zo’n pakket wordt geïnstalleerd, wordt het gevaar niet beperkt tot de bibliotheek zelf. De opzet is onderdeel van een supply chain-aanval: schadelijke functionaliteit wordt “verstopt” achter een extra stap zodat security tools minder snel direct de libraries herkennen.

Waarom RDD’s de verdediging lastig maken

Bij deze campagne werd gebruikgemaakt van een remote dynamic dependency (RDD) die externe code ophaalt. Het idee daarachter is dat de libraries die in npm staan minder opvallen voor scanners, terwijl de echte uitvoering via een externe server alsnog plaatsvindt.

Dat betekent dat een systeem dat alleen kijkt naar wat er in het pakket zit, niet automatisch ziet wat er later wordt geladen en uitgevoerd. Voor ontwikkelteams is dit een extra risico omdat de aanval zich verplaatst van “wat zit er in de dependency” naar “welke externe componenten worden tijdens runtime binnengehaald”.

Wat de PhantomRaven npm stealer precies verzamelt

Zodra de malware via de RDD is geactiveerd, verzamelt de PhantomRaven npm stealer informatie uit de omgeving van de ontwikkelaar. CrowdStrike beschrijft dat de software onder meer de volgende gegevens probeert te vinden:

  • E-mailadres(sen) uit de omgeving
  • Informatie over de CI/CD-omgeving
  • Een system fingerprint, inclusief het publieke IP-adres
  • Details rond de runtime, zoals de datum en tijd
  • Gebruikersnaam en e-mail uit Git/npm-configuraties
  • CI/CD environment variables voor omgevingen zoals GitHub Actions, GitLab CI, Jenkins en CircleCI

De verzamelde informatie wordt vervolgens doorgestuurd naar een server die de aanvaller beheert. Daarmee kan de actor onder andere tokens en secrets uit pipelines of authenticatiecontexten proberen te misbruiken—zeker als die gegevens in environment variables of configuraties aanwezig zijn.

De actor als ‘bug bounty hunter’

Opvallend is dat de dreigingsacteur zich presenteert als “bug bounty hunter”. CrowdStrike stelt dat de actor al actief is sinds november 2022 en dat hij of zij bounties claimt te hebben verzameld bij minstens negen entiteiten in de technologie-, retail- en hospitalitysector.

Tegelijk meldt CrowdStrike dat er geen aanwijzingen zijn gezien dat de gestolen informatie later terechtkomt in zogeheten “stealer log shops”. De inschatting is dat de operator de data vooral gebruikt om bug bounty kansen te identificeren, niet om direct op marktplaatsen te verkopen.

Of dit volledig klopt, blijft natuurlijk lastig te bewijzen, maar de observatie onderstreept wel dat “crimineel” niet altijd betekent dat er meteen massaal data wordt verhandeld. Soms is het doel strategischer: toegang en zicht op kwetsbaarheden.

Meerdere npm-identiteiten en verdwijnen van accounts

Er zijn volgens CrowdStrike minstens twee npm-gebruikersaccounts gezien die pakketten met PhantomRaven publiceerden. Deze accounts zijn op het moment van schrijven niet meer toegankelijk.

Onderzoekers noemen hierbij onder andere de volgende npm-gebruikersnamen:

  • jpdhellonpm1 (met de package “transform-jsbi-to-bigint”)
  • jpd15 (met de package “sort-imports-es6-autofix”)

Daarnaast zijn online identiteiten gelinkt aan dezelfde operatie, waaronder jpd12, jpd13, npmhell, npmpackagejpd, npmtestdharsh, jpdhackerone11 en packagedharsh.

Het wisselen van identiteiten en het snel verdwijnen van accounts past bij een bredere trend: aanvallers beperken hun blootstelling door publicatiegolven te organiseren en accounts te verwijderen wanneer de aandacht oploopt.

LLM-hulp bij malware-code: wat is de aanwijzing?

Een kernpunt in het CrowdStrike-rapport is de inschatting dat de PhantomRaven npm stealer is geschreven met hulp van een LLM. CrowdStrike stelt dat dit met hoge mate van vertrouwen wordt afgeleid uit zichtbare kenmerken zoals:

  • Verbose comments (uitgebreide opmerkingen)
  • Placeholder code
  • Statistische token-analysepajronen die passen bij taalmodel-gegenereerde tekst

Het blijft een beoordeling op basis van patronen—geen hard bewijs dat er een specifieke tool is gebruikt. Maar het bericht bevestigt wel een breder beeld: aanvallers gebruiken steeds vaker generatieve AI om code sneller te produceren, te variëren en aan te passen aan hun doel.

Andere publicaties: RCE-claim en pogingen richting PyPI

Er circuleert ook bewijs dat de actor eerder probeserde richting andere ecosystemen. In augustus 2025 claimde de dreigingsacteur dat een eerder gepubliceerd npm-pakket een remote code execution (RCE)-kwetsbaarheid bevatte. De actor beschreef daarbij dat men een doelmachine zou hebben gecompromitteerd en de preinstall script zou hebben uitgevoerd om RCE te bereiken.

Daarnaast is er bewijs dat de actor probeerde om pakketten te uploaden naar PyPI met code die lijkt op een informatie-stealer, vergelijkbaar met PhantomRaven. Dat wijst erop dat de actor mogelijk niet beperkt is tot één taal of registry, maar techniek en doelwit kan verplaatsen.

Wat betekent dit voor teams die met npm werken?

De PhantomRaven npm stealer laat vooral zien hoe snel supply chain-risico’s kunnen ontstaan zodra malafide packages in de normale ontwikkelstroom terechtkomen. De belangrijkste les is dat je niet alleen hoeft te kijken naar “wat staat er in package.json”, maar ook naar hoe dependencies zich gedragen tijdens installatie en runtime.

Concreet kunnen organisaties hun weerbaarheid vergroten door bijvoorbeeld:

  • Dependency checks toe te passen op typosquatting/slopsquatting (naam- en herkomstcontrole)
  • Installatieprocessen te beperken of te controleren (zeker voor scripts die tijdens preinstall draaien)
  • Te monitoren welke externe resources tijdens build of runtime worden opgehaald (om RDD-gedrag te zien)
  • CI/CD-omgevingen te beschermen met strikte secrets-hygiëne en least privilege

Wil je breder zien hoe supply chain en bewijsvoering rond misbruik samenkomen? Lees dan ook eens continue controle: bewijzen of een CVE echt te misbruiken is. Dat helpt om analyses om te zetten naar praktische signalen in plaats van aannames.

Praktische signalen om extra alert op te zijn

Hoewel elk incident anders is, passen bij deze aanpak vaak dezelfde waarschuwingssignalen. Denk aan packages met onverwachte namen die sterk lijken op bekende libraries, of aan installatiestappen die externe connecties opstarten. Ook kan het gedrag van CI/CD-omgevingen opvallen: ineens meer omgevingsvariabelen die worden gelezen, of ongebruikelijke uitgaand netwerkverkeer vanuit build agents.

Als je organisatie zichtbaar is in CI/CD-lijnen, is het extra belangrijk om uitgaand verkeer en dependency-installaties te loggen. Zo kun je later beter herleiden welke dependency de route naar de malware heeft geopend.

Conclusie: PhantomRaven npm stealer als supply chain wake-up call

De casus rond de PhantomRaven npm stealer toont hoe aanvallers via npm-registry-aanvallen niet alleen code verstoppen, maar ook ontwikkelomgevingen targeten. Door gebruik van slopsquatting/typosquatting en een remote dynamic dependency kan de echte uitvoering buiten het directe zicht van eenvoudige package-scans plaatsvinden.

Daarnaast benadrukt CrowdStrike dat de actor mogelijk een LLM inzette om malware te genereren. Of die conclusie voor elk incident dezelfde hardheid heeft, de richting is duidelijk: generatieve AI versnelt het creëren van kwaadaardige tooling. Voor teams betekent dat: verscherp checks op dependencies, monitor extern gedrag en bescherm CI/CD-secrets.

Bron: https://thehackernews.com/2026/09/claimed-bug-bounty-hunter-likely-used.html