Laptop op een houten bureau met HTML-, CSS- en JavaScript-code op het scherm.
Nieuws1 augustus · 10:134 min leestijd

Gekaapt advertentiescript van Adform serveert een week lang een cryptostealer

Het trackingscript van Adform, dat op de sites van zo'n 14.000 klanten staat, leverde ruim een week lang een cryptostealer uit die gekopieerde walletadressen verving. De site van de klant werd doorgeefluik zonder zelf gehackt te zijn.

Het advertentiescript van Adform, ingebed op de sites van zo'n 14.000 klanten, serveerde ruim een week lang een cryptostealer die gekopieerde walletadressen verving, ontdekte beveiligingsonderzoeker Kevin Beaumont.

Voor een Nederlands bedrijf dat Adform of vergelijkbare ad-tech op de eigen pagina's draait, is dat een ongemakkelijke rolwissel. De eigen server is niet aangeraakt, het CMS is niet gekraakt, en toch werd de site het afleverpunt van malware. Bezoek je een site die Adform gebruikt, dan besmet die site jouw apparaat, schrijft Beaumont. De bezoeker ziet in de adresbalk alleen de domeinnaam van de website-eigenaar.

Wat de code deed

Adform levert zijn trackingscript uit vanaf s2.adform.net onder de naam trackpoint-async.js, en dat bestand staat ingebed op elke site die het platform gebruikt. Aan het einde van de legitieme bibliotheek was in versluierde vorm extra code geplakt. Die code las elke drie seconden het klembord uit, herkende geldige bitcoin-, ethereum- en TRON-adressen en verving ze door adressen van de aanvaller. Kopieerde je het juiste adres opnieuw, dan werd het opnieuw omgewisseld. Ook adressen die gewoon zichtbaar op de pagina stonden kon de code herschrijven, zodat een betaalverzoek meteen het verkeerde adres toonde.

Andere via Adform uitgeleverde scripts stuurden het IP-adres van de bezoeker, de verwijzende website en het URL-pad naar een server van de aanvaller op 84.32.102.230, poort 7744. Op VirusTotal sloeg geen enkele antivirus-engine aan op het besmette bestand.

Dat een omgewisseld adres onopgemerkt blijft, is geen toeval. Een walletadres is een reeks van tientallen tekens die vrijwel niemand met het oog controleert.

Een papieren bitcoinwallet met links het openbare adres en rechts de geheime sleutel, allebei als QR-code en als lange tekenreeks. Bron: FlippyFlink / Wikimedia Commons (CC BY-SA 4.0)
Een papieren bitcoinwallet met links het openbare adres en rechts de geheime sleutel, allebei als QR-code en als lange tekenreeks. Bron: FlippyFlink / Wikimedia Commons (CC BY-SA 4.0)

De tijdlijnen lopen niet gelijk

Adform stelde op 27 juli verdachte activiteit vast en zegt dat het de kwaadaardige code verwijderde en verdere maatregelen nam om bezoekers, klanten en het platform te beschermen. De code was volgens het bedrijf niet bedoeld om software te installeren of zich op een apparaat vast te zetten, en werkte alleen zolang de betreffende pagina openstond. De diensten zijn nu veilig te gebruiken, stelt Adform, terwijl het onderzoek doorloopt. Klanten zijn via aparte berichten geïnformeerd, bezoekers krijgen het advies hun browsercookies te wissen.

Die verklaring beschrijft de impact als een bezoek aan een getroffen site op 27 juli 2026. Beaumont zag de kwaadaardige activiteit de hele week draaien en constateerde pas tijdens het schrijven van zijn analyse dat de code begon te verdwijnen. Het oudste besmette exemplaar dat BleepingComputer terugvond in een archiefkopie stamt van 26 juli, 23:29 uur GMT. Hoeveel en welke sites het bestand daadwerkelijk hebben uitgeleverd, staat in geen van beide publicaties: een aantal of een lijst ontbreekt. Het nieuws kwam bovendien van een onderzoeker, niet van een publieke melding door de leverancier.

Wat er op je eigen pagina's draait

Een third-party script is code van een externe partij die je zelf in je pagina's zet en die in de browser van je bezoeker draait met dezelfde rechten als je eigen code: analytics, chatwidgets, A/B-tests, consentbanners, advertentie- en trackingpixels. Verandert dat bestand aan de kant van de leverancier, dan verandert jouw site mee. Vier maatregelen beperken dat risico.

  • Inventarisatie. Open het netwerktabblad van je browser op je eigen site en noteer elk domein waarvandaan een script laadt. Wat niemand meer kan uitleggen, kan eruit.
  • Subresource Integrity. Een hash in de scripttag laat de browser weigeren wat niet exact overeenkomt met het goedgekeurde bestand. Dat werkt alleen bij scripts met vaste inhoud, en veel ad-tech levert bewust een steeds wisselend bestand uit.
  • Content Security Policy. Een header die vastlegt vanaf welke domeinen scripts mogen laden en met welke bestemmingen de pagina verbinding mag maken. Dat houdt het script zelf niet tegen, maar wel een groot deel van wat het naar buiten kan sturen.
  • Contractuele eisen. Leg vast binnen hoeveel uur een leverancier een incident meldt, welke technische kenmerken hij dan deelt en wie de bezoekers informeert.

