Kısaca özetlersek, HTTP uygulamaları durumsuzdur (stateless); bunun anlamı, bir talebin bir önceki ile hiçbir ilgisi yoktur, birbirini etkileyen zincirleme işlemler yapılamaz. Bu durum karşısında USER ID ya da COOKIE'ler kullanılarak "oturum" kavramı geliştirilmiştir. Bir kullanıcı, hareketlerin izlerini tutmak zorunda olan ve talebi yapan kullanıcıyı bilmek zorunda olan bir uygulamaya girdiğinde sunucu bir (ya da birden çok) cookie üretir ve bunu istemciye gönderir. İstemci sonraki taleplerinde bu cookie bilgisini sunucuya geri gönderir, oturum sonlanana kadar bu durum devam eder.
Bu testte istemcilere gönderilen cookielerin legal bir kullanıcı gibi sistemi kullanmaya çalışan geniş çaplı ataklara karşı dayanıklılığı test edilir. Ana hedef, uygulamanın geçerli olduğunu düşündüğü sahte bir kullanıcı cookiesi oluşturmak ve uygulama kabiliyetlerine izinsiz erişebilmek.
Genelde bir atak örüntüsünün ana adımları şunlardır:
- Cookie toplama (Yeter sayıda geçerli cookieler toplamak)
- Cookie üzerinde tersine mühendislik (Cookie üretim algoritması analizi)
- Cookie menipülasyonu (Geçerli bir cookienin sahtesini oluşturmak - çok sayıda deneme gerektirebilir)
Black-Box Test:
İstemci ile uygulama arasında en azından şu kriterler test edilmeli:
- Tüm "Set-Cookie" direktifleri "Secure" olarak işaretlenmiş mi?
- Herhangi bir cookie operasyonu kriptolanmamış bir yolda taşınmış mı?
- Cookie, kriptolanmamış bir yolla taşınmaya zorlanabilir mi?
- Eğer zorlanabilirse, uygulama güvenlik bakımını nasıl yapmalı?
- Kalıcı cookieler var mı?
- Kalıcı cookielerde nasıl bir "Expires=zaman" kullanılmış. Bu kullanımların geçerli bir açıklaması var mı?
- Geçici olması beklenen cookieler nasıl konfigüre edilmiş?
- Cookieyi korumak için hangi Cache-Control ayarları kullanılmış? Hem HTTP/1.1, hem HTTP/1.0 için.
Hiç yorum yok:
Yorum Gönder