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 Oturum Yönetimi / Cookie Güvenliği
Tipik Önem Derecesi Orta
OWASP A02:2021 – Kriptografik Hatalar; A07:2021 – Kimlik ve Kimlik Doğrulama Hataları
CWE CWE-614 (Secure bayrağı eksik), CWE-1004 (HttpOnly bayrağı eksik)
Diğer adlar Güvensiz oturum cookie'si, Secure bayraksız cookie, HttpOnly bayraksız cookie
Etkilenen sistemler Oturum yönetimi, kimlik doğrulama veya kullanıcı takibi için HTTP cookie kullanan tüm web uygulamaları
İlgili standart RFC 6265 – HTTP Durum Yönetimi Mekanizması

Genel Bakış

HTTP cookie'leri, web uygulamalarının durum yönetimi — en kritik olarak kimliği doğrulanmış oturumlar — için kullandığı temel mekanizmadır. RFC 6265, tarayıcıların cookie değerlerini ne zaman ve nasıl ileteceğini veya açığa çıkaracağını kısıtlayan birçok isteğe bağlı cookie özniteliği tanımlamaktadır. Güvenlik açısından en kritik iki öznitelik şunlardır:

  • Secure — Tarayıcıya cookie'yi yalnızca HTTPS bağlantıları üzerinden iletmesini bildirir; şifrelenmemiş HTTP üzerinden açığa çıkmayı önler.
  • HttpOnly — İstemci tarafındaki JavaScript'in document.cookie aracılığıyla cookie değerine erişmesini engeller; Cross-Site Scripting (XSS) yoluyla gerçekleştirilen cookie hırsızlığını azaltır.

Hassas bir cookie'de (örneğin oturum tanımlayıcısı) bu özniteliklerden biri veya her ikisi eksik olduğunda, oturum ele geçirme saldırı yüzeyi önemli ölçüde genişler. Sensagraph, taranan uygulamalarda ayarlanan cookie'lerdeki eksik Secure ve HttpOnly bayraklarını otomatik olarak tespit eder.

Nasıl çalışır?

Secure bayrağının eksikliği: Bir oturum cookie'si Secure özniteliği olmadan verilirse, tarayıcı onu hem HTTP hem de HTTPS isteklerine ekler. Yol üzerindeki bir saldırgan (örneğin açık bir Wi-Fi ağında), pasif dinleme veya SSL soyma saldırısı (HTTPS düşürme) gerçekleştirerek — kaynak sunucu yalnızca HTTPS sunuyor olsa bile — cookie'yi düz metin olarak ele geçirebilir.

HttpOnly bayrağının eksikliği: HttpOnly özniteliği olmadan, sayfa bağlamında çalışan herhangi bir JavaScript — XSS açığından enjekte edilen kötü amaçlı scriptler dahil — document.cookie kullanarak cookie değerini okuyabilir ve saldırganın kontrolündeki bir sunucuya sızdırabilir. Bu, XSS tabanlı oturum ele geçirmede standart saldırı sonrası adımdır.

  • Set-Cookie: sessionid=abc123; Path=/ gibi bir Set-Cookie başlığı güvensizdir — her iki bayrağı da içermemektedir.
  • Güvenli versiyon şöyledir: Set-Cookie: sessionid=abc123; Path=/; Secure; HttpOnly; SameSite=Strict.
  • SameSite özniteliği (Lax veya Strict), Cross-Site Request Forgery (CSRF) saldırılarını azaltan tamamlayıcı bir kontroldür; ancak Secure veya HttpOnly'nin yerini almaz.
  • HTTP üzerinden ayarlanan cookie'ler geriye dönük olarak Secure cookie haline gelemez — bayrak, orijinal Set-Cookie yanıt başlığında mevcut olmalıdır.
  • HttpOnly'dan yoksun üçüncü taraf veya analitik cookie'ler de kullanıcı izleme tanımlayıcılarını script enjeksiyon saldırılarına maruz bırakır.

İş etkisi

Güvensiz yapılandırılmış cookie'lerin istismarı, etkilenen cookie bir oturum belirteci veya kimlik doğrulama bilgisi taşıyorsa tam hesap ele geçirilmesine yol açabilir. Özel sonuçlar şunlardır:

  • Oturum ele geçirme: Geçerli bir oturum cookie'si elde eden saldırgan, kimliği doğrulanmış kullanıcıyı parolasına ihtiyaç duymadan taklit edebilir.
  • Ayrıcalık yükseltme: Bir yönetici oturum cookie'si ele geçirilirse saldırgan, uygulamaya en yüksek erişim düzeyini kazanır.
  • Mevzuat riski: Oturum verileri, GDPR, KVKK ve benzeri düzenlemeler kapsamında genellikle kişisel veri olarak kabul edilir. Yetersiz cookie güvenliği, uygun teknik önlemlerin alınmaması anlamına gelebilir ve para cezaları ile zorunlu ihlal bildirimine yol açabilir.
  • İtibar kaybı: Hesap ele geçirme olayları kullanıcı güvenini zedeler ve bulunulan yargı bölgesine göre kamuya açıklama gerektirebilir.
  • PCI DSS uyumsuzluğu: Ödeme kartı verisi işleyen uygulamaların PCI DSS Gereksinim 6 kapsamında cookie güvenliği de dahil olmak üzere oturum yönetimi mekanizmalarını koruması zorunludur.

