İçeriğe geç

4.3 · Seviye 0 · Dijital Dünyanın Temelleri

Çerez ve oturum

sunucunun seni nasıl hatırladığı ve oturum bilgisinin neden değerli olduğu

Siber Güvenlik Akademisi — M04, İnternet ve Web · 1.841 kelime · 3 saha durumu · ≈ 8 dk okuma · 12 dk dinleme

Saha durumlarındaki kişiler ve kurumlar kurgusaldır; kaynaklar gerçektir. Bu akademi savunma odaklıdır: saldırılar mekanizma düzeyinde anlatılır, adım adım saldırı tarifi verilmez. Uygulamalar yalnız kendi cihazında, kendi hesabında ya da yalıtılmış bir laboratuvarda yapılır; başkasının sistemine izinsiz erişim suçtur. Dersler hukuki danışmanlığın yerini tutmaz.

Açılış

Bir öğle arasında Defne Hanım, bürodaki ortak bilgisayardan kişisel e-postasına baktı. Bir mesaja cevap yazdı, sekmeyi kapattı ve işine döndü. Ertesi sabah stajyer aynı bilgisayardan bir kargo takip sayfasını ararken yanlışlıkla e-posta sitesinin adresini yazdı. Sayfa açıldığında karşısında bir giriş ekranı değil, Defne Hanım'ın gelen kutusu duruyordu.

Stajyer hiçbir şeye dokunmadan sekmeyi kapattı ve Defne Hanım'a söyledi. Defne Hanım şaşırdı: sekmeyi kapatmıştı, bilgisayar da gece kapanıp açılmıştı. Site onu nasıl hâlâ tanıyordu? Parolası bilgisayarda mı kayıtlıydı?

Parolası kayıtlı değildi. Site onu başka bir şeyle tanıyordu: giriş yaptığında tarayıcıya bıraktığı küçük bir kimlik kartıyla. O kart, sekme kapansa da bilgisayar yeniden açılsa da tarayıcıda duruyordu ve kartı taşıyan her istek, Defne Hanım'ın isteği sayılıyordu. Bu ders o kartı, çerezi ve onun tuttuğu oturumu anlatıyor.

Tek fikir

HTTP durumsuzdur; siteler seni sayfadan sayfaya çerezlerle tanır. Giriş yaptıktan sonra oturum çerezi bir parola gibi davranır: onu taşıyan, parolayı bilmeden senin yerine geçer. Bu yüzden oturumlar korunur, sınırlanır ve iş bitince kapatılır.

Nasıl çalışır

HTTP isteği ve yanıtını konuştuğumuz derste protokolün durumsuz olduğunu söylemiştik: sunucu her isteği kendi başına görür, öncekini hatırlamaz. Ama bir e-posta hesabında her tıklamada parola yazmıyoruz; bir alışveriş sepeti sayfadan sayfaya dolu kalıyor. Bu hatırlamayı çerezler sağlar.

Çerezler pek çok iş görür: dil tercihini hatırlamak, sepeti tutmak, ziyaretleri saymak. Ama güvenlik açısından en önemli işleri, giriş yapmış kullanıcıyı tanımaktır.

Bu düzenin güvenlik açısından kritik bir sonucu var: sunucu, isteği gönderen kişinin kim olduğunu bilmez; yalnız isteğin hangi oturum çerezini taşıdığını bilir. Oturum çerezini taşıyan her istek, o kullanıcının isteği sayılır. Defne Hanım'ın e-postası bu yüzden ertesi sabah açıktı: çerez tarayıcıda duruyordu ve süresi dolmamıştı. Aynı nedenle bir oturum çerezi bir başkasının eline geçerse, o kişi parolayı ve çoğu zaman çok faktörlü doğrulamayı bilmeden hesaba girebilir; çünkü bu kontroller giriş anında yapılmış, oturum çerezi ise girişin sonucudur. Oturum çalmayı ve savunmasını kimlik güvenliği seviyesinde ayrıntılı göreceğiz.

Çerezlerin standardı bu riskleri sınırlamak için nitelikler tanımlar.

İki nitelik iki ayrı riski kapatır. Secure, çerezin şifresiz bir bağlantıda düz metin olarak yolda görünmesini engeller. HttpOnly, sayfaya bir şekilde sızmış kötü niyetli bir betiğin oturum çerezini okuyup başka bir yere göndermesini engeller. Üçüncü bir nitelik ise, tarayıcıların uyguladığı SameSite niteliği, çerezin başka sitelerden başlatılan isteklere eklenip eklenmeyeceğini belirler ve ortam yetkisi sorununu daraltır. Üçünün kod düzeyindeki ayrıntısı uygulama güvenliği seviyesinde, kimlik ve oturum modülünde.

