737 nep-VPN-extensies in de Chrome Web Store stuurden al het browserverkeer van hun gebruikers door SOCKS5-proxyservers van één aanbieder, ontdekte beveiligingsbedrijf Socket. Google verwijderde er inmiddels 221.
De schade zit hier niet in gestolen wachtwoorden maar in de route. Een extensie die de proxy-instelling van Chrome overneemt, plaatst een onbekende partij tussen je medewerker en elke site die hij opent: het CRM, de webmail, het boekhoudpakket. Die partij ziet welk domein wordt bezocht en vanaf welk IP-adres, en leest alles mee wat nog over gewoon HTTP loopt. Daar zijn precies twee rechten voor nodig, waardoor zo'n extensie bij een snelle blik op de gevraagde permissies nergens rood kleurt.
Wat Socket aantrof
Onderzoeker Kush Pandya van Socket bracht 737 extensies in kaart, verspreid over ruim veertig ontwikkelaarsaccounts en samen goed voor 75.486 installaties. Van de 522 die hij kon analyseren dwongen er 520 al het browserverkeer door een SOCKS5-proxy op poort 1082. De uitzonderingslijst bevatte alleen localhost, zodat verder werkelijk elk verzoek langs de server van de operator ging.
274 van de extensies deden zich voor als 66 bestaande VPN-merken, waaronder Proton VPN, NordVPN, Surfshark, ExpressVPN, CyberGhost en de 1.1.1.1-dienst van Cloudflare. De gevraagde rechten bleven intussen minimaal: meestal alleen proxy en storage, soms aangevuld met activeTab. Dat ene proxy-recht is genoeg om precies tussen de gebruiker en het internet te gaan zitten, de positie die onderzoekers adversary-in-the-middle noemen. De operator ziet elke bestemming, elke TLS SNI-waarde, het bron-IP van de werkplek en de volledige inhoud van elk onversleuteld verzoek.

Een deel van de varianten verborg de eigen infrastructuur actief. 104 extensies zochten het adres van de proxy eerst op via DNS-over-HTTPS bij Cloudflare of Google en gaven Chrome daarna het kale IP-adres, zodat er geen leesbare DNS-vraag naar het domein van de operator meer over het netwerk ging. In een handleiding die per ongeluk werd meegeleverd staat die werkwijze als instructie voor het eigen personeel: zet geen domein in chrome.proxy.settings, alleen een IP-adres na resolutie.
Wat de operatie verkocht
Socket koppelt de campagne aan Myxa VPN, een Russisch abonnementsbedrijf dat een extensiepakket vanaf 99 roebel per maand verkoopt via een Telegram Mini App. 360 van de 522 onderzochte pakketten noemen Myxa VPN gewoon als leverancier, en het openbare aanbod staat op naam van een zelfstandige met een geldig Russisch belastingnummer. De installaties kwamen overwegend van Russische gebruikers, dus de directe Nederlandse blootstelling is vermoedelijk klein.
Wat de betalende klant kreeg, bestond niet. Socket testte alle tweehonderd premium-serverlocaties die de extensies aanboden in Japan, Singapore, Canada, Australië en Turkije: geen enkele leverde een DNS-record op. De gratis servers werkten wel, want daar liep het verkeer dat de operator wilde zien. Eén extensie gaf bij elke verbindingspoging een in de code vastgelegde foutmelding terug.
Waarom er nog ruim vijfhonderd in de winkel staan
Google haalde 221 extensies offline. De overige 516 stonden bij publicatie van het onderzoek nog live, samen goed voor 58.318 installaties. Socket laat zien waarom dat blijft schuiven: één codeskelet telt 51 vrijwel identieke extensies over acht accounts, en daarvan verwijderde Google er precies één. De andere vijftig bleven staan, samen 3.217 installaties.
De rekensom van de dader is simpel. Een ontwikkelaarsaccount kost vijf dollar. Gemiddeld publiceert zo'n account 9,1 extensies voordat de eerste eruit vliegt, en daarna nog 15,8 in de 69 dagen erna. Van de dertig accounts met een verwijdering hielden er 29 gewoon live extensies over. Bij 49 extensies werd de code na goedkeuring nog aangepast zonder dat de gevraagde rechten veranderden, en 66 halen bij het starten een HTTP-omleiding op om te ontdekken welk domein nu actief is. Zo verplaatst de operator zijn infrastructuur zonder ooit een update door de beoordeling te hoeven duwen.
Waar je dit in je eigen omgeving ziet
Voor een Nederlands bedrijf is dit vooral een aanleiding om een blinde vlek na te lopen. Extensies vallen bij veel organisaties buiten het zicht van de beheertooling: ze worden door de medewerker zelf geïnstalleerd, staan in geen enkele softwarelijst en draaien met rechten binnen de browser waar endpointbeveiliging weinig van merkt.
Drie controles zijn concreet. Inventariseer welke geïnstalleerde extensies het proxy-recht vragen, want dat is het recht dat deze hele aanval draagt. Kijk in chrome://settings of de proxy-instelling van de browser door een extensie wordt beheerd. En laat uitgaande SOCKS5-verbindingen op poort 1082 blokkeren en alarmeren op wijzigingen in chrome.proxy.settings.
Het patroon zelf is niet nieuw. Eind juni verwijderde Microsoft 119 Edge-extensies die inloggegevens, tweestapscodes en sessiecookies stalen bij tot 2,6 miljoen installaties, met code verstopt in afbeeldingen en lettertypebestanden. Het verschil zit in de buit. Daar werd data gestolen, hier wordt de route overgenomen. Wie het verkeer bezit, hoeft niets te stelen om alles te zien.
Wat deze zaak blootlegt, is dat de winkelcontrole een moment is en geen toestand. Een extensie wordt één keer beoordeeld, kan daarna zijn code vervangen, en het rechtenmodel zegt alleen wat een extensie mág, niet wat hij doet. Bij een recht als proxy liggen die twee ver uit elkaar: het klinkt als een instelling en het is in de praktijk volledig zicht op het browserverkeer van een werkplek. Zolang een verwijderde extensie vijftig identieke broertjes achterlaat, ligt die afweging niet bij de winkel maar bij de organisatie die bepaalt wat er in de browsers van haar medewerkers mag draaien.
Veelgestelde vragen
Grip op je digitale werkplek
Een extensie die stilletjes al je verkeer omleidt, is precies het soort blinde vlek dat pas opvalt als je in kaart brengt wat er echt draait. Ik denk daarin met je mee, ontwerp de inrichting en bouw en automatiseer het beheer, self-hosted waar dat kan.
Dit artikel is geproduceerd samen met het Agent Team. Meer over de redactie.
