Skip to main content
Blog
Blog Attacks

Schaduw GTM-containers op gokplatforms van meerdere merken: wat ze zijn en hoe u ze kunt detecteren

Ongeautoriseerde GTM-containers kunnen elke JavaScript uitvoeren op uw gokdomeinen. Hoe schaduwcontainers verschijnen en waarom tools ze missen.

Jun 25, 2026 11 min read
Donkere cside-blogcover met een blauwe pixelgolf en een checklist over verborgen GTM-containers op gokplatforms

Als uw platform 70 of meer casinomerken beheert, draait Google Tag Manager vrijwel zeker op elk domein. En binnen deze domeinen is het aantal actieve container-ID's dat uw beveiligingsteam formeel heeft beoordeeld waarschijnlijk veel kleiner dan het aantal dat daadwerkelijk wordt uitgevoerd in de browsers van spelers. Die kloof is het schaduw-GTM-probleem. In Q1 2025 heeft cside meer dan 300.000 aanvalssignalen gedetecteerd op bewaakte sites, waarbij ongeautoriseerde scriptuitvoering via tagmanagers een van de meest consistente aanvalsvectoren in het iGaming-segment vertegenwoordigt. Bij het werken met gokexploitanten met meerdere merken heb ik gezien dat de kloof tussen de containers die beveiligingsteams kennen en de containers die daadwerkelijk in de browsers van spelers worden uitgevoerd groter wordt naarmate elk merk aan een portfolio wordt toegevoegd.

Wat een GTM-container eigenlijk is en waarom dit belangrijk is voor de beveiliging

Snel antwoord: Een Google Tag Manager-container is een JavaScript-uitvoeringsomgeving die op uw domein is geladen met volledige toegang tot de DOM, cookies, browseropslag en netwerkverzoeken. Elke tag die in die container wordt gepubliceerd, wordt uitgevoerd met dezelfde machtigingen als uw eigen first-party code. Een ongeautoriseerde container-ID op uw domein staat gelijk aan het verlenen van schrijftoegang aan een onbekende partij tot uw spelergerichte interface.**

Google Tag Manager is ontworpen om niet-ontwikkelaars JavaScript te laten implementeren op live websites zonder tussenkomst van engineering. Dat is de kernwaardepropositie voor marketing- en analyseteams. Vanuit veiligheidsoogpunt betekent diezelfde functie dat een enkele container-ID in een sitesjabloon een open uitvoeringscontext is voor iedereen met publicatierechten voor die container. Om de omvang van het probleem te illustreren: een enkele GTM-container kan 48 of meer onderliggende scripts activeren, en elk van deze scripts kan verdere afhankelijkheden laden. De leverancierslastketen is een boom, geen lijst, en de meeste beveiligingsteams zijn zich alleen bewust van de root.

Wanneer beveiligingsteams hun aanvalsoppervlak controleren, richten ze zich doorgaans op:

  • Server-side infrastructuur en API's
  • Authenticatie en sessiebeheer
  • Bekende scripts van derden in de codebase

Wat zelden wordt gecontroleerd, is de GTM-containerinventaris zelf: welke container-ID's actief zijn in welke domeinen, wie publicatietoegang heeft en welke tags momenteel zijn geconfigureerd om te worden geactiveerd. Voor een platform met meerdere merken met 70 tot 200 domeinen wordt deze inventaris vrijwel nooit met strikte beveiliging bijgehouden.

Het ENISA-dreigingslandschap voor supply chain-aanvallen identificeert scripts en afhankelijkheidscompromissen van derden als een van de belangrijkste escalerende aanvalscategorieën. GTM-containers vormen de kern van dit risico omdat ze tegelijkertijd worden vertrouwd door de browser, worden gecontroleerd door niet-beveiligingspersoneel en in staat zijn willekeurige code uit te voeren. Voor een breder beeld van hoe afhankelijkheden van derden aanvalsvectoren worden voordat ze uw tagmanager bereiken, is het aanvalspatroon van de toeleveringsketen op zichzelf de moeite waard om te begrijpen.

Hoe Shadow GTM-containers verschijnen op gokplatforms

