SSL Sertifika Analizi Açık Port Tespiti Web Uygulama Tarama DNS Güvenlik Denetimi HTTP Başlık Analizi Yanlış Yapılandırma Tespiti Yazılım Parmak İzi Alt Alan Adı Tarama
SSL Sertifika Analizi Açık Port Tespiti Web Uygulama Tarama DNS Güvenlik Denetimi HTTP Başlık Analizi Yanlış Yapılandırma Tespiti Yazılım Parmak İzi Alt Alan Adı Tarama

Tüm Kayıtlar

Kategori Güvenlik Yanlış Yapılandırması / Eksik HTTP Başlıkları
Tipik Önem Derecesi Orta
OWASP A05:2021 – Güvenlik Yanlış Yapılandırması
CWE CWE-693 – Koruma Mekanizması Başarısızlığı
Diğer Adları Eksik Feature-Policy, Eksik Gizlilik Başlıkları, Referrer Sızıntısı
Etkilenen Sistemler HTTP/HTTPS üzerinden sunulan tüm web uygulamaları ve siteler
İlgili Standartlar W3C Referrer Policy (W3C Rec), W3C Permissions Policy (W3C Spec), RFC 7231 §5.5.2

Genel Bakış

Modern web uygulamalarında bilgi sızıntısını ve tarayıcı özelliği erişimini yöneten iki ayrı ama birbirini tamamlayan HTTP yanıt başlığı mevcuttur:

  • Referrer-Policy: Tarayıcının, başka bir sayfaya yönlendirme ya da alt kaynak yüklemesi sırasında Referer istek başlığına ne kadar kaynak URL bilgisi ekleyeceğini denetler. Açık bir politika belirlenmediğinde tarayıcı kendi varsayılanına döner; bu durum genellikle tam URL'nin — token, oturum tanımlayıcısı veya hassas yol bileşenleri dahil — üçüncü taraf hedeflere gönderilmesi anlamına gelir.
  • Permissions-Policy (eski adıyla Feature-Policy): Bir sitenin, kamera, mikrofon, konum bilgisi, ödeme işleyicisi veya USB erişimi gibi tarayıcı API'leri ile donanım özelliklerini hem sayfanın kendisi hem de gömülü iframe'ler için kısıtlamasına ya da izin vermesine olanak tanıyan bildirimsel bir mekanizmadır. Bu başlık olmadan, tarayıcı varsayılanlarının izin verdiği tüm özellikler kullanılabilir durumda kalır ve üçüncü taraf betikler veya kötü amaçlı iframe'ler için saldırı yüzeyi genişler.

Sensagraph, pasif HTTP yanıt analizi sırasında her iki başlığın yokluğunu veya zayıf yapılandırmasını otomatik olarak tespit eder.

Nasıl Çalışır?

Referrer-Policy

Bir kullanıcı bağlantıya tıkladığında veya sayfa harici bir kaynak yüklediğinde (resim, betik, stil sayfası), tarayıcı giden isteğe bir Referer HTTP başlığı ekler. Dahil edilen değer, etkin Referrer-Policy'ye bağlıdır. Kısıtlayıcı bir politika yoksa:

  • ?token=abc123&user=42 gibi sorgu parametreleri dahil tam URL üçüncü taraf sunucuya gönderilir.
  • Analitik sağlayıcıları, CDN operatörleri ve reklam ağları bu URL'leri günlüğe kaydedebilir; bu kayıtlar kimlik doğrulama token'larını, parola sıfırlama bağlantılarını veya yolda kodlanmış kişisel verileri içerebilir.
  • Üçüncü taraf sunucularındaki erişim günlükleri sızdırılan URL'leri kalıcı olarak kaydeder.
  • Enjekte edilmiş betikler veya XSS yükleri tarafından başlatılan çapraz kaynaklı istekler, referrer alanı aracılığıyla gezinme bağlamını dışarıya sızdırabilir.

