Hier vind je alle nieuwsberichten van CyberAnt

Opnieuw malware aangetroffen in VS Code Extensies

In november 2025 meldden cybersecurity-onderzoekers een nieuwe golf van malware die zich richt op Visual Studio Code (VS Code)-extensies. De campagne, genaamd GlassWorm, werd eind oktober voor het eerst geïdentificeerd door Koi Security en is sindsdien opnieuw opgedoken bij andere extensies.

Drie extensies zijn nog steeds beschikbaar in het Open VSX-register, een openbare repository die de Microsoft Extension Marketplace weerspiegelt. De getroffen extensies zijn ai-driven-dev (3.402 downloads), adhamu.history-in-sublime-merge (4.057 downloads) en yasuyuky.transient-emacs (2.431 downloads). De extensies bevatte code die is verstopt is met onzichtbare Unicode-tekens, een techniek die kwaadaardige payloads verbergt voor gewone code-reviews en statische analysetools.

Glassworm

De doelstellingen van GlassWorm zijn drievoudig: ten eerste verzamelt het inloggegevens van het Open VSX-register, GitHub en verschillende cryptocurrency-wallet-extensies; ten tweede rooft het tegoeden uit ongeveer 49 wallet-extensies; en ten derde installeert het extra tools die externe toegang tot geïnfecteerde machines mogelijk maken. De malware verspreidt zich ook verder door de gestolen inloggegevens te gebruiken om andere extensies te compromitteren.

Open VSX ontdekte de kwaadaardige extensies op 21 oktober, waarna het deze verwijderde en de de bijbehorende toegangstokens roteerde. Ondanks deze maatregelen wijst recente analyse van Koi Security erop dat het nog steeds mogelijk is om nieuwe extensies te infecteren via dezelfde Unicode-truc. Daarnaast is er een nieuwe transactie op de Solana-blockchain waargenomen. Deze transactie bevatte een bijgewerkt C2-eindpunt, waarmee de malware in staat wordt gesteld om een volgende payload te downloaden. Volgens onderzoekers Idan Dardikman, Yuval Ronen en Lotan Sery van Koi Security illustreert het gebruik van blockchain voor command-and-control (C2) de veerkracht van de aanvallers: zelfs wanneer een hostingserver offline gaat, volstaat een goedkope transactie om een nieuw eindpunt te publiceren, waarna geïnfecteerde systemen automatisch de nieuwe locatie ophalen.

Verspreiding

Tijdens aanvullend onderzoek identificeerde de beveiligingsleverancier een endpoint dat onbedoeld was blootgesteld op de server van de aanvaller. Het endpoint leverde een gedeeltelijke lijst van slachtoffers op, verspreid over de Verenigde Staten, Zuid-Amerika, Europa en Azië, waaronder een belangrijke overheidsinstantie in het Midden-Oosten. De vermoedelijke herkomst van de malware kwam aan het licht via keylogger-data, vermoedelijk afkomstig van een machine van de aanvallers zelf. Analisten identificeerden de dreigingsactor als Russischtalig en ontdekten dat hij gebruikmaakt van het open-source browser-extensie-C2-framework RedExt.

In een verwant onderzoek publiceerde Aikido Security bevindingen waaruit blijkt dat GlassWorm zijn focus heeft verbreed naar GitHub. Gestolen GitHub-inloggegevens worden nu gebruikt om kwaadaardige commits in repositories te pushen, wat de potentiële schade aan open-sourceprojecten vergroot.

Grootschalige aanval op populaire npm-packages: miljoenen websites en apps mogelijk getroffen

Diverse veelgebruikte npm-packages (softwarebouwstenen) zijn besmet geraakt met kwaadaardige code. Dit gebeurde na een geslaagde phishingaanval op een van de beheerders van deze bouwblokken. Een npm-package is een bouwblok dat ontwikkelaars kunnen gebruiken in hun software, zodat ze veelgebruikte onderdelen niet elke keer opnieuw hoeven te programmeren. Daardoor komen bouwblokken overal terecht: zowel in maatwerksoftware als in standaard producten. De besmette onderdelen worden samen meer dan 2 miljard keer per week gedownload en gebruikt door ontwikkelaars wereldwijd.

