deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak dev.to (home feed)

Google Tag Manager CSP yanlış yapılandırmaları WAF ve CSP atlatmaya imkân veriyor, Raxis uyarıyor

Raxis araştırmacısı Ryan Chaplin, Google Tag Manager için eklenen unsafe-inline CSP direktiflerinin saldırganların Google'ın güvenilen alan adından kötü niyetli JavaScript çalıştırmasına nasıl izin verdiğini gösteriyor

Google Tag Manager CSP yanlış yapılandırmaları WAF ve CSP atlatmaya imkân veriyor, Raxis uyarıyor

Sızma testi firması Raxis'te güvenlik araştırmacısı olan Ryan Chaplin, Google Tag Manager'ı işler duruma getirmek için gevşetilen Content-Security-Policy (CSP) kurallarının, aslında korumaları gereken sitelere karşı nasıl kullanılabileceğini ve hem CSP hem de web uygulama güvenlik duvarı (WAF) savunmalarını nasıl etkisiz hale getirebileceğini belgeledi. 10 Şubat 2026'da özgün olarak Raxis blogunda, ardından dev.to'da yayımlanan bir yazıda Chaplin, bu kalıbın müşteri sızma testleri sırasında tekrar tekrar ortaya çıktığını, Google Analytics ve üçüncü taraf satıcı etiketlerinin çalışmaya devam etmesi için güvenli olmayan direktifler eklendiğini yazıyor. Araştırmanın bir kısmının Google'ın hata ödül programına sunulduğunu ve kendisine takdir belgesi ile hediyeler verildiğini söylüyor.

CSP nasıl zayıflatılıyor

Bir CSP, tarayıcıya bir sayfanın hangi içeriği yükleyebileceğini ve çalıştırabileceğini söyler ve cross-site scripting (XSS) saldırılarına karşı temel savunmalardan biridir. Chaplin, bir URL parametresini doğrudan sayfaya yansıtan kasıtlı olarak savunmasız bir test uygulamasıyla bunu gösteriyor. Nonce tabanlı bir politika klasik payload'ı engeller: sunucu her yanıt için yeni bir rastgele değer üretir ve bu değere sahip olmayan scriptler reddedilir. Nonce'u tahmin edemeyen bir saldırgan enjekte ettiği kodu çalıştıramaz.

Bu yaklaşımın tarihsel olarak dağıtımı zordu, çünkü güvenilir kod tarafından dinamik olarak yüklenen scriptler de engelleniyordu ve ekipler her üçüncü taraf kütüphane için hash üretmek zorunda kalıyordu. strict-dynamic direktifi bunu, güvenin nonce onaylı bir script'ten onun yüklediği scriptlere aktarılmasına izin vererek çözdü. Safari bunu kabul eden son tarayıcı oldu, 2021'de.

Google'ın Tag Manager dokümantasyonu bir nonce öneriyor ve Chaplin, sıkı bir nonce politikasının test payload'ını gerçekten engellediğini doğruluyor. Ancak bu aynı zamanda GTM'nin Custom HTML ve Custom JavaScript etiketlerini de bozuyor; kuruluşlar bu etiketlere çoğunlukla analitik için, bazen de hukuki önem taşıyan çerez onayı yönetimi için ihtiyaç duyuyor. Chaplin'e göre Google'ın rehberi unsafe-inline kullanımını caydırıyor ama ardından geliştiricilere tam olarak hangi direktifi ekleyeceklerini ve nereye koyacaklarını veriyor, strict-dynamic'den hiç bahsetmiyor. Teknoloji blogları bu kestirmeyi yaygınlaştırdı ve üçüncü taraf GTM kurulum rehberlerinin çoğunun artık yöneticilere basitçe unsafe-inline hatta unsafe-eval eklemelerini söylediğini belirtiyor.

İstisnayı saldırıya dönüştürmek

Bir politika nonce'u bırakıp unsafe-inline'ı koruduğu anda koruma çöküyor. Düz bir script etiketi enjeksiyonu hâlâ başarısız olur, bu da yapılandırmayı güvenli gösterebilir; ancak scripti bir image etiketi üzerinden çalıştırmak aynı XSS payload'ını çalıştırır.

GTM'ye özgü izin listesi durumu daha da kötüleştiriyor. Google, kullanıcı tanımlı etiket kodunu googletagmanager.com üzerinden sunduğu için saldırgan kötü niyetli JavaScript'i CSP'nin zaten güvendiği bir alan adına yerleştirebilir. Chaplin tipik bir e-ticaret uygulamasına karşı bir saldırı taslağı çiziyor: oturum başına bir kez yönetici hesaplarını hedefleyerek etkinliğin daha az fark edilme ihtimali olduğu bir loglar sayfasından kimlik doğrulama token'larını çalmak, normal kullanıcıların ödeme sayfasında girdiği kart numaralarını yakalamak ve toplanan veriyi harici bir alan adına sızdırmak. Yazıda ayrıca aynı GTM tekniğiyle bir Cloudflare WAF'ı atlatmaya dair bir bölüm de yer alıyor.

Sadece Google Tag Manager ile sınırlı değil

Chaplin, GTM'nin bir örnek olduğunu, sorunun sınırı olmadığını vurguluyor. Kullanıcıların içerik yüklemesine veya barındırmasına izin veren her platform, geliştiriciler buna güvenli olmayan direktifler içeren bir CSP ile izin verdiğinde aynı açıklığı yaratır.

Yazının önerileri

Düzeltme bölümünde bir .NET Blazor Server uygulaması ve bir nginx.conf dosyası için yapılandırma parçacıkları sunuluyor. Chaplin'in baştan sona işaret ettiği yön, nonce'u unsafe-inline lehine kaldırmak yerine sunucu tarafından üretilen nonce'ları yürürlükte tutmak ve strict-dynamic'in güveni GTM'nin gerçekten ihtiyaç duyduğu scriptlere genişletmesine izin vermek.

Neden önemli

CSP'ler ve WAF'lar XSS'e karşı temel kontroller olarak görülüyor ve bu araştırma, ikisinin de bir pazarlama aracını çalışır tutmak için eklenen bir iki satır politikayla sessizce etkisiz hale getirilebileceğini gösteriyor. Başarısızlık biçimi kurumsal: satıcı dokümantasyonundan kaynaklanıyor, geniş kitlelerce okunan rehberlerle yaygınlaşıyor ve bariz saldırı başarısız olduğu için etkili görünen politikalar üretiyor. Ayrıca Google, saldırgan etkisinde JavaScript'i çoğu sitenin zaten güvendiği bir alan adından sunduğu için yalnızca alan adı itibarı bu istisnayı haklı çıkaramaz. GTM ya da kullanıcı içeriği barındıran herhangi bir üçüncü taraf çalıştıran ekipler, politikalarını unsafe-inline ve unsafe-eval açısından denetlemeli, nonce'ların gerçekten uygulanıp uygulanmadığını doğrulamalı ve script-source izin listelerini saldırı yüzeylerinin bir parçası olarak görmelidir.

  • #web-security
  • #csp
  • #google-tag-manager
  • #xss
  • #waf