Giriş ekranlarındaki "beni hatırla" kutusu da aslında bir çerez kararıdır. Kutu işaretlendiğinde site, haftalarca ya da aylarca geçerli kalan uzun ömürlü bir çerez bırakır; işaretlenmediğinde çerez genellikle tarayıcı kapanınca ya da kısa bir süre sonra geçersizleşir. Kendi telefonunda ve kendi bilgisayarında bu kutu bir kolaylıktır; ortak ya da başkasına ait bir cihazda ise, cihazı senden sonra kullanacak herkese aylarca açık kalacak bir anahtar bırakmak demektir.

Çerezlerin bir de gizlilik yüzü var.

Tarayıcılar son yıllarda üçüncü taraf çerezlerini giderek daha çok kısıtlıyor ve pek çok ülkede çerez kullanımı için kullanıcının onayı isteniyor; sitelerin açılışta gösterdiği çerez pencereleri bunun sonucudur.

Sahada

Savunma

Çerez ve oturum için savunma iki taraflıdır: siteyi yapanlar oturumu iyi tasarlar, kullananlar oturumlarını yönetir.

Siteyi yapanlar için ilk kural, oturum kimliğini tahmin edilemez kılmak ve oturum çerezini standardın nitelikleriyle korumaktır: Secure ile yalnız şifreli bağlantıdan, HttpOnly ile betiklerden uzak, SameSite ile başka sitelerden gelen isteklerde sınırlı. İkinci kural, oturumun bir ömrü olmasıdır: hareketsizlikte ve toplamda süre sınırları. Üçüncü kural, çıkışın gerçekten çıkış olmasıdır: sunucu, çıkış yapılan oturumun kimliğini artık tanımamalıdır. Dördüncü kural, bir parola değiştirildiğinde ya da şüpheli bir etkinlik görüldüğünde bütün oturumları sonlandırabilmektir; Kaan'ın ekibinin yaptığı budur.

Kullananlar için ilk kural, ortak ya da başkasına ait cihazlarda işin bitince çıkış yapmaktır. Sekmeyi kapatmak oturumu kapatmaz; Defne Hanım'ın deneyimi bunu gösterdi. Ortak bir bilgisayarda tarayıcının gizli penceresini kullanmak, pencere kapandığında çerezlerin silinmesini sağlar; ama gizli pencere bile ortak bilgisayardaki kötü niyetli bir yazılıma karşı koruma değildir.

İkinci kural, hesaplarının etkin oturumlarını bilmektir. Büyük e-posta ve sosyal medya hizmetlerinin güvenlik sayfaları, hesabının hangi cihazlarda açık olduğunu gösterir ve tanımadığın oturumları sonlandırmana izin verir. Bu listeyi ara sıra kontrol etmek, kaybolan bir telefonu ya da unutulmuş bir bilgisayarı oturumlardan çıkarmanın yoludur.

Üçüncü kural gizlilikle ilgilidir: çerez pencerelerinde düşünerek seçim yapmak ve tarayıcının üçüncü taraf çerezlerini kısıtlayan ayarını açık tutmak.

Uygulama

Bu uygulamada kendi hesaplarının açık oturumlarını gözden geçirecek ve tarayıcının çerez ayarlarına bakacaksın. Yalnız kendi hesaplarında ve kendi tarayıcında çalışırsın.

Bu uygulamayı iki ya da üç önemli hesap için tekrarlamak birkaç dakika sürer ve unutulmuş oturumların sayısını sıfıra indirir.

Defter: Acil durum sayfasına her önemli hesap için "etkin oturumları sonlandırma" sayfasının nerede olduğu. Envantere hesap satırlarının yanına kaç etkin oturum bulunduğu ve sonlandırılanlar. Aylık güvenlik turuna "önemli hesaplarda etkin oturumlar" maddesi.

Hata köşesi

Yaygın yanlış"Sekmeyi kapattım, oturumdan çıktım."
Doğrusu

Sekmeyi ya da tarayıcıyı kapatmak çoğu zaman oturum çerezini silmez; çerezin süresi dolana ya da çıkış yapılana kadar site seni tanımaya devam eder. Defne Hanım'ın e-postası ertesi sabah bu yüzden açıktı. Ortak bilgisayarlarda iş bitince açıkça çıkış yapmak gerekir.

Yaygın yanlış"Çok faktörlü doğrulamam var, hesabım çalınamaz."
Doğrusu

Çok faktörlü doğrulama giriş anını korur. Giriş tamamlandıktan sonra oturumu temsil eden şey çerezdir ve çerezi ele geçiren biri, ikinci faktörü bilmeden oturumu kullanabilir. Bu yüzden oturumların süre sınırı, çıkışın sunucuda geçerli olması ve şüpheli oturumların sonlandırılabilmesi gerekir.