Waar de code landt, is veranderd

Supply chain-aanvallen via code van derden zijn geen nieuw fenomeen. Bij de gekaapte npm-pakketten debug, chalk en axios bereikte de kwaadaardige code binnen twee uur één op de tien cloudomgevingen, en breder is bij 48 procent van de inbraken inmiddels een derde partij betrokken. Wat de zaak bij Adform toevoegt, is de plek waar de vergiftigde code terechtkomt. Niet in een build op een ontwikkelmachine, maar rechtstreeks in de browser van de bezoeker van een doodgewone bedrijfssite.

Een week ongedetecteerde activiteit bij een leverancier met 14.000 klanten, met nul treffers op VirusTotal, laat zien hoeveel zicht de meeste website-eigenaren hebben op de code die ze zelf hebben ingeplakt. De vraag verschuift van of je server dicht staat naar wiens code je uitvoert op je eigen pagina's, en of je het zou merken als die code verandert.

Veelgestelde vragen

Alisina Nawabi
Geschreven doorAlisina Nawabi

AI Product Engineer & Solutions Architect

Grip op externe code

Wat er van derden in je site en je systemen meedraait, is uiteindelijk een ontwerpkeuze. Ik denk met je mee, ontwerp het en bouw het ook, van koppelingen tot automatisering, self-hosted waar dat kan.

Meer informatie

Dit artikel is geproduceerd samen met het Agent Team. Meer over de redactie.

Verken verder

Concepten

Supply-chain-aanvalSupply chain attackCryptostealerAd-techAdvertentiescriptRisicobeperkingThird-party scriptWalletadres

Gerelateerde artikelen

Amazon schrijft kaping van npm-pakketten debug, chalk en axios toe aan één Noord-Koreaanse groep
Nieuws
5 min

30 jul 22:12

Amazon schrijft kaping van npm-pakketten debug, chalk en axios toe aan één Noord-Koreaanse groep

Amazon koppelt de kapingen van npm-pakketten axios, debug, chalk en typo-crypto met medium confidence aan één Noord-Koreaanse groep. Het bereik was enorm, de buit klein, en het aanvalsambacht verschuift richting AI-scanners.

CrowdStrike vindt LLM-malware in npm en bugbounties
Nieuws
5 min

15 sep 22:24

CrowdStrike vindt LLM-malware in npm en bugbounties

CrowdStrike beschrijft PhantomRaven, een waarschijnlijk met een LLM geschreven informatiedief dat via npm ontwikkelaarsdata verzamelt en de buit inzet voor bug-bountyclaims. Twee pakketten en de CI/CD-omgeving staan centraal.

Google, OpenAI en Anthropic bespreken AI-veiligheidsorgaan
Nieuws
4 min

14 sep 12:13

Google, OpenAI en Anthropic bespreken AI-veiligheidsorgaan

Google, OpenAI en Anthropic bespreken een mogelijk gezamenlijk orgaan voor veiligheidsstandaarden rond frontier-AI. De gesprekken kunnen later bepalen hoe leveranciers modellen testen, uitbrengen en beschikbaar maken buiten de Verenigde Staten.

Google ziet AI-agenten in minder dan zes uur credentials oogsten
Nieuws
5 min

8 sep 16:21

Google ziet AI-agenten in minder dan zes uur credentials oogsten

Google Threat Intelligence Group beschrijft hoe een financieel gemotiveerde aanvaller in minder dan zes uur een autonome campagne bouwde die duizenden credentials oogstte. De inzet voor Nederlandse bedrijven ligt bij de grenzen rond cloud-, CI/CD- en agenttoegang.

Trezor meldt 67.000 extra gedupeerden: ShipMonk wiste oude klantdata niet
Nieuws
6 min

5 sep 12:22

Trezor meldt 67.000 extra gedupeerden: ShipMonk wiste oude klantdata niet

Het datalek bij Trezors verzendpartner ShipMonk raakt 67.000 Amerikaanse klanten meer dan gemeld, met bestelgegevens uit 2019 tot 2021 die volgens contract allang gewist hadden moeten zijn. De les gaat over verwerkersovereenkomsten.

Verwijdertools voor het Claude-watermerk duiken op, bewijs dat ze werken ontbreekt
Nieuws
4 min

13 aug 20:50

Verwijdertools voor het Claude-watermerk duiken op, bewijs dat ze werken ontbreekt

Binnen twee dagen na het watermerk van Anthropic staan er tientallen verwijdertools, met ruim 4.800 sterren voor het grootste project. Geen ervan kan bewijzen dat het merkteken verdwijnt, want de detector ontbreekt.