Phishing

De aanvallers kregen toegang tot de repository via een phishing-mail. De aanval richtte zich op Josh Junon (ook bekend als Qix), een ontwikkelaar die medebeheerder is van meerdere populaire packages. Qix heeft de rechten om nieuwe code toe te voegen en goed te keuren, waardoor zijn account voldoende is om deze malware te verspreiden.

Junon ontving een phishingmail die sterk leek alsof deze van npm zelf afkomstig was, met de mededeling dat hij vóór 10 september 2025 zijn twee-staps-verificatie (2FA) moest vernieuwen via een link. Toen hij deze link volgde, kwam hij op een nepwebsite terecht waar hij zijn gebruikersnaam, wachtwoord en 2FA-code invoerde. Deze gegevens werden direct onderschept door criminelen via een zogenoemde Adversary-in-the-Middle-aanval, waarmee zij toegang tot zijn account verkregen. Met die toegang konden de aanvallers vervolgens besmette versies van twintig populaire packages publiceren in de officiële npm-bibliotheek.

Op BlueSky reageerde Junon: “Sorry everyone, I should have paid more attention. Not like me; have had a stressful week. Will work to get this cleaned up.”

Welke pakketten zijn getroffen?

Onder meer de volgende NPM-pakketten bevatten tijdelijk kwaadaardige code:

  • chalk (veel gebruikt om tekst in kleur weer te geven in softwaretools)

  • debug (veel gebruikt voor foutopsporing)

  • ansi-regex, ansi-styles, wrap-ansi, strip-ansi (onderdelen die met tekstopmaak werken)

  • color-convert, color-string, color-name (voor kleurbeheer in software)

Samen zijn deze pakketten goed voor twee miljard downloads per week. Omdat ze vaak als bouwsteen in andere pakketten worden hergebruikt, kon de besmetting zich breed verspreiden.

Vooral risico voor crypo-aanbieders

Uit analyse van de malware bleek dat deze was ontworpen om cryptovaluta te stelen. De kwaadaardige code begon met het controleren of deze in een browser draaide, en haakte vervolgens in op functies zoals window.fetch, XMLHttpRequest en window.ethereum.request. Dit zijn onderdelen die websites gebruiken om gegevens uit te wisselen en crypto-wallets aan te sturen. Hierdoor kon de code bij een betaling ongemerkt het walletadres van de ontvanger vervangen door dat van de aanvaller, waarbij het vervalste adres lijkt op het originele en daardoor nauwelijks opviel.

Dit soort aanvallen valt onder de noemer software supply chain attack. Bij een supply chain attack wordt niet de eindgebruiker direct aangevallen, maar een schakel in de toeleveringsketen van software. Soortgelijke aanvallen zijn al vaker gezien, bijvoorbeeld via typosquatting (een pakketje aanbieden met een bijna dezelfde naam als een populair pakket) of via slopsquatting (inspelen op foutjes van AI-systemen die verkeerde pakketnamen adviseren).

In dit geval is de malware specifiek gericht op ontwikkelaars die crypto-gerelateerde diensten aanbieden, waardoor de meeste software waarschijnlijk niet geraakt wordt, zelfs als deze besmet is geraakt.

Leeftijdsverificatie op internet: hoe zit het met privacy?

Op dit moment wordt 18+ content vaak afgeschermd met een pop-up waar de gebruiker moet verklaren dat deze 18+ is, iets wat het best omschreven kan worden als een wassen neus. De Europese Unie werkt aan een systeem om leeftijdsverificatie op internet te verbeteren als tijdelijke voorloper op het digitale identiteitsbewijs (EUDI-wallet). Achter die schijnbaar simpele vraag “Ben je 18 jaar of ouder?” schuilt een lastig probleem: hoe controleer je iemands leeftijd zonder dat dit ten koste gaat van de privacy?

Hoe zou dat er uit kunnen zien?

