Credential Stuffing Önlemleri

Credential Stuffing

Bu yazımızda Credential Stuffing önlemleri almanız için bazı araçları ve uygulama önerileri paylaşacağız. Credential Stuffing kimlik doğrulamayla ilgili iki yaygın saldırı türüne karşı savunmaları kapsar: kimlik bilgisi doldurma ve parola püskürtme. Bunlar birbirlerinden farklı olsalar da çoğu zaman bu durumlar karşı korunmak için uygulanması gereken savunmalar aynıdır ve ayrıca bu uygulamalar kaba kuvvet saldırılarına karşı savunma içi etkili bir yöntemdir. Bu farklı saldırıların bir özeti aşağıda listelenmiştir:

Saldırı TürüAçıklama
Kaba kuvvet (Brute Force)Sözlükten veya başka bir kaynaktan birden fazla parolayı tek bir hesap üzerinden test etme.
Kimlik Bilgileri Doldurma (Credential Stuffing)Başka bir sitenin ihlalinden elde edilen kullanıcı adı/şifre kombinasyonlarının test edilmesi.
Şifre Püskürtme (Password Spraying)Tek bir zayıf parolayı çok sayıda farklı hesaba karşı test etme.

Çok Faktörlü Kimlik Doğrulama

Çok faktörlü kimlik doğrulama (MFA), kimlik bilgilerinin doldurulması ve parola püskürtme de dahil olmak üzere parolayla ilgili saldırıların çoğuna karşı açık ara en iyi savunmadır. Bundan dolayı, hemen hemen her yerde uygulanmalıdır. Uygulamanın hedef kitlesine göre uygulamada zorluklar yaşanabilir.

Güvenlik ve kullanılabilirliği dengeleyebilmek adına, bu yöntem yalnızca oturum açma girişiminin güvenli olmadığı durumlarda örneğin oturum açılması gibi belli başlı durumlarda 2. faktör gerektiren diğer tekniklerle birleştirilebilir:

  • Yeni bir tarayıcı/cihaz veya IP adresi.
  • Alışılmadık bir ülke veya konumdan oturum açılmaya çalışılması.
  • Güvenilmeyen olarak kabul edilen belirli ülkeler.
  • Bilinen engelleme listelerinde görünen bir IP adresi.
  • Birden çok hesapta oturum açmayı deneyen bir IP adresi.
  • Komut dosyasıyla yazılmış gibi görünen bir oturum açılması

Buna ek olarak kurumsal uygulamalarda, MFA gerekmemesi için kullanıcılar bilinen güvenilir IP aralıkları izin verilenler listesine eklenebilir.

Alternatif Savunma Yöntemleri

MFA yönteminin kullanılamadığı durumlarda kimlik bilgisi doldurma ve parola püskürtmeye karşı koruma sağlamak için kullanabileceğiniz birçok yöntem bulunmaktadır. Bu yöntemlerin hiçbirisi MFA kadar koruyucu olmasa bile birlikte kullanılmaları durumunda yeterli seviyede korunma sağlayabilirler. Bu yöntemler genel olarak kaba kuvvet veya parola püskürtme saldırılarına karşı da koruma sağlar.

Bir uygulamanın birden çok kullanıcı rolü olduğu durumlarda farklı roller için farklı savunma yöntemleri uygulamak daha doğru bir yöntem olacaktır. Örneğin, MFA’yı tüm kullanıcıların uygulmasındansa tüm yöneticilerin uygulamasının zorunlu tutulması.

  • İkincil Şifreler, PIN’ler ve Güvenlik Soruları
    • Sisteme giriş esnasında kimlik doğrulaması yapmak için parola istenmesine ek olarak, aşağıdaki bilgileri girmeleri istenebilir:
      • PIN kodu sorgulanması
      • İkincil şifrelerden veya akılda kalıcı bir kelimeden belirli karakterler
      • Seçilen güvenlik sorularının cevaplandırılması

Tekrardan hatırlatmak gerekir bu yöntemler çok faktörlü doğrulama değildir. Ancak sizlerle paylaşılan bu alternatif yöntemlerin uygulanması sisteminiz için uygun MFA’nın uygulanamadığı durumlarda hem kimlik bilgisi doldurmaya hem de parola püskürtmeye karşı yine de yararlı bir koruma katmanı sağlayabilir.

CAPTCHA

