Skip to main content
Blog
Blog

CSP-ontwijkingsbestendige bescherming tegen geobfusceerde JavaScript: gids 2026

Waarom CSP JavaScript-aanvallen via obfuscatie niet kan stoppen en wat gedragsmonitoring op browserniveau toevoegt dat bronlijsten niet kunnen bieden.

Jul 12, 2026 5 min read
CSP-ontwijkingsbestendige bescherming tegen geobfusceerde JavaScript: gids 2026

CSP-ontwijkingsbestendige bescherming verwijst naar beveiligingscontroles die kwaadaardige JavaScript detecteren en blokkeren, zelfs wanneer die code obfuscatie, dynamisch laden of injectie via vertrouwde hosts gebruikt om de Content Security Policy te omzeilen. CSP handhaaft een toestemmingslijst van goedgekeurde scriptbronnen, maar kan niet inspecteren wat die goedgekeurde bronnen uitvoeren. Ontwijkingsbestendige controles observeren het runtime-gedrag van elk script in de browsersessie en detecteren bedreigingen die door brontoestemmingslijsten komen zonder één beleidsinbreuk te veroorzaken.

De Polyfill[.]io supply chain-aanval in juni 2024 toonde deze kloof. Meer dan 490.000 websites hadden cdn.polyfill[.]io op hun CSP-toestemmingslijst. Toen het domein van eigenaar wisselde en de nieuwe beheerder de legitieme bibliotheek verving door geobfusceerde malware, laadde elk getroffen site de kwaadaardige payload en voerde deze uit terwijl CSP geen inbreuk rapporteerde. (Sansec-onderzoek, juni 2024)

Drie routes die geobfusceerde code gebruikt om CSP te omzeilen

CSP controleert bronnen, niet payloads. Drie aanvalspatronen maken gebruik van dit gat:

Compromittering van een vertrouwde CDN of externe host. Het script wordt geladen van een domein dat al op de toestemmingslijst staat. Een gewijzigde payload activeert CSP niet omdat de bron-URL ongewijzigd is. Polyfill[.]io, Magecart-aanvallen via web skimming en recente compromitteringen van analytics-CDN's volgen deze route.

Injectie in eigen bestanden. Een aanvaller met servertoegang injecteert geobfusceerde code in een bestaand eigen JavaScript-bestand. Dat bestand wordt geladen vanaf het domein van de site, dat altijd is toegestaan.

Dynamische code-opbouw tijdens uitvoering. Een goedgekeurd script laadt en stelt een kwaadaardige functie samen uit stringfragmenten tijdens uitvoering, met behulp van eval(), Function() of indirecte equivalenten. De gevaarlijke payload bestaat nooit in een geladen resource; het wordt gebouwd in de browser na een schone paginaopbouw.

Geen van deze routes schendt een brontoestemmingslijst. CSP rapporteert schoon terwijl geobfusceerde malware wordt uitgevoerd.

Hoe geobfusceerde scripts ook geautomatiseerde scanners omzeilen

Obfuscatie verwijdert de leesbare signalen waar zowel menselijke revisoren als geautomatiseerde scanners naar zoeken:

TechniekWat het doetWaarom scanners het missen
String-splitsing en -samenvoegingVerdeelt URL's en sleutelwoorden in fragmenten die tijdens uitvoering worden samengevoegdGeen volledige string verschijnt in de statische bron
Base64-codering met dynamische decoderingSlaat de payload op als een blob die alleen bij uitvoering wordt gedecodeerdLijkt op data, niet op uitvoerbare code, voor een statische analyser
Hexadecimale of Unicode-escape-reeksenCodeert tekens als \x61 of AStatische tools moeten de code uitvoeren om de echte waarde te herleiden
Willekeurige variabelenamenVervangt leesbare identifiers door willekeurige korte namenVerwijdert het sleutelwoordsignaal waarop patroondetectoren vertrouwen
Dynamisch laden op laat tijdstipHaalt de echte payload van een C2-server nadat een goedgekeurd script wordt uitgevoerdDe geladen resource verschilt bij elke scan

Subresource Integrity (SRI)-hashes beschermen tegen stille payload-vervangingen van bekende bronnen, maar alleen wanneer een hash voor elk bestand kan worden vastgelegd. Scripts van derden die frequent worden bijgewerkt maken SRI in productie onpraktisch, wat de kern vormt van de uitdaging rond scriptintegriteitsbeheer voor dynamische scripts. SRI kan ook niet beschermen tegen payloads die dynamisch worden opgehaald van een C2-endpoint, omdat die payload niet aanwezig was toen een hash werd berekend.

Benaderingen voor bescherming tegen geobfusceerde JavaScript

BenaderingBroncontrolePayload-inspectieHandelt vertrouwde host-compromittering afDetecteert runtime dynamische injectie
CSPJaNeeNeeNee
Subresource Integrity (SRI)GedeeltelijkAlleen hashGedeeltelijkNee
WAF of netwerklaagfilteringGedeeltelijkNeeNeeNee
Statische JavaScript-analyseNeeGedeeltelijkGedeeltelijkNee
Gedragsmonitoring op browserlaagOptioneel per beleidJaJaJa

Gedragsmonitoring op browserlaag is de enige controle in deze tabel die alle drie de omzeilingsroutes overleeft. Het werkt naast CSP en dekt de zichtbaarheidslacune voor payloads die CSP openlaat.

Wat te eisen van een CSP-ontwijkingsbestendig hulpmiddel

Vier vragen voordat een leverancier op de shortlist wordt gezet:

