Broken Authentication (Bozuk Kimlik Doğrulama ve Oturum Yönetimi) zafiyeti

Ağ bağlantısı güvenliği her zaman önemli olmuştur. Her biri kendi güvenlik açıklarına ve bunlarla başa çıkma yöntemlerine sahip çeşitli oturum yönetimi yöntemleri vardır. Bu yazıda OWASP top 10 listesinde yer alan Broken Authentication (Bozuk Kimlik Doğrulama ve Oturum Yönetimi) zafiyetine göz atacağız.

Yaygın oturum saldırıları

Kimlik doğrulama belirteçleri hem ön uçta hem de arka uçta depolanır ve genellikle ağ üzerinden gönderilir. Bu nedenle, birçok saldırı türlerine karşı savunmasızdırlar:

  • Man-in-the-middle saldırısı
  • OAuth jetonlarını çalmak
  • XSS;
  • CSRF’e;
  • veri tabanına / dosya sistemine erişmek;
  • oturumu düzeltmek;
  • kaba kuvvet saldırıları;
  • sosyal mühendislik/ fiziksel erişim.

Bu saldırılar pek olası görünmeyebilir, ancak oturum güvenliğini ciddiye almak ve uygun önlemleri almak önemlidir.

Web uygulaması bir kullanıcıyı diğerinden ayırmak için oturum çerezlerini kullanır. Kullanıcı adınızı, şifrenizi girdikten ve uygulama sizi yetkilendirdikten sonra, tarayıcının daha sonra web sayfası için her talepte sunucuya sunduğu özel bir tanımlayıcıda (session token) saklanır. Web uygulaması sizin olduğunuzu bu şekilde hemen anlar.

Tanımlayıcınız bir davetsiz misafir tarafından çalınırsa ve sistem kontrolleri uygulamazsa, örneğin oturumun IP adresini veya bir oturumda birden fazla bağlantıyı kontrol ederse, davetsiz misafir, hesabınızın haklarıyla sisteme erişebilir. Ve eğer bu bir internet bankası veya bir ödeme sistemi ise, bu tür yetkisiz erişimin sonuçlarının ne olacağı kolayca tahmin edebilirsiniz.

Saldırganlar genellikle brute force (Kimlik Bilgisi Doldurma ve Kaba Kuvvet Saldırıları), Zayıf Parolalar ve Kurtarma Süreci, Oturum Kimliğinin yanlış yönetimi gibi durumları kullanarak kullanıcıların kimliklerini ele geçirmeye çalışabilirler.

Aynı şekilde varsayılan (default) parolaların değiştirilmesi ya da çok kolay tahmin edilebilecek şifrelerin kullanımı saldırganların uygulamaya sızmalarına neden olur. Örneğin: admin, admin123, password, 123456, 1453, 19811938…

Önlem olarak aşağıdaki adımlar uygulanabilir:

  1. Kolay tahmin edilemeyecek, güçlü kendine özgü parolaların kullanılması. Örneğin; ahmet.123 yerine @hm3T.123 şifresinin kullanılması şifrenin çözülmesini belki de yüz bin kat zorlaştıracaktır. Şifre politikaları için NIST 800-63 B’nin kılavuzlarıbölüm 1.1’i izleyerek parola uzunluğu, karmaşıklığı ve rotasyon politikalarını uyumlu hale getirmeliyiz.
  2. Varsayılan (Default) parolaların kullanılmaması, web servisi kurarken servisin sağladığı ilk parolaların mutlaka değiştirilmesi sağlanmalıdır.
  3. Ardışık Başarısız Oturum Açma Denemeleri sınır koyulmalıdır.
  4. Hatalı giriş denemeleri mutlaka log altına alınması ve incelenmesi gereklidir.
  5. Mümkünse girişlerde mutlaka “Ben robot değilim” gibi CAPTCHA kontrolü yapılması sağlanmalıdır.
  6. Oturum yönetimi için elden geldiğince “random session token” üretilmesi ve “session token” larının doğru kullanımı ve hatta uygun oturum yönetim uygulamalarının seçimi sağlanmalıdır.
  7. Multi-Factor Authentication’ı (birden fazla kimlik doğrulama yöntemi gerektiren bir güvenlik sistemidir) etkinleştirmek

Bu basit gibi görünen fakat OWASP top 10 listesinde yer alan Broken Authentication (Bozuk Kimlik Doğrulama ve Oturum Yönetimi) zafiyeti Sızma Testi ile kolay bir şekilde anlaşılır ve çözülür.