Kullanıcılardan her oturum açma girişimi için bir CAPTCHA çözmesi, otomatik oturum açma girişimlerini önlemeye yardımcı olabilir. Böylece kimlik bilgisi doldurma (credential stuffing) veya parola püskürtme saldırısını büyük oranda yavaşlatabilir. Her ne kadar saldırılar için önlem olsa da CAPTCHA’lar yeterince etkili bir araç değildir. Çünkü onları kırabilecek araçlar bulunmaktadır.

Sistemin daha kullanılabilir hale gelmesi için, oturum açma isteği şüpheli kabul edildiğinde, aynı kriterleri kullanarak, kullanıcının yalnızca bir CAPTCHA’yı çözmesi zorunlu hale getirilebilir.

IP Engelleme Listesi

Daha az karmaşık olan saldırılarda çoğunlukla, birkaç başarısız oturum açma girişiminden sonra engelleme listesine alınabilen az sayıda IP adresi kullanır. Kaba kuvvet saldırılarına karşı koruma sağlanması için amaçlanan Bu başarısız oturum açma girişimleri, kullanıcı başına bu başarısız girişimlere göre ayrı olarak incelenmeye alınmalıdır. Yasal kullanıcıları kalıcı olarak engelleme ihtimalini azaltmak için yapılan bu IP engelleme listesi geçici olmalıdır.

Her hesapta başarılı bir şekilde oturum açabilen son IP adresini saklamayı düşünürken bir anda bu IP adresi bir engelleme listesine eklenirse, hesabı kilitleme ve hesabının ele geçirilmiş olabileceği ihtimaline karşı kullanıcıyı bilgilendirebilirsiniz. Kötüye kullanılan IP adreslerini öğrenmek istiyorsanız ya da sizin tespit ettiğiniz kötüye kullanılan IP adresinden herkesin haberi olmasını istiyorsanız, AbuseIPDB gibi web siteleri kullanıcılardan gelen kötüye kullanım raporları sonucu toplanan, bilinen kötü IP adreslerinin herkese açık blok listeleri vardır .

Cihaz Parmak İzi

IP adresinin yanı sıra, bir cihazın parmak izini alma girişiminde kullanılabilecek birkaç farklı faktör vardır. Bunlardan bazıları, sunucu tarafından HTTP başlıklarından ve özellikle Kullanıcı Aracısı pasif olarak elde edilebilir:

  • İşletim sistemi
  • Tarayıcı
  • Kullanılan dil

JavaScript kullanarak daha fazla bilgiye erişebilirsiniz bunlar

  • Ekran çözünürlüğü
  • Yüklü yazı tipleri
  • Yüklü tarayıcı eklentileri

Paylaşılan bu özellikler aracılığıyla cihazın parmak izini oluşturmak mümkündür. Bu parmak izi daha sonra hesaba giriş yapmaya çalışan herhangi bir tarayıcıyla eşleştirilebilir ve eğer eşleşmezse kullanıcıdan ek kimlik doğrulaması istenebilir. Çoğu kullanıcının kullandığı birden fazla cihaz veya tarayıcı olacaktır, bu nedenle mevcut parmak izleriyle eşleşmeyen girişimleri engellemek pratik olmayacaktır.

Fingerprintjs2 JavaScript kitaplık istemci tarafı parmak izi uygulamak için kullanılabilir.

Tüm bu bilgiler istemci tarafından sağlandığından dolayı, potansiyel olarak bir saldırgan tarafından sızdırılabileceğine dikkat edilmelidir. Bazı durumlarda, bu öznitelikleri sızdırmak önemsizdir örneğin User-Agent gibi ancak başka durumlarda bu öznitelikleri değiştirmek daha zor olabilir.

Öngörülemeyen Kullanıcı Adları Gereksinimi

Credential Stuffing saldırıları, sadece birden fazla web sitede parolaların tekrardan kullanılmasına değil, aynı zamanda kullanıcı adlarının tekrar kullanılabilmesini de kapsar. Azımsanmayacak kadar çok web sitesi kullanıcı adı olarak e-posta adresini kullanır ve çoğu kullanıcının tüm hesapları için kullandığı tek bir e-posta adresi olacağı için, bu, bir e-posta adresi ve şifre kombinasyonlarını kimlik bilgisi doldurma saldırılarında kullanmak için etkili hale getirir.

Kullanıcıların web sitesine kaydolurken kendi kullanıcı adlarını oluşturmalarını zorunlu tutulması, mevcut kimlik bilgileri listelerinin çoğu yalnızca e-posta adreslerini içerdiği için saldırganların kimlik bilgisi doldurma için geçerli kullanıcı adı ve parola çiftlerini ele geçirmesini zorlaştırır. Kullanıcıya özel bir kullanıcı adı yaratmak çok daha koruyucu olabilir ama bu da pek kullanıcı dostu değildir. Ek olarak, oluşturulan kullanıcı adının tahmin edilebilir olmadığına dikkat edilmelidir çünkü bu, bir parola püskürtme saldırısı için geçerli kullanıcı adlarının sıralanmasını kolaylaştırabilir.