Snel antwoord: Schaduwcontainers bereiken iGaming-domeinen via vier hoofdroutes: aangesloten teams die hun eigen container-ID's insluiten tijdens het opzetten van de campagne, personeel van bureaus die containers toevoegen aan nieuwe merklanceringen zonder technische beoordeling, gecompromitteerde inloggegevens die aanvallers toegang geven tot het GTM-account en snelkoppelingen voor ontwikkelaars waarbij een testcontainer-ID wordt gepromoveerd naar productie en nooit wordt verwijderd.**

De term 'schaduw' impliceert niet noodzakelijkerwijs kwade bedoelingen op het moment van invoeging. Veel schaduwcontainers beginnen als legitieme operationele beslissingen die nooit zijn opgeschoond of herzien. Maar ze creëren persistente, niet-gecontroleerde uitvoeringscontexten die kunnen worden uitgebuit lang nadat hun oorspronkelijke doel is geëindigd.

Hier zijn de vier meest voorkomende oorzaken die zijn waargenomen op iGaming-platforms met meerdere merken:

  • Affiliate teamcontainer voegt toe: een prestatiemarketingteam komt een deal overeen met een aangesloten netwerk waarvoor een pixel nodig is die via GTM wordt afgevuurd. De aangeslotene levert zijn eigen container-ID op. Marketing voegt het rechtstreeks toe aan de domeinsjabloon zonder een beveiligingsticket te genereren. De container vuurt vanaf dat moment op alle naar de speler gerichte pagina's.

  • Nieuwe merklanceringen: tijdens een snel bewegende merklancering voegt een bureau of ontwikkelaar een tijdelijke GTM-container toe om prototypeanalyses en tracking te maken. Na de lancering blijft de container actief omdat niemand eigenaar is van de ontmantelingstaak.

  • Gecompromitteerde GTM-inloggegevens: een bedreigingsacteur krijgt toegang tot een bestaande geautoriseerde GTM-container via een phishing-marketingcontractant of een credential stuffing-aanval op een Google-account dat aan de container is gekoppeld. Ze publiceren een nieuwe kwaadaardige tag binnen een reeds vertrouwde container.

  • Snelkoppelingen voor ontwikkelaars: een QA- of stagingcontainer-ID wordt tijdens het bouwen van een site hardgecodeerd in een gedeelde sjabloon. Wanneer de sjabloon voor meerdere domeinen live gaat, wordt de staging-container meegeleverd, en staging-containers hebben doorgaans minder gecontroleerde publicatietoegang.

In al deze gevallen tonen de netwerklogboeken van het platform dezelfde vermelding: een succesvol GET-verzoek aan www.googletagmanager.com/gtm.js?id=GTM-XXXXXXX. De container-ID is zichtbaar in de URL, maar er wordt op geen enkele geautomatiseerde manier naar een goedgekeurde voorraad verwezen.

Wat kan er gebeuren in een ongeautoriseerde container

Snel antwoord: In een ongeautoriseerde GTM-container kan een aanvaller pixelscripts inzetten die de PII van de speler naar advertentienetwerken van derden exfiltreren, omleidingscode injecteren die spelers naar sites van concurrenten omleidt, formulierveldskimmers op stortingspagina's installeren, schaduwaffiliatietracking uitvoeren die conversie-attributie kaapt, of extra kwaadaardige payloads laden van externe domeinen, allemaal zonder footprint op de server.**

Het bereik aan payloads dat een GTM-container kan leveren, wordt alleen beperkt door wat JavaScript in de browser kan doen. In de praktijk zijn vier payloadcategorieën het meest relevant voor iGaming-platforms.

Ten eerste schaduwvolgpixels. Een container kan Facebook-, TikTok- of LinkedIn-pixelgebeurtenissen activeren met niet-eigen pixel-ID's. Voor een kansspelexploitant die niet legaal op deze platforms kan adverteren, is dit zowel een GDPR-schending als een schending van het advertentiebeleid, en de exploitant is zich er mogelijk totaal niet van bewust dat dit gebeurt.

Ten tweede, spelersomleidingsscripts. Zoals beschreven in de context van het kapen van spelersreizen, kan een aangepaste HTML-tag in een GTM-container klikgebeurtenissen op stortingsknoppen, inlogformulieren of bonus-CTA's onderscheppen en spelers omleiden naar een bestemming van een concurrent. Het ingebouwde triggersysteem van de container maakt het eenvoudig om dit te beperken tot specifieke pagina's, apparaten of gebruikerssegmenten.