Yaygın yanlış"Çerezler zararlı programlardır."
Doğrusu

Çerezler program değil, küçük bilgi parçalarıdır; çalışmaz, kendi başına bir şey yapmaz. Sorun çerezin kendisinde değil, taşıdığı bilginin değerinde ve kimin elinde olduğundadır: bir oturum çerezi bir anahtar, bir reklam çerezi ise bir izleme aracı olabilir.

Etik ve sınırlar

Bir oturum çerezi bir anahtardır ve başkasının anahtarını kullanmak, kapıyı açık bulmuş olsan bile, o kişinin yerine geçmektir. Defne Hanım'ın stajyeri açık bir gelen kutusuyla karşılaştığında hiçbir şeye dokunmadan sekmeyi kapattı ve sahibine söyledi; doğru davranış buydu. Ortak bir bilgisayarda, bir arkadaşının telefonunda ya da bir iş yerinde açık kalmış bir oturuma rastlamak, onu kullanma izni vermez; o hesaba bakmak, hesabın sahibinin rızası olmadan bir bilişim sistemine girmek sayılabilir. Bir kurumda oturumları sonlandırma yetkin varsa da bunu yalnız güvenlik gerekçesiyle ve kayıtlı olarak kullanırsın. Çerezleri inceleme araçları kendi tarayıcında öğrenmek için meşrudur; başkasının çerezini kopyalamak ya da kullanmak değildir.

Kapanış

  1. HTTP durumsuz olduğu için siteler kullanıcıyı çerezlerle tanır; giriş başarılı olduğunda sunucu bir oturum kimliği üretir ve bunu bir çerezle tarayıcıya verir.
  2. Oturum çerezini taşıyan her istek o kullanıcının isteği sayılır; çerezi ele geçiren parolayı ve çoğu zaman ikinci faktörü bilmeden oturumu kullanabilir, bu yüzden çerez Secure, HttpOnly ve SameSite nitelikleriyle korunur.
  3. Oturumlar süreyle sınırlanır, çıkış sunucuda geçerli olur ve şüphede bütün oturumlar sonlandırılır; kullanıcı ortak cihazlarda çıkış yapar, hesaplarının etkin oturumlarını bilir ve üçüncü taraf çerezlerini kısıtlar.

Üç soru

  1. Defne Hanım sekmeyi kapattığı ve bilgisayar yeniden başladığı hâlde e-postası ertesi sabah neden açıktı?
  2. Bir çalışan çok faktörlü doğrulamayı tamamladığı hâlde oturumu neden başka bir ülkeden kullanılabildi?
  3. Selin'in sitesindeki çıkış düğmesinin yalnız tarayıcıdaki çerezi silmesi neden bir güvenlik sorunuydu?

Yanıtlar

  1. Site onu tarayıcıda saklanan bir oturum çereziyle tanıyordu ve sekmeyi kapatmak ya da bilgisayarı yeniden başlatmak bu çerezi silmemişti. Çerezin süresi dolmadığı ve Defne Hanım açıkça çıkış yapmadığı için, aynı tarayıcıdan siteye giden her istek onun isteği sayılıyordu.
  2. Çok faktörlü doğrulama giriş anında yapılır; giriş tamamlandıktan sonra oturumu temsil eden şey çerezdir. Bir saldırgan çalışanın oturum çerezini ele geçirdiyse, parolayı ya da ikinci faktörü bilmesine gerek kalmadan o çerezi taşıyarak oturumu kullanabilir. Savunma, bütün oturumları sonlandırmak ve çerezin nasıl ele geçirildiğini araştırmaktır.
  3. Çünkü sunucu tarafında oturum kapanmıyordu. Biri o çerezin bir kopyasını daha önce ele geçirmişse, kullanıcı çıkış yapsa bile kopya çalışmaya devam ederdi. Doğru çıkış, sunucunun o oturum kimliğini artık tanımamasını sağlamaktır.

Sonraki derse köprü

Bu derste oturum çerezinin bir anahtar gibi değerli olduğunu ve Secure niteliğinin onu yalnız şifreli kanaldan göndermeyi sağladığını gördük. Peki şifreli kanal tam olarak neyi koruyor, adres çubuğundaki kilit simgesi bize ne söylüyor ve neyi söylemiyor? Sıradaki ders HTTPS ve kilit simgesini ele alıyor: şifreli bağlantının korudukları ile kilit simgesinin sahte bir siteyi neden gerçek yapmadığı.

Anlamadığın bir yer mi var?

Mentor yalnız bu dersin metnine dayanarak cevap verir. Metinde geçmeyen bir şey sorarsan uydurmaz, geçmediğini söyler.