Wereldwijd zijn er meer landen die aan dit idee denken of het zelfs al ingevoerd hebben. In sommige landen worden burgers bijvoorbeeld geacht om hun paspoort of rijbewijs te uploaden of een gezichtsscan uit te laten voeren, iets wat natuurlijk enorme gevolgen voor de privacy heeft. Het systeem dat de EU voor ogen heeft is beter. Het is een afgeleide, of eigenlijk voorloper op de EUDI-wallet. Dit is het digitale identiteitsbewijs waarmee we ons in de toekomst online kunnen identificeren. Het leeftijdsverificatie-systeem lijkt in weze op het polsbandjessysteem dat op festivals gebruikt wordt: de barman kan aan de kleur van je polsbandje zien dat je oud genoeg bent om een biertje te bestellen, maar weet verder niet wie je bent.

Het systeem werkt ongeveer als volgt:

  • Je logt in op de leeftijdsverificatie-app via een officiële instantie (bijvoorbeeld een overheid, je bank of een erkende identiteit-provider).
  • Die instantie geeft je een cryptografisch bewijs: bijvoorbeeld “Deze persoon is 18 jaar of ouder”.
  • Dit bewijs staat los van de website waar je op in wilt loggen, de identiteit-provider weet dus niet waar je dit bewijs gaat gebruiken.
  • Wanneer je naar een website gaat (bijvoorbeeld examplesite.nl), laat je dat bewijs zien.
  • De website controleert het bewijs en ziet: deze persoon is 18+, maar ziet verder níet wie je bent.

Waar zit dan het probleem?

Dat polsbandje op een festival werkt prima zolang het een kleurcode is die elke bezoeker van 18+ krijgt. Maar stel je voor dat het een uniek nummer heeft. En stel dat elke barman dat nummer noteert. In de horeca zou dit raar zijn, maar digitaal wordt alles gelogd. Aan het einde van de zou de horeca-uitbater alle barmannen kunnen vragen om de nummers, en weet deze precies wat je waar besteld hebt. Combineer dat met camerabeelden en je bent plotseling een stuk minder anoniem.

In het “leeftijdsbewijs”-systeem dat nu in ontwikkeling is, heeft een bewijs een uniek kenmerk per persoon. Stel de eigenaar van examplesite.nl runt ook viezeplaatjes.nl en gokpaleis123.nl. Door het unieke kenmerk te loggen, kan hij precies zien dat jij op al die sites kwam. Heeft hij ook nog een webshop waar je iets koopt? Dan heeft hij je NAW-gegevens en kan hij je volledige surfgedrag koppelen aan je echte identiteit.

Nog erger zou het worden als een bedrijf als Google een handige plug-in voor website eigenaren zou bouwen waarbij ze dit lastige protocol kunnen ondersteunen door gewoon op “install” te klikken. Laat die cookies maar zitten: dit zou de meest robuuste manier van online tracking zijn.

Zero knowledge proof

Een veelbelovende techniek om dit privacy probleem op te lossen heet zero-knowledge proof. Kort gezegd is dat een cryptografische manier om iets te bewijzen zonder de onderliggende informatie prijs te geven. Concreet werkt het zo: je identiteit-provider genereert een digitaal bewijs op basis van je gegevens, maar zodanig versleuteld dat een website alleen kan controleren of het bewijs geldig is voor “18+”, zonder verder iets over jou te leren. Elke keer dat je zo’n bewijs aanmaakt, kan het anders worden opgebouwd, zodat websites het niet kunnen koppelen aan eerdere bewijzen.

Dat een bewijs niet meer terug te leiden is naar een individu levert echter ook weer nieuwe problemen op, want hoe voorkom je dat iemand zijn polsbandje uitleent aan iemand anders? Een oplossing zou kunnen zijn om de bewijzen op te slaan in een beveiligd stuk in de hardware, maar dit vereist dat het merendeel van de EU-burgers een apparaat hebben die dit ondersteund, iets wat momenteel nog niet het geval is. Toch lijkt zero knowledge proof de enige manier om het internet privacy-vriendelijk te houden. Al met al lijkt privacy en online leeftijdsverificatie en bijzonder ingewikkeld duo te zijn.

Subsidie voor webshops

Hoe veilig is jouw netwerk?

Het voorkomen van een datalek

CyberAnt verhuisd naar Zeewolde