Nasıl düzeltilir?

  1. Tüm hassas cookie'lere Secure bayrağı ekleyin. Oturum tanımlayıcısı, kimlik doğrulama belirteci veya herhangi bir hassas değer taşıyan her cookie'nin Secure özniteliğiyle verildiğinden emin olun. Bu, tüm uygulama genelinde HTTPS'in zorunlu kılınmasıyla (HSTS — Strict-Transport-Security) birlikte uygulanmalıdır.
  2. Tüm oturum ve kimlik doğrulama cookie'lerine HttpOnly bayrağı ekleyin. Bir cookie değerinin istemci tarafı JavaScript tarafından okunması gerçekten gerekmedikçe (nadir ve genellikle tasarım yoluyla önlenebilir), HttpOnly uygulayarak script erişimini engelleyin.
  3. SameSite özniteliği ekleyin. Siteler arası isteklerin gerekli olmadığı oturum cookie'leri için SameSite=Strict, minimum temel olarak SameSite=Lax kullanın. Zorunlu olmadıkça SameSite=None kullanmaktan kaçının (bu durumda Secure gereklidir).
  4. Cookie verilişini merkezi olarak denetleyin. Öznitelikleri her yanıtta ayrı ayrı ayarlamak yerine, framework düzeyinde veya middleware düzeyinde cookie yapılandırması kullanın. Çoğu framework, global oturum cookie yapılandırması sunar (örn. Django'da SESSION_COOKIE_SECURE ve SESSION_COOKIE_HTTPONLY; Express/connect oturumlarında cookie: { secure: true, httpOnly: true }).
  5. Cookie'leri Path ve Domain ile sınırlandırın. Başka bir alt alan adının ele geçirilmesi durumunda maruziyeti sınırlamak için cookie'leri mümkün olan en dar path ve domain ile kısıtlayın.
  6. İçerik Güvenliği Politikası (CSP) uygulayın. Güçlü bir CSP, HttpOnly bayrağının eksikliğinden en çok yararlanan XSS riskini azaltır. Bu, derinlemesine savunma önlemidir; HttpOnly'nin yerini almaz.
  7. Cookie'leri uygun şekilde döndürün ve sona erdiğin. Cookie'leri açık Max-Age veya Expires değerleriyle verin; ayrıcalık değişikliklerinde (giriş, rol değişikliği) yeni oturum cookie'leri verin ve eskilerini sunucu tarafında geçersiz kılın.
  8. Otomatik ve manuel incelemeyle test edin. Bayrakların tutarlı biçimde uygulandığını doğrulamak için, üçüncü taraf entegrasyonlarından ve CDN kenar katmanlarından gelen Set-Cookie başlıkları dahil olmak üzere tüm HTTP yanıtlarındaki Set-Cookie başlıklarını inceleyin.

Referanslar

Sıkça sorulan sorular

Evet. Tamamen HTTPS kullanan bir sitede bile, Secure bayrağı yoksa tarayıcı cookie'yi HTTP isteklerine de ekler — örneğin bir kullanıcı URL'yi 'https://' olmadan yazarsa ve yönlendirme yapılırsa ya da bir saldırgan yönlendirmeden önce SSL soyma saldırısı gerçekleştirirse. Secure bayrağı, isteğin nasıl başlatıldığından bağımsız olarak cookie'nin asla düz metin bağlantı üzerinden gönderilmemesini sağlar. HTTP Strict Transport Security (HSTS) ile birleştirmek en güçlü korumayı sağlar.

Evet. Derinlemesine savunma her ikisini de gerektirir. XSS düzeltmesi script enjeksiyonu olasılığını azaltır; ancak HttpOnly bağımsız olarak tarayıcı uzantıları, üçüncü taraf scriptler veya gelecekteki XSS gerilemeleri dahil olmak üzere herhangi bir JavaScript'in cookie'yi okumasını engeller. HttpOnly, oturum ve kimlik doğrulama cookie'lerine koşulsuz olarak uygulanması gereken düşük maliyetli, yüksek değerli bir kontroldür.

Kendi Set-Cookie başlıklarınız aracılığıyla sunucu tarafında ayarladığınız cookie'ler tamamen kontrolünüz altındadır. Üçüncü taraf JavaScript tarafından (örn. analitik platformları) ayarlanan cookie'lerde ise genellikle HttpOnly ekleyemezsiniz; çünkü bu tür cookie'ler istemci tarafı kodunda document.cookie aracılığıyla ayarlanır — HttpOnly cookie'ler yalnızca sunucu tarafından ayarlanabilir. Pratik azaltma önlemleri arasında üçüncü taraf script davranışını kısıtlamak için Content Security Policy kullanmak ve üçüncü taraf cookie'lerin gerçekten gerekli olup olmadığını gözden geçirmek sayılabilir.

SameSite, bir cookie'nin siteler arası isteklerde gönderilip gönderilmeyeceğini kontrol eder; bu öncelikle Cross-Site Request Forgery (CSRF) saldırılarını azaltır. Ağ üzerinden ele geçirmeyi (Secure'un rolü) veya script erişimini (HttpOnly'nin rolü) engellemez. Her üç öznitelik de farklı tehdit modellerine hizmet eder ve oturum cookie'lerine birlikte uygulanmalıdır. SameSite=Strict veya SameSite=Lax önerilir; SameSite=None ise Secure özniteliğini zorunlu kılar.

Tarayıcınızın geliştirici araçlarında Set-Cookie yanıt başlıklarını inceleyebilirsiniz (Uygulama sekmesi → Cookie'ler veya Ağ sekmesi yanıt başlıkları). Öznitelikleri arasında 'Secure' ve 'HttpOnly' listelemeyen oturum, kimlik doğrulama veya token cookie'lerini arayın. Sensagraph gibi otomatik tarayıcılar, uygulamanızın tüm sayfa ve kimlik doğrulamalı yollarındaki bu yanlış yapılandırmaları tespit eder.