28 Aralık 2010 Salı

OWASP-SM-002: Cookie Özellikleri Testi

OWASP-SM-002
Cookiler hakkında 1-2 madde:
  • Cookie'lerin birinci fonksiyonu, oturum açma / yetki alma token'ı olarak kullanılması ya da geçici bilgilerin taşınmasıdır. İlaveten, HTTP durumsuz olduğundan, birden çok talep içinde durum kontrolü yapmak için kullanılır; buna en güzel örnek online alışveriştir (Kullanıcı sepete birden çok ürün ekler). 
  • Response tarafından Set-Cookie direktifi ile set edilir; browser takip eden taleplerde artık bu cookie'yi uygulamaya gönderir.
  • Alışveriş örneğinde ürün, fiyat, miktar gibi bilgileri tutar. Tutulan bilgilerin hassasiyetinden ötürü genellikle kodlanmış ya da kriptolu olur.
  • Genellikle, takip eden talepler sırasında birden fazla cookie set edilir, ";" ile birbirinden ayrılır. Örn: her bir ürün eklemede yeni bir cookie eklenir.
  • Genelde kimlik denetimi için bir cookie set edilir (session token), diğer işlemler için başka cookie'ler buna eklenir.
Cookie Parametreleri:
  • Secure: Cookie sadece HTTPS gibi güvenli bir kanal kullanılıyorsa gönderilir.
  • HttpOnly: XSS gibi atakları engellemek için kullanılır; cookie'ye istemci tarafı scriptlerle (javascript gibi) erişilmesine izin vermez. Tüm browserların bu fonksiyonu desteklemediği unutulmamalı.
  • Domain 
  • Path: Örneğin bu parametre web sunucu root'una set edilirse (path=/) uygulama cookie'leri aynı domaindeki tüm diğer uygulamalara da gönderilir.
  • Expires: Cookie, set edilen zamana kadar expire olmaz. Bu kalıcı cookie, expire tarihine ulaşıldığında browser tarafından silinir. Eğer bu parametre set edilmezse, cookie sadece o browser oturumu süresince geçerli olur ve oturum sonlandığında silinir.
Black Box Test:
  • Secure parametresi: Cookie hassas bilgi içeriyorsa her zaman kriptolu kanallarda taşınmalı. Bu parametre set edilmezse browser cookie'nin kriptosuz kanallarla taşınmasında (HTTP gibi) sakınca olmadığını düşünür.
  • HttpOnly parametresi: Her zaman olmalı, browser desteklemiyor olsa bile
  • Domain parametresi: Çok gevşek olarak set edilmemeli. Eğer uygulama "app.mysite.com" adresinde yayınlanıyorsa "domain=app.mysite.com" olmalı; "domain=.mysite.com" değil.
  • Path parametresi: Domain parametresi gibi bu da çok gevşek set edilmemeli. Domain parametresi olabildiğince sıkı set edilmiş olsa bile path'in root'a set edilmesi, sunucudaki daha az güvenli uygulamalara karşı açıklığa sebep olur. Örneğin uygulama /myapp/ altında yayınlandıysa "path=/myapp/" olmalı, "path=/" yada "path=/myapp" değil (sondaki / işaretine dikkat!).
  • Expires parametresi: İleri bir tarihe set edilmişse cookie'nin hassas bir veri içermediğinden emin olmak gerekir.

Hiç yorum yok:

Yorum Gönder

Web Uygulama Sızma Testleri İçin Kontrol Listeleri - V

Checklist for Web App Pentesting - V 6. Veri Denetimi (Data Validation) Testleri 6.1 Girdi Denetimi Bütün girdiler denetlenmelidir....