Güncel modern tarayıcılarda çapraz kaynaklı gezinmeler için tarayıcı varsayılanı strict-origin-when-cross-origin olsa da bu durum tüm tarayıcı ve sürümlerde garanti altında değildir; bu nedenle başlığın öngörülebilir bir politikayı zorunlu kılmak için açıkça ayarlanması gerekir.

Permissions-Policy

Permissions-Policy başlığı olmadan, tarayıcı yerleşik varsayılanlarını uygular. Bu varsayılanlar genellikle üst düzey sayfanın kullanıcı onayına bağlı olarak pek çok güçlü API'ye erişmesine izin verir; aynı veya çapraz kaynaklı iframe'ler bu izinleri miras alabilir. Bu durum aşağıdaki riskleri doğurur:

  • Sayfaya dahil edilen üçüncü taraf betikler (analitik, reklamcılık, widget'lar), yalnızca kullanıcı onay istemleri aracılığıyla kamera, mikrofon veya konum bilgisi API'sine erişim talep edebilir; bu istemler sosyal mühendislikle yanıltıcı bir bağlamda sunulabilir.
  • Kötü amaçlı veya ele geçirilmiş iframe'ler, açıkça reddedilmediği takdirde ödeme API'leri, USB erişimi veya ekran yakalama işlevine çalışabilir.
  • Kötü amaçlı üçüncü taraf JavaScript ekleyen tedarik zinciri saldırıları, kısıtlanmamış özellik erişiminden yararlanarak hassas verileri toplayabilir.

İş Etkisi

Bu başlıkların yokluğu operasyonel, uyumluluk ve itibar açısından doğrudan sonuçlar doğurur:

  • Gizlilik ve uyumluluk riski: Kullanıcı tanımlayıcıları veya oturum token'ları içeren URL'lerin referrer sızıntısı, GDPR (Madde 32) ve benzeri düzenlemeler kapsamında kişisel veri ihlali sayılabilir; bu durum zorunlu ihlal bildirimleri ve düzenleyici para cezalarını tetikleyebilir.
  • Kimlik doğrulama token'ı ifşası: Parola sıfırlama bağlantıları, sihirli oturum açma URL'leri ve URL'lere gömülü OAuth durum parametreleri, Referer başlığı aracılığıyla üçüncü taraf sunucular tarafından elde edilebilir ve kimlik bilgisi çalmaya gerek kalmadan hesap ele geçirilmesine yol açabilir.
  • Genişleyen saldırı yüzeyi: Eksik Permissions-Policy başlığı, başarılı bir XSS saldırısı veya tedarik zinciri ihlali durumunda saldırganın varsayılan olarak izin verilen tüm tarayıcı API'lerine erişmesini sağlar; bu durum söz konusu olayların potansiyel etkisini önemli ölçüde artırır.
  • Kullanıcı güveni ve yasal sorumluluk: PCI DSS ve ISO 27001 gibi düzenleyici çerçeveler, güvenli başlık yapılandırmasını giderek daha fazla temel bir denetim noktası olarak referans almaktadır. Denetçiler, başlıkların yokluğunu düzeltilmesi gereken bir bulgu olarak işaretleyebilir.

Nasıl Düzeltilir?

Referrer-Policy

  1. Tüm HTTP yanıtlarına açık bir Referrer-Policy yanıt başlığı ekleyin. Çoğu uygulama için önerilen değer strict-origin-when-cross-origin'dir; bu değer çapraz kaynaklı isteklerde yalnızca kaynak bilgisini (şema + ana bilgisayar) gönderirken aynı kaynaklı isteklerde tam URL'yi iletir:
    Referrer-Policy: strict-origin-when-cross-origin
  2. Harici taraflara herhangi bir referrer bilgisi sızdırılmaması gereken uygulamalar (ör. sağlık, finans) için no-referrer veya same-origin kullanın:
    Referrer-Policy: no-referrer
  3. URL parametrelerine hassas veri kodlayan uygulamalarda unsafe-url kullanmaktan veya başlığı tamamen atlamaktan kaçının.
  4. Bağlantı bazında granüler denetim için HTML'in referrerpolicy niteliği, tek tek anchor veya iframe öğelerinde başlığı geçersiz kılabilir.
  5. Başlığı uygulama kodu yerine web sunucusu veya ters proxy katmanında (Apache, Nginx, CDN) yapılandırarak tüm yanıtlarda tutarlı kapsam sağlayın.

Permissions-Policy

  1. Uygulamanızın gerçekten ihtiyaç duyduğu tarayıcı özelliklerini belirleyin ve diğerlerini varsayılan olarak reddedin. Varsayılan olarak reddetme temeli:
    Permissions-Policy: camera=(), microphone=(), geolocation=(), payment=(), usb=(), interest-cohort=()
  2. Özelliklere yalnızca ihtiyaç duyan belirli kaynaklar için izin verin:
    Permissions-Policy: geolocation=(self "https://maps.example.com")
  3. Gömülü iframe'lerin izinleri miras almasını engellemek için her <iframe> öğesinde allow niteliğini açıkça ayarlayın:
    <iframe src="..." allow="payment 'none'"></iframe>
  4. Yetkisiz betik çalıştırılmasını engellemek için bir İçerik Güvenliği Politikası (CSP) ile birleştirin.
  5. Uygulamanın özellik seti ve üçüncü taraf entegrasyonları geliştikçe politikayı düzenli olarak gözden geçirin ve güncelleyin.

Kaynaklar

Sıkça sorulan sorular

Referrer-Policy, tarayıcının diğer kaynaklara yönlendirme veya kaynak yükleme sırasında Referer istek başlığına eklediği URL bilgisini denetler ve URL tabanlı veri sızıntısına karşı koruma sağlar. Permissions-Policy ise sayfanın ve gömülü iframe'lerin kullanmasına izin verilen tarayıcı API'lerini (kamera, mikrofon, konum bilgisi, ödeme vb.) kısıtlayan ayrı bir mekanizmadır; böylece özellik düzeyindeki saldırı yüzeyi azaltılır.

Çoğu uygulama için strict-origin-when-cross-origin önerilen dengeli değerdir: aynı kaynaklı isteklerde tam URL'yi gönderirken (sunucu tarafı analitiğini etkinleştirir) çapraz kaynaklı isteklerde yalnızca kaynak bilgisini (şema + ana bilgisayar adı) iletir. Harici taraflara hiçbir referrer bilgisi açıklamaması gereken uygulamalar no-referrer veya same-origin kullanmalıdır.

Her iki başlığın yokluğu, enjeksiyon güvenlik açıkları gibi doğrudan istismar edilemez; ancak dolaylı saldırılara zemin hazırlar. Referrer sızıntısı, üçüncü taraf sunucu günlüklerinde kimlik doğrulama token'larını ve kişisel verileri açığa çıkararak hesap ele geçirilmesine yol açabilir. Eksik Permissions-Policy ise güçlü tarayıcı API'lerini kısıtsız ve kötü amaçlı betiklere açık bırakarak XSS veya tedarik zinciri saldırılarının etkisini artırır.

Permissions-Policy, eski Feature-Policy başlığının standartlaştırılmış halefidir. Feature-Policy farklı bir sözdizimi kullanıyordu ve deneyseldi. Modern tarayıcılar Permissions-Policy'yi desteklemektedir; Feature-Policy desteği ise kademeli olarak sonlandırılmaktadır. Hâlâ Feature-Policy başlığı gönderen uygulamaların Permissions-Policy söz dizimine geçmesi gerekir.

no-referrer gibi katı bir politika, tüm referrer verilerini giden isteklerden kaldırır; bu durum Referer başlığına dayanan analitik platformlardaki trafik kaynağı ilişkilendirmesini etkileyebilir. strict-origin-when-cross-origin değeri genellikle uygulanabilir bir uzlaşı sağlar: analitik araçlarının ihtiyaç duyduğu kaynak bilgisini korurken hassas sorgu parametreleri dahil tam URL sızıntısını engeller.