Cyberbeveiliging
NPM Supply-Chain Attack: Wat er gebeurde en hoe het op te lossen

De cryptovaluta-industrie en de wereld in het algemeen hebben onlangs een schrikmoment ervaren toen beveiligingsexperts een supply-chain-aanval identificeerden die gericht was op het Node.js-ecosysteem en al tot wel 18 npm-pakketten had gecompromitteerd.
Dat komt omdat deze enkele pakketten elke week miljarden downloads zien.
Softwarepakketten worden gebruikt om software van derden te distribueren. Vaak opgehaald uit een externe bron via een package manager, bevatten ze meestal broncode, bibliotheken, documentatie en andere bestanden die nodig zijn om de software te bouwen en uit te voeren.
Nu vermomt een pakket dat malware bevat zich als een legitiem pakket, terwijl het in feite een kwaadaardig pakket is met de bedoeling software te infecteren. Zodra het een systeem binnenkomt, kan de malware in het kwaadaardige pakket bestanden wijzigen, gegevens stelen en zelfs een heel systeem overnemen om te doen wat de aanvaller wil.
Hoewel andere grote open‑source‑ecosystemen zoals Python en .NET even kwetsbaar zijn voor aanvallen, maakt het brede gebruik van JavaScript het bijzonder blootgesteld aan cybercriminelen.
Node.js is een open‑source runtime‑omgeving gebouwd bovenop JavaScript die ontwikkelaars in staat stelt hun code buiten de webbrowser uit te voeren.
Traditioneel werd de geïnterpreteerde programmeertaal, vooral bekend om het interactief maken van webpagina’s, voornamelijk gebruikt voor client‑side webontwikkeling binnen browsers, maar Node.js breidde het gebruik van JavaScript uit naar server‑side en andere toepassingen.
Met Node.js kunnen ontwikkelaars snelle en schaalbare toepassingen bouwen, zoals webservers, API’s, tools en meer.
Het profiteert van een enorm ecosysteem van open‑source bibliotheken en tools die beschikbaar zijn via npm, wat ontwikkeling vereenvoudigt en oplossingen biedt voor diverse functionaliteiten.
Node Package Manager, of npm, is een belangrijk hulpmiddel in JavaScript‑ontwikkeling, dat wordt gebruikt om codepakketten te vinden, te bouwen en te beheren. Het helpt bij het afhandelen van afhankelijkheden, maakt samenwerking mogelijk en stroomlijnt werkstromen.
Dit ‘s werelds grootste softwareregister bevat meer dan 3 miljoen codepakketten en is volledig gratis te gebruiken.
Iedereen kan alle openbare npm‑softwarepakketten downloaden zonder zich te registreren. Open‑source‑ontwikkelaars gebruiken npm om software te delen en te lenen, terwijl veel organisaties het gebruiken om privé‑ontwikkeling te beheren.
Om npm op uw computer te installeren, moet u eerst Node.js installeren.
De package manager voor JavaScript wordt onderhouden door npm, Inc., een dochteronderneming van GitHub, het toonaangevende software‑ontwikkelingsplatform ter wereld, dat sinds 2018 eigendom is van Microsoft, toen de tech‑gigant het voor $7,5 miljard overnam om ontwikkelaars te versterken.
Vorige week werd het hulpmiddel waarop meer dan 17 miljoen ontwikkelaars wereldwijd vertrouwen gecompromitteerd, wat paniek op het internet veroorzaakte, zij het slechts kortstondig, omdat experts het vroeg opspoorden en aanvallers niet meer dan $50 konden stelen. Dit is wat er gebeurde!
Wat er gebeurde in de NPM Supply-Chain-aanval (sep 2025)
In de enorme supply‑chain‑aanval die plaatsvond in het JavaScript‑ecosysteem, hebben hackers een reeks npm‑pakketten gecompromitteerd met malware. Het doel van de aanval was om digitale activa van nietsvermoedende gebruikers te stelen.
In het bijzonder werd het npm‑account van ontwikkelaar ‘qix’ gehackt.
Qix is een open‑source maintainer‑account die werd gecompromitteerd door een phishing‑aanval. Dit stelde aanvallers in staat om 18 populaire npm‑pakketten te infecteren met kwaadaardige code. Samen worden deze pakketten wekelijks honderden miljoenen keren gedownload, omdat ze zijn ingebed in frameworks, ontwikkelaarstools en productie‑services.
De getroffen pakketten omvatten chalk, debug, color-name, wrap-ansi en ansi-styles, die enkele van de populairste zijn, terwijl minder populaire npm‑pakketten die getroffen zijn backslash, chalk-template en has-ansi.
Veeg om te scrollen →
| Pakket | Gecompromitteerde versie(s) | Actie |
|---|---|---|
| debug | 4.4.2 | Pin naar pre-4.4.2; opnieuw installeren; build‑logboeken scannen |
| chalk | 5.6.1 | Pin naar pre-5.6.1; schone build opnieuw uitrollen |
| ansi-styles | 6.2.2 | Pin naar pre-6.2.2; downstream‑afhankelijkheden auditen |
| ansi-regex | 6.2.1 | Pin naar pre-6.2.1 |
| strip-ansi | 7.1.1 | Pin naar pre-7.1.1 |
| wrap-ansi | 9.0.1 | Pin naar pre-9.0.1 |
| color, color-convert, color-string, color-name | 5.0.1 / 3.1.1 / 2.1.1 / 2.0.1 | Pin naar de vooraf vermelde versies; opnieuw vergrendelen en herbouwen |
| has-ansi, supports-color, slice-ansi | 6.0.1 / 10.2.1 / 7.1.1 | Pin naar de vooraf vermelde versies |
| backslash, is-arrayish, error-ex, simple-swizzle, chalk-template, supports-hyperlinks | 0.2.1 / 0.3.3 / 1.3.3 / 0.2.3 / 1.1.1 / 4.1.1 | Pin naar de vooraf vermelde versies |
| duckdb, @duckdb/node-api, @duckdb/node-bindings, @duckdb/duckdb-wasm | 1.3.3 / 1.3.3 / 1.3.3 / 1.29.2 | Vermijd de vermelde versies; wacht op updates van de leverancier |
Alle getroffen pakketten zijn sindsdien verwijderd door het npm‑register. Door een hoogwaardig open‑source‑maintainer te compromitteren, heeft de aanval het vertrouwen in het open‑source‑software‑ecosysteem (OSS) gemilitariseerd, omdat ontwikkelaars niet elke afhankelijkheid die ze gebruiken auditen. Wat ze doen, is vertrouwen op hun gebruik en reputatie, evenals op de beveiliging van de registers.