Runtime payload-observatie. Analyseert het hulpmiddel wat scripts uitvoeren in de browser, niet alleen de URL's waarvan ze worden geladen? Vraag de leverancier om detectie te demonstreren van een script dat wordt geladen van een vertrouwd domein en een ongeautoriseerd exfiltratie-endpoint aanroept. Als de demo een kwaadaardige bron-URL nodig heeft om te activeren, is het hulpmiddel bronafhankelijk.

Detectie van geobfusceerde codepatronen. Stel specifieke vragen over string-splitsing, eval()-equivalenten en dynamische Base64-decodering. Hulpmiddelen die alleen letterlijk eval() markeren, zullen de meeste echte obfuscatie missen.

Gedragsmonitoring na het laden. Veel aanvallen halen hun echte payload van een C2-server op na het initiële laden van de pagina. Het hulpmiddel moet blijven monitoren na DOMContentLoaded, niet alleen bij de initiële verwerking.

Verklaarbare meldingen. Een melding die alleen "verdacht script gedetecteerd" zegt, is niet bruikbaar. Elke bevinding moet het script identificeren, het gedrag dat detectie activeerde en de netwerkoproep die werd geprobeerd, zodat een analist kan triageren zonder te raden.

Hoe cside past in dit plaatje

cside instrumenteert de browser via een script dat in elke bezoekersessie wordt uitgevoerd. Het observeert wat elk script van derden en elk eigen script doet tijdens uitvoering: gedane netwerkoproepen, toegepaste DOM-wijzigingen, benaderde gevoelige datavelden en gedetecteerde geobfusceerde uitvoeringspatronen.

Wanneer een gecompromitteerde CDN een geobfusceerde payload serveert aan een pagina die door cside is geïnstrumenteerd, activeert detectie op wat de payload doet tijdens uitvoering (ongeautoriseerde netwerkoproep, geobfusceerde eval-keten, data-exfiltratiepatroon) in plaats van op waar het vandaan is geladen. Een mislukking van de brontoestemmingslijst kan geen vals negatief produceren in een op gedrag gebaseerd systeem.

PCI DSS v4.0.1-vereisten 6.4.3 en 11.6.1 (verplicht sinds maart 2025) vereisen dat handelaren alle scripts op betaalpagina's autoriseren en ongeautoriseerde wijzigingen in scriptinhoud of HTTP-headers detecteren. Gedragsmonitoring op browserlaag levert het uitvoeringsgerichte bewijs dat die controles verwachten van een monitoringlaag die tot in de browser reikt in plaats van te stoppen bij de netwerkrand.

Voor meer informatie over de praktische beperkingen van CSP, zie waarom CSP niet werkt. Voor een technische analyse van obfuscatiemethoden die in echte aanvallen worden gebruikt, zie de gids voor het deobfusceren van JavaScript van derden.

Simon Wijckmans
Founder & CEO

Founder and CEO of cside. Previously a product manager on Cloudflare Page Shield (now Cloudflare Client-Side Security). Co-chair of the W3C Anti-Fraud Community Group and a Forbes 30 Under 30 honoree. Building accessible security against client-side attacks — web security is not an enterprise-only problem.

FAQ

Frequently Asked Questions

CSP-ontwijkingsbestendige bescherming verwijst naar beveiligingscontroles die kwaadaardige JavaScript detecteren en blokkeren, zelfs wanneer aanvallers obfuscatie, dynamisch laden vanuit een vertrouwde host of late injectie gebruiken om een Content Security Policy te omzeilen. CSP handhaaft brontoestemmingslijsten; ontwijkingsbestendige controles inspecteren wat scripts daadwerkelijk uitvoeren in de browser.

CSP keurt scripts goed of blokkeert ze op basis van waar ze vandaan komen, niet op basis van wat ze doen. Aanvallers omzeilen het via drie routes: een vertrouwde CDN compromitteren zodat de toegestane bron geobfusceerde malware levert, geobfusceerde payloads injecteren in eigen bestanden die de server al vertrouwt, en gevaarlijke functies samenstellen uit stringfragmenten tijdens uitvoering met eval()-equivalenten. Geen van deze routes schendt een brontoestemmingslijst.

De kernvereiste is payload-inspectie tijdens uitvoering. Een CSP-ontwijkingsbestendige tool observeert wat scripts uitvoeren binnen de browsersessie, niet alleen de domeinen waarvan ze worden geladen. Het moet geobfusceerde codepatronen, ongeautoriseerde netwerkoproepen en gedragswijzigingen midden in een sessie markeren, zonder afhankelijk te zijn van een brontoestemmingslijst.

Supply chain-aanvallen via vertrouwde CDN's zijn het hoofdpatroon. In juni 2024 leverde het Polyfill[.]io-compromis geobfusceerde malware aan meer dan 490.000 websites. Elk getroffen site had cdn.polyfill[.]io op zijn CSP-toestemmingslijst en er werd geen beleidsschending geactiveerd. Magecart-betalingsskimmers volgen dezelfde route: een gecompromitteerde vertrouwde host serveert geobfusceerde exfiltratiecod die een goedgekeurde CSP toestaat.

cside instrumenteert de browser om te observeren wat elk script doet tijdens uitvoering, niet alleen waar het vandaan wordt geladen. Het detecteert geobfusceerde codeuitvoering, ongeautoriseerde dataoproepen en dynamische injectiepatronen die na het laden van de pagina verschijnen. Omdat detectie werkt op de uitvoeringslaag in plaats van de bronlaag, levert een gecompromitteerde vertrouwde CDN geen vals negatief op.

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