Derinlemesine Savunma

Aşağıdaki yöntemler, kimlik bilgisi doldurma (credential stuffing) veya parola püskürtme saldırılarını önlemek için olmasa da saldırıları yavaşlatmak veya teknik olarak uygulanmasının daha zor hale gelmesi için kullanılabilirler. Bu, kullanıma hazır araçlar kullanan ve herhangi bir teknik engelle cesareti kırılması muhtemel fırsatçı saldırganlara karşı savunma için faydalı olabilir, ancak daha hedefli bir saldırıya karşı yeterli olmayacaktır.

  • Çok Adımlı Giriş İşlemleri: Oturum açma işlemine, kullanıcı adı ve parolanın sırayla girilmesini zorunlu kılmak veya kullanıcının oturum açmadan önce rastgele bir CSRF Simgesi almasını istemek gibi ek adımlar ekleyerek saldırganın sisteme girişini zorlaştırır.
  • JavaScript’i Gerekli Tut ve Başlıksız Tarayıcıları Engelle: Bu tür saldırılar için kullanılan çoğu araç, sunucuya doğrudan POST istekleri yapacak ve yanıtları okuyacaktır, ancak bunlarda bulunan JavaScript’i indirmeyecek veya yürütmeyecektir. Saldırganın yanıtta JavaScript’i değerlendirmesini zorunlu tutarak saldırganı Selenium veya Headless chorme gibi gerçek bir tarayıcı kullanmaya veya javascript ayrıştırmasını baaşka bir araçla uygulamaya zorlar. Unutmayın ki JavaScript’i devre dışı bırakan ziyaretçileri engellemenin, özellikle ekran okuyucu kullanan ziyaretçiler için web sitesinin erişilebilirliğini azaltır ve eşitlik mevzuatına aykırılık yaratabilir.
  • Sızan Şifreleri Belirleme : Bunun için en iyi bilinen kamu hizmeti Pwned Passwords’dür. Uygulamanın bir kopyasını kendiniz barındırabilir veya API’yi kullanabilirsiniz .
  • Kullanıcıları normal olmayan güvenlik olayları hakkında bilgilendirin. Kullanıcının çok fazla mail alması sonucu onları görmezden gelmeye veya silmeye başlamasına karşı dikkat edilmelidir. Örneğin kullanıcıya yanlış şifre ile giriş yapılmaya çalışıldığını bildirmek yerine doğru parola girişi yapılmış ancak MFA başarısız olduysa kullanıcıyı parolasını değiştirmesini istemek çok daha kullanışlı olacaktır. Mevcut veya son girişlerle ilgili ayrıntılar da kullanıcıya görünür hale getirilmelidir. Uygulama eşzamanlı oturumları destekliyorsa, kullanıcı tüm etkin oturumların listesini görüntüleyebilmeli ve kendisine ait olmayan diğer oturumları sonlandırabilmelidir.

İlginizi Çekebilecek Makaleler​

LLM (Large Language Models) Nedir?

Günümüzde yapay zeka ve makine öğrenmesi, teknolojinin birçok alanında devrim niteliğinde ilerlemeler kaydetmiştir. Bu ilerlemelerin merkezinde yer alan büyük dil modelleri (LLM – Large Language

Devamı »
Message Broker Nedir?

Message broker, birçok farklı uygulama veya sistem arasında iletişim kurmak için kullanılan bir yazılım aracıdır. Bu araç, bir uygulama tarafından gönderilen mesajları bir veya daha

Devamı »
Loglama Nedir?

Loglama, bilgisayar sistemlerindeki olayları, hataları ve diğer önemli durumları kaydetme işlemidir. Bu kayıtlar, sistem yöneticileri ve geliştiriciler tarafından, sistemlerin işleyişini anlamak, hataları tespit etmek ve

Devamı »
Vcenter Üzerinden ESXI Upgrade’i Nasıl Yapılır?

Öncelikle herkese merhaba arkadaşlar, sizlere Vcenter üzerinde ESXI hostunuzu nasıl upgrade edeceğinizi anlatacağım. Öncelikle hangi versiyona yükselteceksek o versiyonun ISO dosyasını indiriyoruz. Ardından Vcenter’ımızı açıyoruz.

Devamı »