Om de pakketten te compromitteren, koos de hacker de phishing‑route. De aanvaller startte eerst een phishing‑campagne om het account van een npm‑pakketmaintainer over te nemen, waarna hij hun kwaadaardige code in npm‑pakketten injecteerde voordat hij de gecompromitteerde versies uploadde.
Ontwikkelaar Josh Junon was het slachtoffer van een phishing‑e‑mail die deel uitmaakte van een grotere campagne die npm nabootste. De aanvallers gebruikten dus een phishing‑site die de inlogpagina van npm nabootste om zijn inloggegevens te stelen. En zodra de aanvallers binnen waren, sloten ze Junon buiten door het e‑mailadres van zijn npm‑account te wijzigen.
“Hoi, ja ik ben gecompromitteerd. Sorry iedereen, heel gênant,” schreef Junon op HackerNews, waarmee hij het incident bevestigde. Hij legde later uit dat alleen npm was getroffen:
Zag er op het eerste gezicht legitiem uit. Geen excuses, ik had gewoon een lange week en een paniekerige ochtend en probeerde iets van mijn takenlijst af te vinken. Ik maakte de fout om op de link te klikken in plaats van rechtstreeks naar de site te gaan.
De phishing‑e‑mail kwam van support [at] npmjs [dot] help en gebruikte een angsttactiek om Junon de link te laten klikken, die hem doorverwees naar de phishing‑site.
Door zich voor te doen als npm, vroegen de aanvallers hem zijn 2FA‑referenties bij te werken, bewerend deel uit te maken van een “voortdurende inzet voor accountbeveiliging,” en dat ze hetzelfde van alle gebruikers vragen.
“Onze gegevens geven aan dat het meer dan 12 maanden geleden is sinds uw laatste 2FA‑update,” stelde de phishing‑e‑mail, en voegde toe dat degenen met “verouderde 2FA‑referenties tijdelijk worden geblokkeerd vanaf 10 september 2025, om ongeautoriseerde toegang te voorkomen.”
Dezelfde e‑mail werd ook gebruikt om andere pakketmaintainers en ontwikkelaars te targeten.
Gezien het brede gebruik van de getroffen pakketten, had dit een groot incident kunnen worden als het niet zo snel was afgehandeld.
Zoals Charlie Erickson van Aikido Security opmerkte in een rapport, hebben talloze websites zeer ernstige schade door deze aanval vermeden, waarbij de npm‑pakketten een codefragment bevatten dat op de client van een website zou worden uitgevoerd.
“Deze malware is in wezen een browser‑gebaseerde interceptor die zowel netwerkverkeer als applicatie‑API’s overneemt,” stelde hij in zijn aanvalsanalyse. “Wat het gevaarlijk maakt, is dat het op meerdere lagen opereert: het wijzigen van de inhoud die op websites wordt getoond, het manipuleren van API‑aanroepen en het vervalsen van wat de apps van gebruikers denken te ondertekenen. Zelfs als de interface er correct uitziet, kan de onderliggende transactie op de achtergrond worden omgeleid.”
De kwaadaardige code was ontworpen om crypto te stelen. De aanvaller scant strings op crypto‑walletadressen, waardoor degenen die aan crypto‑gerelateerde toepassingen werken, risico lopen.
De malware werkte stilletjes binnen de browser zonder dat de gebruiker het merkte, herschreef walletadressen en leidde fondsen om naar accounts die door de aanvaller worden beheerd. Het kapert en manipuleert direct transacties over Bitcoin (BTC ), Ethereum (ETH ), Solana (SOL ), Tron (TRX ), Litecoin (LTC ) en Bitcoin Cash (BCH ) op een gecompromitteerd systeem.
Om dit te doen, hield de kwaadaardige code browser‑application programming interfaces zoals fetch en wallet‑interfaces zoals window.ethereum in de gaten.
De kwaadaardige code “onderbreekt stilletjes crypto‑ en Web3‑activiteit in de browser, manipuleert wallet‑interacties en herschrijft betalingsbestemmingen zodat fondsen en goedkeuringen worden omgeleid naar door de aanvaller gecontroleerde accounts zonder duidelijke aanwijzingen voor de gebruiker,” zei Erickson.
Zodra het klaar is, verdooft de malware zijn sporen terwijl hij op de achtergrond blijft om eventuele toekomstige transacties op het netwerk van het nietsvermoedende slachtoffer op te vangen.
Gezien de ernst van de aanval waarschuwde Charles Guillemet, de CTO van hardware‑wallet‑provider Ledger, crypto‑gebruikers om voorzichtig te zijn bij het bevestigen van on‑chain transacties. De getroffen pakketten, merkte hij in de post op, zijn al meer dan 1 miljard keer gedownload.
De grootschalige supply‑chain‑aanval, deelde hij met de community, richt zich op crypto‑software‑wallets met de kwaadaardige payload “stilletjes crypto‑adressen ter plaatse verwisselen om fondsen te stelen.”
“Als je een hardware‑wallet gebruikt, let dan op elke transactie voordat je ondertekent en je bent veilig. Als je geen hardware‑wallet gebruikt, vermijd dan voorlopig alle on‑chain transacties.”
– Guillemet
Ondertussen nam 0xngmi, de pseudonieme oprichter van DefiLlama, een crypto‑analyseplatform, X (Twitter) om te delen dat “het effectieve impactgebied veel kleiner is dan ‘alle websites'”, aangezien alleen die projecten risico lopen die zijn bijgewerkt nadat het malware‑geïnfecteerde npm‑pakket was gepubliceerd. Toch, “het is gewoon veiliger om crypto‑websites te vermijden totdat dit is afgehandeld en ze de slechte pakketten hebben opgeschoond,” voegde hij eraan toe.
Uiteindelijk konden hackers slechts $50 aan cryptocurrency stelen uit zo’n enorme supply‑chain‑aanval. De $50 omvat Ether en een reeks meme‑coins zoals Brett en Andy, onder andere.

