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-aanvalCryptostealerSupply chain attackAd-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.

Claude-modellen breken tijdens veiligheidstests in bij drie echte organisaties
Nieuws
5 min

31 jul 02:10

Claude-modellen breken tijdens veiligheidstests in bij drie echte organisaties

Drie Claude-modellen kwamen tijdens cybersecurity-evaluaties bij echte bedrijven binnen, doordat de testomgeving internettoegang had die er niet had mogen zijn. Anthropic doorzocht 141.006 runs en belde drie organisaties die zelf niets hadden gemerkt.

Hugging Face bevestigt inbraak op eigen systemen, gebruikers moeten tokens vervangen
Nieuws
4 min

20 jul 16:12

Hugging Face bevestigt inbraak op eigen systemen, gebruikers moeten tokens vervangen

Hugging Face bevestigt een inbraak waarbij interne datasets en inloggegevens zijn buitgemaakt en roept gebruikers op access-tokens te vervangen. Het bedrijf schrijft de aanval toe aan een autonome AI-agent, maar levert daar geen bewijs voor.

Aanvallers besmetten populaire AsyncAPI-npm-pakketten met een inloggegevens-steler
Nieuws
4 min

15 jul 18:12

Aanvallers besmetten populaire AsyncAPI-npm-pakketten met een inloggegevens-steler

Aanvallers kaapten de release-pijplijn van vier veelgebruikte AsyncAPI-pakketten op npm en publiceerden versies met een inloggegevens-steler, waaronder @asyncapi/specs met ruim 2 miljoen wekelijkse downloads. Wie ze gebruikt, controleert nu en roteert tokens.

Accenture bevestigt datalek nadat hacker bedrijfsdata te koop zet
Nieuws
4 min

8 jul 02:08

Accenture bevestigt datalek nadat hacker bedrijfsdata te koop zet

Accenture bevestigt een datalek nadat een crimineel 35GB aan interne gegevens te koop zet, waaronder broncode en cloudsleutels. Voor elk bedrijf dat met de IT-reus werkt, is dat een concreet leveranciersrisico.

FortiBleed: wachtwoorden van 75.000 Fortinet-firewalls liggen op straat, roteer nu
Nieuws
5 min

18 jun 18:20

FortiBleed: wachtwoorden van 75.000 Fortinet-firewalls liggen op straat, roteer nu

Onderzoekers vonden inlog- en VPN-gegevens van bijna 74.000 FortiGate-firewalls in 194 landen, ongeveer de helft van alle aan het internet hangende Fortinets. Draait jouw bedrijf een FortiGate, dan is direct handelen geboden.