Ten derde: vorm veldschuimers. Op stortings- of KYC-pagina's waar spelers kaartgegevens of identiteitsdocumenten invoeren, kan een GTM-tag gebeurtenislisteners aan invoervelden koppelen en ingevoerde waarden exfiltreren naar een extern eindpunt. Dit is een browserlaag-equivalent van aanvallen in Magecart-stijl, uitgevoerd zonder code aan de serverzijde aan te raken.

Ten vierde, loader-scripts. Een containertag kan extra externe JavaScript-bestanden laden, waardoor de GTM-container effectief wordt omgezet in een eerste fase van de payload-dropper. Het domein dat de extra payload bedient, staat mogelijk niet op een blokkeerlijst op het moment van laden, waardoor detectie van de netwerklaag onbetrouwbaar wordt.

Waarom bestaande tools schaduwcontaineractiviteit missen

Snel antwoord: Netwerkmonitoringtools en CDN-laagoplossingen zorgen ervoor dat GTM.js succesvol is geladen vanuit de infrastructuur van Google. Ze zien niet welke container-ID's actief waren, welke tags binnen die containers werden geactiveerd, of wat die tags na het laden uitvoerden. Het aanvalsoppervlak bevindt zich volledig binnen de JavaScript-runtime van de browser, nadat de netwerktransactie is voltooid.**

Dit is de architecturale kloof die schaduw-GTM-containers tot een aanhoudend, ondergeadresseerd risico maakt. In de onderstaande tabel wordt elk veelgebruikt hulpmiddel in kaart gebracht wat het wel en niet kan waarnemen in een schaduw-GTM-scenario.

Categorie gereedschapWat het KAN zienWat het NIET KAN zien
Content Security Policy (CSP)Of scripts worden geladen vanuit toegestane domeinenWelke container-ID wordt uitgevoerd; welke code binnen een toegestaan domein wordt uitgevoerd
Web Application Firewall (WAF)HTTP-verzoek/antwoord-headers en -tekstenJavaScript wordt uitgevoerd binnen een browsertabblad nadat de pagina is geladen
Analyse van netwerkverkeerDat gtm.js is geladen; container-ID in de aanvraag-URLWelke tags in de container zijn afgevuurd; wat die tags uitvoerden; externe bronnen geladen na initialisatie
Browserontwikkelaarstools (handmatig)Volledig runtimegedrag op één domein op een bepaald momentRuntime-gedrag in 70 tot 200 domeinen continu; dynamisch gepubliceerde tagwijzigingen

Bij onze monitoring van gokplatforms met meerdere merken is de kloof tussen container-ID’s consistent groter dan exploitanten verwachten. Beveiligingsteams beschikken vaak over formele gegevens voor minder dan de helft van de container-ID's die we in hun domeinportfolio's zien uitvoeren. De discrepantie groeit met de schaal van het platform, en groeit sneller dan de meeste governance-processen kunnen volgen.

De Sansec polyfill.js openbaarmaking in juni 2024, die meer dan 490.000 sites trof, is een leerzame parallel. Al deze sites hadden een schijnbaar legitieme, veelgebruikte bibliotheek geladen vanaf een vertrouwd CDN. Netwerklogboeken lieten een succesvol, schoon antwoord zien. De kwaadaardige lading werd pas zichtbaar toen iemand keek naar wat de JavaScript feitelijk in de browser deed. Shadow GTM-containers volgen hetzelfde patroon: de netwerklaag rapporteert een schone belasting van de infrastructuur van Google, en alles wat volgt is onzichtbaar zonder browserlaaginstrumentatie.

Hoe cside elke container en elk script in alle domeinen identificeert

Snel antwoord: cside meet 100% van echte gebruikerssessies op de browserlaag, wat betekent dat het elke GTM-container-ID ziet laden op elk domein in uw portfolio, elke tag die binnen elke container wordt geactiveerd, en elk script dat deze tags uitvoeren of laden. Wanneer een nieuwe container-ID verschijnt of een bekende container een nieuw payload-type uitvoert, genereert cside in realtime een waarschuwing met volledige uitvoeringscontext.**