Het was echter meer geluk dan iets anders, zoals crypto‑intelligentieplatform Security Alliance op X opmerkte:
“Dit had veel erger kunnen zijn. Een heimelijk geïmplementeerde backdoor die zich richtte op ontwikkelaarsmachines met een focus op persistentie, had onopgemerkt kunnen blijven voor wie weet hoe lang.”
Sindsdien hebben veel crypto‑applicaties zoals Aave, Uniswap, Ledger, Jupiter, MetaMask, Phantom, Blast en anderen hun gebruikers laten weten dat ze veilig zijn voor de npm‑aanval.
Hoewel de aanval is mislukt, is het een duidelijke herinnering voor ontwikkelaars dat ze voor maximale beveiliging verder moeten kijken dan hun eigen codebase. Zelfs software‑afhankelijkheden die vertrouwd en breed gebruikt zijn, kunnen op elk moment gecompromitteerd worden.
Hier moeten codeplatformen zoals GitHub en npm ook meer doen om de veiligheid van breed gebruikte pakketten te waarborgen.
“Populairere pakketten zouden een attestatie moeten vereisen dat ze afkomstig zijn van een vertrouwde herkomst en niet zomaar willekeurig van een locatie op het internet.”
– Eriksen

Compromissen van code‑repositories kunnen uiteindelijk extreem rampzalig zijn voor ontwikkelaars, die daardoor hun hele projecten volledig kunnen verlaten als gevolg van zo’n incident.
Het incident is een bewijs van hoe onderling verbonden en kwetsbaar het software‑ecosysteem van vandaag is voor uitbuiting. Eén gecompromitteerd account kan aanvallers een enorme reikwijdte geven, waardoor het cruciaal is om verbeterde supply‑chain‑beveiligingsmaatregelen op elke stap van het ontwikkelingsproces te implementeren.
Bescherming tegen de snelgroeiende dreiging van malware
Met malware‑dreigingen die toenemen en de aanvallen die geavanceerder en gerichter worden, is het belangrijk dat gebruikers worden opgeleid en altijd waakzaam blijven op alle platforms.
Kwaadaardige software of malware is eigenlijk een van de meest voorkomende soorten cyberaanvallen. Hierbij ontwikkelen aanvallers een softwarecode of computerprogramma met de bedoeling toegang te krijgen tot of schade toe te brengen aan de computer van het slachtoffer, zonder dat het slachtoffer weet dat het gecompromitteerd is.
Elk jaar gebeuren er miljarden malware‑aanvallen wereldwijd op allerlei apparaten en besturingssystemen. Met malware houden cybercriminelen niet alleen apparaten, maar ook volledige bedrijfsnetwerken gegijzeld.
Door ongeautoriseerde toegang te krijgen tot de apparaten van het slachtoffer, stelen aanvallers digitale activa en gevoelige gegevens, waaronder inloggegevens, creditcardnummers en andere waardevolle informatie. Malware‑aanvallen richten zich steeds vaker op bedrijven omdat bedrijven aanzienlijke hoeveelheden persoonlijke gegevens bezitten, die hackers kunnen misbruiken om grote sommen geld af te persen.
Gegevens tonen aan dat de meerderheid (59 %) van de organisaties in 2024 slachtoffer was van zo’n aanval. Zelfs kleinere bedrijven zijn niet veilig, met 47 % van hen die vorig jaar door ransomware werden getroffen. Ondertussen steeg de gemiddelde losgeldbetaling met 500 % tot $2 miljoen in die periode.
De gemiddelde kosten voor herstel na een malware‑aanval zijn ook gestegen tot $2,73 miljoen. Een van de grootste bedreigingen waar het internet momenteel mee te maken heeft, is malware, die verschillende vormen kan aannemen met als enige doel computersystemen en hun gebruikers te schaden.
Virussen, ransomware, trojans, worms, spyware, adware en crypto‑jacking zijn allemaal verschillende soorten malware. Al deze zijn ontworpen om ongeautoriseerde toegang tot een netwerk te verkrijgen of computersystemen te beschadigen.
Wat betreft de onderliggende oorzaken van aanvallen, is de grootste, met 32 %, dat aanvallers kwetsbaarheden exploiteren, gevolgd door gecompromitteerde inloggegevens (29 %) en vervolgens kwaadaardige e‑mails (23 %).
Hoe kun je jezelf nu beschermen tegen deze alomtegenwoordige dreiging? De eerste en eenvoudigste stap is om je computer en software altijd up‑to‑date te houden. Daarnaast is het cruciaal dat je niet zomaar op alles klikt op internet. Vooral als crypto‑gebruiker moet je wantrouwig staan tegenover links en absoluut niets downloaden waar je niet zeker van bent.
Hetzelfde geldt voor e‑mailbijlagen. Wees op je hoede voor het openen van verdachte e‑mails en probeer je bestandsdeling tot een minimum te beperken. Het is verstandig om antivirussoftware op je apparaat geïnstalleerd te hebben.
Hoewel onvermijdelijk, kunnen organisaties zich ook voorbereiden op malware‑aanvallen door hun verdediging te versterken. De meest eenvoudige manieren om dit te doen zijn het gebruik van sterke wachtwoorden, multi‑factor authenticatie en VPN’s, die individuen ook kunnen gebruiken om zichzelf effectiever te beschermen.
Organisaties moeten voortdurend apparaten monitoren op tekenen van verdachte activiteit, eventuele kwetsbaarheden beoordelen en penetratietests uitvoeren. Back‑ups van gevoelige gegevens op schijven die losgekoppeld zijn van het netwerk helpen ondertussen bij herstel van malware‑aanvallen.
Werknemers moeten worden getraind om dergelijke aanvallen beter te herkennen en snel te reageren door incidentresponsplannen te hebben en te weten met wie ze contact moeten opnemen bij het vermoeden van een malware‑dreiging.
Door gebruik te maken van een zero‑trust‑netwerkarchitectuur kunnen bedrijven ervoor zorgen dat niemand toegang krijgt tot gegevens of assets die ze niet mogen hebben. In zero‑trust worden gebruikers nooit vertrouwd en altijd geverifieerd.
In het hyperdigitale leven van vandaag kunnen deze praktijken iemand helpen zichzelf te beschermen tegen de gevaren van een steeds meer onderling verbonden wereld.
Als het gaat om het beschermen tegen kwaadaardige pakketten, gelden de algemene malware‑beveiligingsaanbevelingen ook voor npm‑aanvallen, maar uiteraard zijn er extra, specifieke voorzorgsmaatregelen die men moet nemen vanwege de kwetsbaarheid van het ecosysteem, veroorzaakt door de open aard, het veelvuldige hergebruik van kleine pakketten en grote afhankelijkheidsbomen.
Om jezelf te beschermen tegen deze ernstige dreiging, moet je altijd dubbel controleren of het pakket betrouwbaar is voordat je het installeert. Het verifiëren van de integriteit van het pakket zorgt ervoor dat je afhankelijkheidsboom niet is gemanipuleerd.
Bij het zoeken naar tekenen van illegitimiteit, naast de bron en eigendom van het pakket, moet je eventuele wijzigingen aan de maintainers onderzoeken. Je wilt misschien ook bekijken wat pakketten doen en waarom ze nodig zijn.
Gebruik beveiligingstools die continu monitoren op nieuwe bedreigingen en bruikbare adviezen geven om de situatie te mitigeren. npm‑auditcontroles kunnen worden uitgevoerd voor bekende kwetsbaarheden in de afhankelijkheden van het project. Het implementeren van geautomatiseerde beveiligingsscans vóór de uitrol zorgt er ondertussen voor dat alleen beoordeelde en goedgekeurde code in productie komt.
Nu, om jezelf te beschermen tegen de nieuwste malware‑aanval, moet je de getroffen pakketten vastzetten op hun veiligste versies vóór de compromittering via de overrides‑functie in package.json.
Voer npm audit uit of gebruik software‑composition‑analysis (SCA)‑tools om te controleren op getroffen versies in je afhankelijkheidsboom. Houd eventuele Indicators of Compromise (IoC’s) in de gaten door je build‑logboeken, ontwikkelomgevingen en uitgaand verkeer te controleren op verdachte activiteit.
Klik hier voor een lijst van de top vijf bedrijven die terugvochten tegen cyberaanvallen.
Slotgedachten: Het versterken van open‑source‑afhankelijkheden
De bedreigingen op internet nemen voortdurend toe en worden steeds geavanceerder.
Nu aanvallers zich wenden tot nieuwe aanvalsvectoren en ondergefinancierde projecten targeten, wordt het cruciaal voor ontwikkelaars, bedrijven en gebruikers om niet te wachten tot de dreiging zich voordoet voordat ze handelen, maar proactieve maatregelen te nemen omdat één zwakke schakel een heel systeem kan neerhalen.
Door op de hoogte te blijven van opkomende dreigingen en continu de software‑supply‑chains te auditen en bedreigingen te monitoren, kunnen we ons echt beschermen tegen de voortdurend evoluerende cyberrisico’s.
Klik hier voor een lijst van de top vijf openbare bedrijven die cyberaanvallers hebben betaald.