Voor platforms met meerdere merken biedt cside een uniforme scriptinventaris voor het gehele domeinportfolio. In plaats van een handmatige audit van elk GTM-account te vereisen, brengt het platform de runtime-realiteit naar boven: wat er feitelijk wordt uitgevoerd in de browsers van spelers, op dit moment, op elk domein.

Specifieke mogelijkheden die relevant zijn voor schaduw-GTM-detectie:

  • Opsomming van container-ID's: cside identificeert elke afzonderlijke GTM-container-ID die wordt waargenomen bij het laden in alle bewaakte domeinen, en markeert alle domeinen die niet aanwezig waren in de vorige inventarismomentopname
  • In kaart brengen van taguitvoering: voor elke container brengt cside in kaart welke aangepaste HTML-tags en tags voor het laden van scripts worden geactiveerd, en met welke externe domeinen ze contact opnemen
  • Nieuwe payload-waarschuwing: wanneer een eerder waargenomen container een nieuw scriptpatroon begint uit te voeren of contact maakt met een nieuw extern domein, wordt er onmiddellijk een waarschuwing gegenereerd
  • Cross-domein correlatie: als een schaduwcontainer-ID tegelijkertijd op meerdere domeinen verschijnt, identificeert cside het patroon, wat handig is voor het detecteren van gecoördineerde aanvallen tijdens de lancering van nieuwe merken of de uitrol van aangesloten campagnes
  • 100%-sessiedekking: omdat cside elke sessie meet, en geen voorbeeld, legt het aanvalsomstandigheden vast die alleen worden geactiveerd voor specifieke gebruikerssegmenten, apparaten of geografische locaties
  • Toestemmingsprofielen per leverancier: zodra een schaduwcontainer is geïdentificeerd en onder beheer is gebracht, kunnen operators aan elke GTM-geladen leverancier een eigen toestemmingsprofiel toewijzen met specifieke beheersbare mogelijkheden. Dit betekent dat een via GTM geladen analysetag kan worden beperkt in de toegang tot betalingsvelden, de Payment Request API of localStorage, zelfs als de code van de leverancier later wordt gecompromitteerd

cside vertrouwt niet op proxy-gebaseerde monitoring of passief bemonsteren van netwerkverkeer. De instrumentatie draait in de browser, waardoor deze hetzelfde gezichtspunt heeft als de scripts die hij controleert.

Wat de eerste monitoringsessie onthulde

Toen we eerder dit jaar de eerste cside-monitoringsessie uitvoerden op een groot Europees online gokplatform met meerdere merken, was een van de eerste dingen die op het dashboard naar voren kwamen een reeks GTM-container-ID's waar niemand van het beveiligingsteam rekening mee kon houden. Het platform exploiteerde meer dan zeventig casino- en sportweddenschapsmerken, en het beveiligingsteam was van mening dat ze redelijk grip hadden op hun tagmanager-domein. Wat de browserlaaginventarisatie liet zien, was anders. Binnen de eerste dag dat het oorspronkelijke merkdomein werd gemonitord, identificeerde cside meerdere actieve container-ID's die door het marketingteam waren toegevoegd zonder enig beveiligingsbeoordelingsproces te doorlopen. De containers stonden al maanden op live-spelergerichte pagina's.

Het beveiligingsteam was niet op de hoogte gesteld omdat het marketingteam niet wist dat melding vereist was. Er was geen vaststaand proces dat wijzigingen in de tagmanager koppelde aan beveiligingstoezicht. Elke container was toegevoegd in de context van een legitieme campagne of affiliate deal en was eenvoudigweg nooit beoordeeld of verwijderd. Binnen 24 uur na het starten van de monitoringsessie beschikte het platform over de eerste volledige runtime-inventaris van elke container die in het hele testdomein werd uitgevoerd, en werd er gewerkt aan een herstelplan voor de niet-beoordeelde containers. Het commentaar van het platform na de sessie: dit was de eerste keer dat ze hun volledige browserlaagscript op één plek hadden gezien.

Samenvatting

Shadow GTM-containers zijn een bestuursfout die een beveiligingsrisico creëert. De containers arriveren via normale operationele kanalen, worden geladen vanuit de vertrouwde Google-infrastructuur en zijn onzichtbaar voor elke monitoringtool die niet in de browser draait. Voor platforms met meerdere merken is de enige betrouwbare aanpak een continue browserlaaginstrumentatie die een live inventaris bijhoudt van elke container-ID, elke tag en elk script dat wordt uitgevoerd in het hele domeinportfolio. Een point-in-time audit zal altijd verouderd zijn tegen de tijd dat de volgende container wordt toegevoegd. cside's client-side security mogelijkheid biedt deze continue inventarisatie, en voor meer details over hoe omleidingspayloads via deze containers worden geleverd, zie onze gids voor kwaadwillige scriptomleidingsaanvallen op casinoplatforms.

Mike Kutlu
Client-Side Security Consultant

Client-side security consultant at cside. 10+ years of experience implementing technology solutions for enterprises (previously at Oracle, Cloudflare, and Splunk). Now helping teams use client-side intelligence to catch & reduce fraud.

FAQ

Frequently Asked Questions

Een schaduw-GTM-container is elke container-ID die op uw domein wordt uitgevoerd en die niet formeel is beoordeeld en goedgekeurd door uw beveiligings- of technische team. Technisch gezien is het identiek aan een geautoriseerde container: het laadt vanuit de infrastructuur van Google en werkt met dezelfde browserrechten. Het verschil heeft volledig te maken met bestuur. Uw beveiligingsteam weet niet dat het bestaat en heeft niet gevalideerd welke tags ervan publiceren.

Door uw eigen GTM-accounts te controleren, kunt u zien welke container-ID's u beheert en welke tags daarin zijn geconfigureerd. Er worden geen container-ID's weergegeven die door derden zijn toegevoegd en die rechtstreeks in uw sitesjablonen zijn ingesloten, en u kunt ook niet zien wat een gecompromitteerde container feitelijk in productie uitvoert. Browserlaagmonitoring is de enige manier om runtimegedrag in alle domeinen in realtime te zien.

De schaal en het tempo van de multi-brand activiteiten scheppen de voorwaarden. Bij elke merklancering, partnerdeal of betrokkenheid bij bureaus kan een nieuwe container-ID worden geïntroduceerd. Zonder een gecentraliseerd scriptbeheerproces dat alle wijzigingen in de tagmanager door een beveiligingsbeoordeling leidt, stapelen container-ID's zich sneller op dan audits ze kunnen volgen. Wanneer cside voor het eerst de runtime-containerinventaris voor een platform met meerdere merken opvraagt, is het gebruikelijk om actieve container-ID's te vinden waar niemand in het beveiligingsteam rekening mee kan houden.

CSP is een waardevolle verdediging, maar lost het schaduw-GTM-probleem niet op. Omdat GTM wordt geladen vanaf www.googletagmanager.com, dat op de toelatingslijst van CSP moet staan om GTM überhaupt te laten functioneren, passeert elke container-ID die vanuit dat domein wordt geladen, de CSP-validatie. CSP kan geen onderscheid maken tussen een geautoriseerde container en een schaduwcontainer die vanuit hetzelfde vertrouwde domein wordt geladen.

De directe stappen zijn: blokkeer de container-ID zodat deze niet op uw domeinen wordt geactiveerd door deze te verwijderen uit de sitesjabloon of de publicatieconfiguratie van de bovenliggende container, en onderzoek vervolgens de oorsprong (welk team deze heeft toegevoegd, wanneer en via welk proces). Bekijk de taggeschiedenis van de schaduwcontainer om te identificeren wat deze heeft uitgevoerd. Bewaar logbestanden voor eventuele wettelijke of forensische rapportageverplichtingen. Werk vervolgens uw scriptbeheerproces bij zodat een beveiligingscontrole vereist is voordat er een nieuwe container-ID wordt toegevoegd aan een domein in de portfolio.

Monitor en Beveilig Je Third-Party Scripts

Gain full visibility and control over every script delivered to your users to enhance site security and performance.

Start gratis, of probeer Business met een proefperiode van 14 dagen.

cside dashboard interface met script monitoring en beveiligingsanalytics
Related Articles
Boek een demo