Blocking Brute Force Attacks - Kaba Kuvvet Saldırılarını Engelleme

Ghost Killer

Harici Saldırı Timleri Koordinatörü
13 Ocak 2019
11,238
7,701
dtoszna.jpg


Kaba Kuvvet Saldırılarını Engelleme

Web geliştiricilerinin karşılaştığı yaygın bir tehdit, kaba kuvvet saldırısı olarak bilinen bir şifre tahmin saldırısıdır. Kaba kuvvet saldırısı, çalışan tek doğru kombinasyonu bulana kadar harf, sayı ve sembollerin olası her birleşimini sistematik olarak deneyerek parola keşfetme girişimidir. Web siteniz kullanıcı kimlik doğrulaması gerektiriyorsa, kaba kuvvet saldırısı için iyi bir hedefsiniz.

Bir saldırgan her zaman kaba kuvvet saldırısıyla bir parola bulabilir, ancak dezavantajı onu bulmanın yıllar alabileceğidir. Parolanın uzunluğuna ve karmaşıklığına bağlı olarak, trilyonlarca olası kombinasyon olabilir.

İşleri biraz hızlandırmak için, kaba kuvvet saldırısı sözlük sözcükleri veya biraz değiştirilmiş sözlük sözcükleriyle başlayabilir, çünkü çoğu insan bunları tamamen rastgele bir parola yerine kullanır. Bu saldırılara sözlük saldırıları veya hibrit kaba kuvvet saldırıları denir. Kaba kuvvet saldırıları kullanıcı hesaplarını riske atarak sitenizi gereksiz trafiğe boğmuştur.

Bilgisayar korsanları, kullanıcı parolalarını akıllı ve otomatik olarak tahmin etmek için kelime listelerini ve akıllı kural kümesini kullanan yaygın olarak kullanılabilen araçları kullanarak kaba kuvvet saldırıları başlatır. Bu tür saldırıları tespit etmek kolay olsa da, önlenmesi o kadar kolay değildir.

Örneğin, birçok HTTP kaba kuvvet aracı istekleri açık proxy sunucuları listesi aracılığıyla aktarabilir. Her istek farklı bir IP adresinden geliyor gibi göründüğünden, bu saldırıları yalnızca IP adresini engelleyerek engelleyemezsiniz. İşleri daha da karmaşıklaştırmak için, bazı araçlar her denemede farklı bir kullanıcı adı ve parola dener, böylece başarısız parola girişimleri için tek bir hesabı kilitleyemezsiniz.



odndjk3.png



Hesapları Kilitleme

Kaba kuvvet saldırılarını engellemenin en belirgin yolu, tanımlanmış sayıda yanlış parola girişiminden sonra hesapları kilitlemektir. Hesap kilitlemeleri bir saat gibi belirli bir süre sürebilir veya hesaplar bir yönetici tarafından el ile kilidi açılana kadar kilitli kalabilir.

Ancak, hesap kilitleme her zaman en iyi çözüm değildir, çünkü birisi güvenlik önlemini kolayca kötüye kullanabilir ve yüzlerce kullanıcı hesabını kilitleyebilir. Aslında, bazı Web siteleri o kadar çok saldırıyla karşılaşır ki, müşteri hesaplarının kilidini sürekli açtıkları için kilitleme ilkesini zorlayamazlar.

Hesap kilitlemeleriyle ilgili sorunlar şunlardır:

Saldırgan, çok sayıda hesabı kilitleyerek hizmet reddine (DoS) neden olabilir.

Varolmayan bir hesabı kilitleyemeyeceğiniz için, yalnızca geçerli hesap adları kilitlenir. Saldırgan, hata yanıtlarına bağlı olarak bu gerçeği siteden kullanıcı adlarını toplamak için kullanabilir.

Saldırgan, birçok hesabı kilitleyerek ve yardım masasını destek çağrılarıyla su basarak dikkat dağıtmaya neden olabilir.

Saldırgan, yönetici kilidi açtıktan saniyeler sonra bile aynı hesabı sürekli olarak kilitleyerek hesabı etkin bir şekilde devre dışı bırakabilir.

Hesap kilitleme, her saat sadece birkaç parola deneyen yavaş saldırılara karşı etkisizdir.

Hesap kilitleme, büyük bir kullanıcı adı listesine karşı bir parola deneyen saldırılara karşı etkisizdir.

Saldırgan bir kullanıcı adı/parola birleşik giriş listesi kullanıyorsa ve ilk birkaç denemede doğru tahminde bulunuyorsa hesap kilitleme etkisizdir.

Yönetici hesapları gibi güçlü hesaplar genellikle kilitleme ilkesini atlar, ancak bunlar saldırıya uğranması en çok istenen hesaplardır. Bazı sistemler yönetici hesaplarını yalnızca ağ tabanlı oturumlarda kilitler.

Bir hesabı kilitledikten sonra bile, saldırı devam edebilir ve değerli insan ve bilgisayar kaynaklarını tüketebilir.

Hesap kilitleme bazen etkilidir, ancak yalnızca kontrollü ortamlarda veya riskin o kadar büyük olduğu durumlarda, sürekli DoS saldırıları bile hesap uzlaşmasına tercih edilir. Ancak çoğu durumda, hesap kilitleme kaba kuvvet saldırılarını durdurmak için yetersizdir.

Örneğin, birkaç teklif verenin aynı öğe için kavga ettiği bir açık artırma sitesini düşünün. Açık artırma Web sitesi hesap kilitlemelerini zorunlu kılırsa, bir teklif veren diğer kişilerin hesaplarını açık artırmanın son dakikasında kilitleyerek kazanan teklifleri göndermelerini engelleyebilir. Saldırgan, kritik mali işlemleri veya e-posta iletişimlerini engellemek için aynı tekniği kullanabilir.


h7fao2l.png

Aygıt Tanımlama Bilgileri

Bilinen ve bilinmeyen tarayıcılardan veya cihazlardan kimlik doğrulama girişimlerini ayrı ayrı kilitlemeyi de düşünebilirsiniz. Örnek olarak belirli bir tarayıcının başarılı oturum açma için zaten kullanılıp kullanılmadığını temel alan kilitleme mekanizması için protokol önerir. Protokol, DoS saldırılarına karşı düz hesap kilitlemeye göre daha az hassastır ve yine de etkili ve uygulanması kolaydır.

Şifre deneme de örnek olarak 3'ten fazla hata yapıldığında 1dk engel süresi vermesi, mail doğrulama vb. yöntemlerde sisteme dahil edilerek sistem koruması güçlendirilmiş olacaktır.



rh28jam.png


Diğer Karşı Önlemleri Bulma & Saldırılara Karşı Sonuç Geliştirme

Açıklandığı gibi, hesap kilitlemeleri genellikle pratik bir çözüm değildir, ancak kaba kuvvet saldırılarıyla başa çıkmak için başka hileler de vardır. İlk olarak, saldırının başarısı zamana bağlı olduğundan, kolay bir çözüm bir şifreyi kontrol ederken rastgele duraklamalar enjekte etmektir. Birkaç saniyelik duraklama bile kaba kuvvet saldırısını büyük ölçüde yavaşlatabilir, ancak hesaplarına giriş yaparken çoğu meşru kullanıcıyı rahatsız etmeyecektir.

Gecikme eklemek tek iş parçacıklı bir saldırıyı yavaşlatsa da, saldırganın birden çok eşzamanlı kimlik doğrulama isteği göndermesinin daha az etkili olduğunu unutmayın.

Başka bir çözüm, birden çok başarısız oturum açma ile bir IP adresini kilitlemektir. Bu çözümle ilgili sorun, bir ISS veya büyük şirket tarafından kullanılan bir proxy sunucusunu engelleyerek yanlışlıkla büyük kullanıcı gruplarını engelleyebilmenizdir. Başka bir sorun, birçok aletin proxy listelerini kullanması ve bir sonrakine geçmeden önce her IP adresinden yalnızca birkaç istek göndermesidir.

Yaygın olarak kullanılabilen açık proxy listelerini kullanan bir saldırgan, herhangi bir IP engelleme mekanizmasını kolayca atlatabilir. Çoğu site başarısız paroladan sonra engellemediği için, saldırgan proxy başına iki veya üç deneme kullanabilir. 1.000 proxy listesine sahip bir saldırgan engellenmeden 2.000 veya 3.000 parola deneyebilir.

Bununla birlikte, bu yöntemin zayıflıklarına rağmen, yüksek sayıda saldırıyla karşılaşan Web siteleri (özellikle yetişkin Web siteleri) proxy IP adreslerini engellemeyi seçer.

Basit ama şaşırtıcı derecede etkili bir çözüm, Web Sitenizi başarısız parolalar için öngörülebilir davranışlar kullanmayacak şekilde tasarlamaktır. Örneğin, çoğu Web sitesi parola hatası olan bir "HTTP 401 hatası" kodu döndürür, ancak bazı web siteleri bunun yerine bir "HTTP 200 BAŞARI" kodu döndürür, ancak kullanıcıyı başarısız parola girişimini açıklayan bir sayfaya yönlendirir. Bu bazı otomatik sistemleri kandırır, ancak atlatmak da kolaydır.

Daha iyi bir çözüm, davranışı en adanmış bilgisayar korsanları hariç tüm bilgisayar korsanlarının cesaretini kıracak kadar değiştirmek olabilir. Örneğin, her seferinde farklı hata iletileri kullanabilir veya bazen bir kullanıcının bir sayfaya geçmesine izin verebilir ve sonra bunları yeniden parola sorabilirsiniz.

Bazı otomatik kaba kuvvet araçları, saldırganın başarısız bir parola girişimini gösteren belirli tetikleyici dizeleri ayarlamasına olanak sağlar. Örneğin, elde edilen sayfa "Hatalı kullanıcı adı veya parola" tümceciği içeriyorsa, araç kimlik bilgilerinin başarısız olduğunu bilir ve listedeki bir sonrakini dener. Bu araçları kandırmanın basit bir yolu, bu ifadeleri başarıyla kimlik doğrulaması yaptığında aldıkları sayfanın HTML kaynağına yorum olarak eklemektir.

Bir veya iki başarısız oturum açma girişiminden sonra, kullanıcıdan yalnızca kullanıcı adı ve şifreyi değil, aynı zamanda gizli bir soruyu da yanıtlamasını isteyebilirsiniz. Bu sadece otomatik saldırılarla ilgili sorunlara neden olmakla kalmaz, kullanıcı adını ve parolayı doğru alsalar bile saldırganın erişim kazanmasını önler.

Ayrıca, sistem genelinde yüksek sayıda saldırı tespit edebilir ve bu koşullar altında tüm kullanıcılardan gizli sorularına yanıt istemenizi sağlayabilirsiniz.

Göz önünde bulundurmak isteyebileceğiniz diğer teknikler şunlardır:

Hesaplarını saldırıdan korumak isteyen ileri düzey kullanıcılar için, onlara yalnızca belirli IP adreslerinden girişe izin verme seçeneği verin.

Tüm kullanıcıların siteye aynı URL'den erişebilmemesi için kullanıcı bloklarına benzersiz oturum açma URL'leri atayın.

Otomatik saldırıları önlemek için CAPTCHA kullanma

Bir hesabı tamamen kilitlemek yerine, sınırlı özelliklere sahip bir kilitleme moduna yerleştirin.


Saldırganlar genellikle bu tekniklerin çoğunu kendi başlarına atlatabilir, ancak birkaç tekniği birleştirerek kaba kuvvet saldırılarını önemli ölçüde sınırlayabilirsiniz. Özellikle web sitenizden bir şifre almaya kararlı bir saldırganı durdurmak zor olabilir, ancak bu teknikler acemi bilgisayar korsanlarından gelenler de dahil olmak üzere birçok saldırıya karşı kesinlikle etkili olabilir. Bu teknikler ayrıca saldırgan tarafında daha fazla çalışma gerektirir, bu da saldırıyı tespit etmek ve hatta saldırganı tanımlamak için daha fazla fırsat sağlar.

Kaba kuvvet saldırılarının tamamen durdurulması zor olsa da, her başarısız oturum açma girişimi Web sunucusu günlüklerinize bir HTTP 401 durum kodu kaydettiğinden, bunların algısı kolaydır. Günlük dosyalarınızı kaba kuvvet saldırılarına karşı izlemek önemlidir - özellikle, saldırganın geçerli bir parola bulduğu anlamına gelen birbirine karıştırılmış 200 durum kodu.

Kaba kuvvet saldırısına veya başka bir hesap kötüye kullanımına işaret edebilecek koşullar şunlardır:

Aynı IP adresinden birçok başarısız oturum açma

Aynı IP adresinden birden fazla kullanıcı adıyla oturum açma

Birçok farklı IP adresine gelen tek bir hesap için girişler

Tek bir kullanımdan aşırı kullanım ve bant genişliği tüketimi

Alfabetik olarak sıralı kullanıcı adlarından veya parolalardan başarısız oturum açma girişimleri

Birinin posta veya IRC istemcisinin yönlendiren URL'si ile oturum açma

<http://user:[email protected]/login.htm> biçiminde kullanıcı adı ve parola içeren yönlendiren URL'ler

Yetişkin bir Web sitesini koruyorsanız, bilinen parola paylaşım sitelerinin URL'lerine başvurma

Bilgisayar korsanlarının genellikle kullandığı şüpheli şifrelerle girişler, örneğin ownyou (ownzyou), washere (wazhere), bağnazlar, hacksyou ve benzeri


Kaba kuvvet saldırılarını tamamen durdurmak şaşırtıcı derecede zordur, ancak dikkatli tasarım ve birden fazla karşı önlemle bu saldırılara maruz kalmanızı sınırlayabilirsiniz.

Sonuçta, en iyi savunma, kullanıcıların güçlü parolalar için temel kurallara uyduklarından emin olmaktır: uzun öngörülemeyen şifreler kullanın, sözlük kelimelerinden kaçının, parolaları yeniden kullanmaktan kaçının ve parolaları düzenli olarak değiştirin.



6hmmz1v.jpg


Captcha Kullanma

Bilgisayarları ve insanları birbirinden ayırmak için tamamen otomatik bir genel Turing testi veya CAPTCHA, insanlar ve bilgisayarlar arasında ayrım yapmanıza izin veren bir programdır. İlk olarak Alta Vista tarafından otomatik arama gönderimlerini önlemek için yaygın olarak kullanılan CAPTCHA'lar, kaba kuvvet saldırıları da dahil olmak üzere her türlü otomatik kötüye kullanımı durdurmada özellikle etkilidir.

İnsanların geçmesi kolay, ancak bilgisayarların geçmesi zor olan bazı testler sunarak çalışırlar; bu nedenle, diğer tarafta bir insan olup olmadığına kesin olarak varabilirler.

Bir CAPTCHA'nın etkili olabilmesi için, insanların testi mümkün olduğunca yüzde 100'e yakın doğru cevaplayabilmesi gerekir. Bilgisayarlar mümkün olduğunca yüzde 100'e yakın başarısız olmalıdır.

Kendi CAPTCHA'nızı geliştiriyorsanız, sorunun ne kadar zor olduğunu unutmayın - bir bilgisayarın doğru cevabı alma olasılığı yüksektir. Bir keresinde, kullanıcıya üç zebranın resmini sunan bir CAPTCHA örneği verilebilir. Soruyu yanıtlamak için üç düğmeden birini tıklatılıyor aynı zamanda arka planda sürede tutuluyor. Bu sayede belirlenen süre geciktiğinde otomatik olarak robot olduğu anlaşılıp sayfadan engelleniyor. Tabi bu captcha olayı değişkenlik gösterebilir.

Bir bilgisayar programının hem soruyu anlaması hem de resmi yorumlaması çok zor olsa da, program herhangi bir cevabı rastgele tahmin edebilir ve üçte birini düzeltebilir. Bu tatmin edici bir risk seviyesi gibi görünse de, hiçbir şekilde etkili bir CAPTCHA değildir. Ücretsiz bir e-posta hizmeti çalıştırırsanız ve spam gönderenlerin toplu olarak hesap oluşturmasını önlemek için bunun gibi bir CAPTCHA kullanırsanız, tek yapmaları gereken otomatik olarak 1.000 hesap oluşturmak için bir komut dosyası yazmak ve bu girişimlerin ortalama 333'ünin başarılı olmasını beklemektir.

Bununla birlikte, basit bir CAPTCHA kaba kuvvet saldırılarına karşı hala etkili olabilir. Bir saldırganın doğru bir kullanıcı adı ve parola tahmini gönderme şansını CAPTCHA'yı doğru tahmin etme şansıyla birleştirdiğinizde, bu bölümde açıklanan diğer tekniklerle birlikte, basit bir CAPTCHA bile etkili olabilir.


Örnek olarak şu şekillere bakabiliriz;​
Şekil 1: Parola Kimlik Doğrulama Gecikmesi: C #​

C#:
private void AuthenticateRequest(object obj, EventArgs ea)
{
   HttpApplication objApp = (HttpApplication) obj;
   HttpContext objContext = (HttpContext) objApp.Context; 
   // If user identity is not blank, pause for a random amount of time
   if ( objApp.User.Identity.Name != "")
     {
       Random rand = new Random();       
       Thread.Sleep(rand.Next(minSeconds, maxSeconds) * 1000);
     }     
}


h7fao2l.png



Şekil 2: Parola Kimlik Doğrulama Gecikmesi: VB.NET

CSS:
Public Sub AuthenticateRequest(ByVal obj As Object, ByVal ea As System.EventArgs)
 Dim objApp As HttpApplication
 Dim objContext As HttpContext
 Dim ran As Random
 objApp = obj
 objContext = objApp.Context

 ' If user identity is not blank, pause for a random amount of time
 If objApp.User.Identity.Name <> "" Then
   ran = New Random
   Thread.Sleep(ran.Next(ran.Next(minSeconds, maxSeconds) * 1000))
 End If
End Sub


Konumuzun sonuna geldik. Başka konularda görüşmek dileği ile...

iUBacd.gif

 

oBugraReis

Moderatör
12 Ocak 2021
2,246
1,396
(nowhere) in
dtoszna.jpg


Kaba Kuvvet Saldırılarını Engelleme

Web geliştiricilerinin karşılaştığı yaygın bir tehdit, kaba kuvvet saldırısı olarak bilinen bir şifre tahmin saldırısıdır. Kaba kuvvet saldırısı, çalışan tek doğru kombinasyonu bulana kadar harf, sayı ve sembollerin olası her birleşimini sistematik olarak deneyerek parola keşfetme girişimidir. Web siteniz kullanıcı kimlik doğrulaması gerektiriyorsa, kaba kuvvet saldırısı için iyi bir hedefsiniz.

Bir saldırgan her zaman kaba kuvvet saldırısıyla bir parola bulabilir, ancak dezavantajı onu bulmanın yıllar alabileceğidir. Parolanın uzunluğuna ve karmaşıklığına bağlı olarak, trilyonlarca olası kombinasyon olabilir.

İşleri biraz hızlandırmak için, kaba kuvvet saldırısı sözlük sözcükleri veya biraz değiştirilmiş sözlük sözcükleriyle başlayabilir, çünkü çoğu insan bunları tamamen rastgele bir parola yerine kullanır. Bu saldırılara sözlük saldırıları veya hibrit kaba kuvvet saldırıları denir. Kaba kuvvet saldırıları kullanıcı hesaplarını riske atarak sitenizi gereksiz trafiğe boğmuştur.

Bilgisayar korsanları, kullanıcı parolalarını akıllı ve otomatik olarak tahmin etmek için kelime listelerini ve akıllı kural kümesini kullanan yaygın olarak kullanılabilen araçları kullanarak kaba kuvvet saldırıları başlatır. Bu tür saldırıları tespit etmek kolay olsa da, önlenmesi o kadar kolay değildir.

Örneğin, birçok HTTP kaba kuvvet aracı istekleri açık proxy sunucuları listesi aracılığıyla aktarabilir. Her istek farklı bir IP adresinden geliyor gibi göründüğünden, bu saldırıları yalnızca IP adresini engelleyerek engelleyemezsiniz. İşleri daha da karmaşıklaştırmak için, bazı araçlar her denemede farklı bir kullanıcı adı ve parola dener, böylece başarısız parola girişimleri için tek bir hesabı kilitleyemezsiniz.



odndjk3.png





Hesapları Kilitleme





Kaba kuvvet saldırılarını engellemenin en belirgin yolu, tanımlanmış sayıda yanlış parola girişiminden sonra hesapları kilitlemektir. Hesap kilitlemeleri bir saat gibi belirli bir süre sürebilir veya hesaplar bir yönetici tarafından el ile kilidi açılana kadar kilitli kalabilir.

Ancak, hesap kilitleme her zaman en iyi çözüm değildir, çünkü birisi güvenlik önlemini kolayca kötüye kullanabilir ve yüzlerce kullanıcı hesabını kilitleyebilir. Aslında, bazı Web siteleri o kadar çok saldırıyla karşılaşır ki, müşteri hesaplarının kilidini sürekli açtıkları için kilitleme ilkesini zorlayamazlar.


Hesap kilitlemeleriyle ilgili sorunlar şunlardır:

Saldırgan, çok sayıda hesabı kilitleyerek hizmet reddine (DoS) neden olabilir.

Varolmayan bir hesabı kilitleyemeyeceğiniz için, yalnızca geçerli hesap adları kilitlenir. Saldırgan, hata yanıtlarına bağlı olarak bu gerçeği siteden kullanıcı adlarını toplamak için kullanabilir.

Saldırgan, birçok hesabı kilitleyerek ve yardım masasını destek çağrılarıyla su basarak dikkat dağıtmaya neden olabilir.

Saldırgan, yönetici kilidi açtıktan saniyeler sonra bile aynı hesabı sürekli olarak kilitleyerek hesabı etkin bir şekilde devre dışı bırakabilir.

Hesap kilitleme, her saat sadece birkaç parola deneyen yavaş saldırılara karşı etkisizdir.

Hesap kilitleme, büyük bir kullanıcı adı listesine karşı bir parola deneyen saldırılara karşı etkisizdir.

Saldırgan bir kullanıcı adı/parola birleşik giriş listesi kullanıyorsa ve ilk birkaç denemede doğru tahminde bulunuyorsa hesap kilitleme etkisizdir.

Yönetici hesapları gibi güçlü hesaplar genellikle kilitleme ilkesini atlar, ancak bunlar saldırıya uğranması en çok istenen hesaplardır. Bazı sistemler yönetici hesaplarını yalnızca ağ tabanlı oturumlarda kilitler.

Bir hesabı kilitledikten sonra bile, saldırı devam edebilir ve değerli insan ve bilgisayar kaynaklarını tüketebilir.

Hesap kilitleme bazen etkilidir, ancak yalnızca kontrollü ortamlarda veya riskin o kadar büyük olduğu durumlarda, sürekli DoS saldırıları bile hesap uzlaşmasına tercih edilir. Ancak çoğu durumda, hesap kilitleme kaba kuvvet saldırılarını durdurmak için yetersizdir.

Örneğin, birkaç teklif verenin aynı öğe için kavga ettiği bir açık artırma sitesini düşünün. Açık artırma Web sitesi hesap kilitlemelerini zorunlu kılırsa, bir teklif veren diğer kişilerin hesaplarını açık artırmanın son dakikasında kilitleyerek kazanan teklifleri göndermelerini engelleyebilir. Saldırgan, kritik mali işlemleri veya e-posta iletişimlerini engellemek için aynı tekniği kullanabilir.


h7fao2l.png





Aygıt Tanımlama Bilgileri







Bilinen ve bilinmeyen tarayıcılardan veya cihazlardan kimlik doğrulama girişimlerini ayrı ayrı kilitlemeyi de düşünebilirsiniz. Örnek olarak belirli bir tarayıcının başarılı oturum açma için zaten kullanılıp kullanılmadığını temel alan kilitleme mekanizması için protokol önerir. Protokol, DoS saldırılarına karşı düz hesap kilitlemeye göre daha az hassastır ve yine de etkili ve uygulanması kolaydır.



Şifre deneme de örnek olarak 3'ten fazla hata yapıldığında 1dk engel süresi vermesi, mail doğrulama vb. yöntemlerde sisteme dahil edilerek sistem koruması güçlendirilmiş olacaktır.







rh28jam.png






Diğer Karşı Önlemleri Bulma & Saldırılara Karşı Sonuç Geliştirme




Açıklandığı gibi, hesap kilitlemeleri genellikle pratik bir çözüm değildir, ancak kaba kuvvet saldırılarıyla başa çıkmak için başka hileler de vardır. İlk olarak, saldırının başarısı zamana bağlı olduğundan, kolay bir çözüm bir şifreyi kontrol ederken rastgele duraklamalar enjekte etmektir. Birkaç saniyelik duraklama bile kaba kuvvet saldırısını büyük ölçüde yavaşlatabilir, ancak hesaplarına giriş yaparken çoğu meşru kullanıcıyı rahatsız etmeyecektir.

Gecikme eklemek tek iş parçacıklı bir saldırıyı yavaşlatsa da, saldırganın birden çok eşzamanlı kimlik doğrulama isteği göndermesinin daha az etkili olduğunu unutmayın.

Başka bir çözüm, birden çok başarısız oturum açma ile bir IP adresini kilitlemektir. Bu çözümle ilgili sorun, bir ISS veya büyük şirket tarafından kullanılan bir proxy sunucusunu engelleyerek yanlışlıkla büyük kullanıcı gruplarını engelleyebilmenizdir. Başka bir sorun, birçok aletin proxy listelerini kullanması ve bir sonrakine geçmeden önce her IP adresinden yalnızca birkaç istek göndermesidir.

Yaygın olarak kullanılabilen açık proxy listelerini kullanan bir saldırgan, herhangi bir IP engelleme mekanizmasını kolayca atlatabilir. Çoğu site başarısız paroladan sonra engellemediği için, saldırgan proxy başına iki veya üç deneme kullanabilir. 1.000 proxy listesine sahip bir saldırgan engellenmeden 2.000 veya 3.000 parola deneyebilir.

Bununla birlikte, bu yöntemin zayıflıklarına rağmen, yüksek sayıda saldırıyla karşılaşan Web siteleri (özellikle yetişkin Web siteleri) proxy IP adreslerini engellemeyi seçer.

Basit ama şaşırtıcı derecede etkili bir çözüm, Web Sitenizi başarısız parolalar için öngörülebilir davranışlar kullanmayacak şekilde tasarlamaktır. Örneğin, çoğu Web sitesi parola hatası olan bir "HTTP 401 hatası" kodu döndürür, ancak bazı web siteleri bunun yerine bir "HTTP 200 BAŞARI" kodu döndürür, ancak kullanıcıyı başarısız parola girişimini açıklayan bir sayfaya yönlendirir. Bu bazı otomatik sistemleri kandırır, ancak atlatmak da kolaydır.

Daha iyi bir çözüm, davranışı en adanmış bilgisayar korsanları hariç tüm bilgisayar korsanlarının cesaretini kıracak kadar değiştirmek olabilir. Örneğin, her seferinde farklı hata iletileri kullanabilir veya bazen bir kullanıcının bir sayfaya geçmesine izin verebilir ve sonra bunları yeniden parola sorabilirsiniz.

Bazı otomatik kaba kuvvet araçları, saldırganın başarısız bir parola girişimini gösteren belirli tetikleyici dizeleri ayarlamasına olanak sağlar. Örneğin, elde edilen sayfa "Hatalı kullanıcı adı veya parola" tümceciği içeriyorsa, araç kimlik bilgilerinin başarısız olduğunu bilir ve listedeki bir sonrakini dener. Bu araçları kandırmanın basit bir yolu, bu ifadeleri başarıyla kimlik doğrulaması yaptığında aldıkları sayfanın HTML kaynağına yorum olarak eklemektir.

Bir veya iki başarısız oturum açma girişiminden sonra, kullanıcıdan yalnızca kullanıcı adı ve şifreyi değil, aynı zamanda gizli bir soruyu da yanıtlamasını isteyebilirsiniz. Bu sadece otomatik saldırılarla ilgili sorunlara neden olmakla kalmaz, kullanıcı adını ve parolayı doğru alsalar bile saldırganın erişim kazanmasını önler.

Ayrıca, sistem genelinde yüksek sayıda saldırı tespit edebilir ve bu koşullar altında tüm kullanıcılardan gizli sorularına yanıt istemenizi sağlayabilirsiniz.


Göz önünde bulundurmak isteyebileceğiniz diğer teknikler şunlardır:

Hesaplarını saldırıdan korumak isteyen ileri düzey kullanıcılar için, onlara yalnızca belirli IP adreslerinden girişe izin verme seçeneği verin.

Tüm kullanıcıların siteye aynı URL'den erişebilmemesi için kullanıcı bloklarına benzersiz oturum açma URL'leri atayın.

Otomatik saldırıları önlemek için CAPTCHA kullanma

Bir hesabı tamamen kilitlemek yerine, sınırlı özelliklere sahip bir kilitleme moduna yerleştirin.


Saldırganlar genellikle bu tekniklerin çoğunu kendi başlarına atlatabilir, ancak birkaç tekniği birleştirerek kaba kuvvet saldırılarını önemli ölçüde sınırlayabilirsiniz. Özellikle web sitenizden bir şifre almaya kararlı bir saldırganı durdurmak zor olabilir, ancak bu teknikler acemi bilgisayar korsanlarından gelenler de dahil olmak üzere birçok saldırıya karşı kesinlikle etkili olabilir. Bu teknikler ayrıca saldırgan tarafında daha fazla çalışma gerektirir, bu da saldırıyı tespit etmek ve hatta saldırganı tanımlamak için daha fazla fırsat sağlar.

Kaba kuvvet saldırılarının tamamen durdurulması zor olsa da, her başarısız oturum açma girişimi Web sunucusu günlüklerinize bir HTTP 401 durum kodu kaydettiğinden, bunların algısı kolaydır. Günlük dosyalarınızı kaba kuvvet saldırılarına karşı izlemek önemlidir - özellikle, saldırganın geçerli bir parola bulduğu anlamına gelen birbirine karıştırılmış 200 durum kodu.


Kaba kuvvet saldırısına veya başka bir hesap kötüye kullanımına işaret edebilecek koşullar şunlardır:

Aynı IP adresinden birçok başarısız oturum açma

Aynı IP adresinden birden fazla kullanıcı adıyla oturum açma

Birçok farklı IP adresine gelen tek bir hesap için girişler

Tek bir kullanımdan aşırı kullanım ve bant genişliği tüketimi

Alfabetik olarak sıralı kullanıcı adlarından veya parolalardan başarısız oturum açma girişimleri

Birinin posta veya IRC istemcisinin yönlendiren URL'si ile oturum açma

<http://user:[email protected]/login.htm> biçiminde kullanıcı adı ve parola içeren yönlendiren URL'ler

Yetişkin bir Web sitesini koruyorsanız, bilinen parola paylaşım sitelerinin URL'lerine başvurma

Bilgisayar korsanlarının genellikle kullandığı şüpheli şifrelerle girişler, örneğin ownyou (ownzyou), washere (wazhere), bağnazlar, hacksyou ve benzeri


Kaba kuvvet saldırılarını tamamen durdurmak şaşırtıcı derecede zordur, ancak dikkatli tasarım ve birden fazla karşı önlemle bu saldırılara maruz kalmanızı sınırlayabilirsiniz.

Sonuçta, en iyi savunma, kullanıcıların güçlü parolalar için temel kurallara uyduklarından emin olmaktır: uzun öngörülemeyen şifreler kullanın, sözlük kelimelerinden kaçının, parolaları yeniden kullanmaktan kaçının ve parolaları düzenli olarak değiştirin.



6hmmz1v.jpg




Captcha Kullanma







Bilgisayarları ve insanları birbirinden ayırmak için tamamen otomatik bir genel Turing testi veya CAPTCHA, insanlar ve bilgisayarlar arasında ayrım yapmanıza izin veren bir programdır. İlk olarak Alta Vista tarafından otomatik arama gönderimlerini önlemek için yaygın olarak kullanılan CAPTCHA'lar, kaba kuvvet saldırıları da dahil olmak üzere her türlü otomatik kötüye kullanımı durdurmada özellikle etkilidir.



İnsanların geçmesi kolay, ancak bilgisayarların geçmesi zor olan bazı testler sunarak çalışırlar; bu nedenle, diğer tarafta bir insan olup olmadığına kesin olarak varabilirler.



Bir CAPTCHA'nın etkili olabilmesi için, insanların testi mümkün olduğunca yüzde 100'e yakın doğru cevaplayabilmesi gerekir. Bilgisayarlar mümkün olduğunca yüzde 100'e yakın başarısız olmalıdır.



Kendi CAPTCHA'nızı geliştiriyorsanız, sorunun ne kadar zor olduğunu unutmayın - bir bilgisayarın doğru cevabı alma olasılığı yüksektir. Bir keresinde, kullanıcıya üç zebranın resmini sunan bir CAPTCHA örneği verilebilir. Soruyu yanıtlamak için üç düğmeden birini tıklatılıyor aynı zamanda arka planda sürede tutuluyor. Bu sayede belirlenen süre geciktiğinde otomatik olarak robot olduğu anlaşılıp sayfadan engelleniyor. Tabi bu captcha olayı değişkenlik gösterebilir.



Bir bilgisayar programının hem soruyu anlaması hem de resmi yorumlaması çok zor olsa da, program herhangi bir cevabı rastgele tahmin edebilir ve üçte birini düzeltebilir. Bu tatmin edici bir risk seviyesi gibi görünse de, hiçbir şekilde etkili bir CAPTCHA değildir. Ücretsiz bir e-posta hizmeti çalıştırırsanız ve spam gönderenlerin toplu olarak hesap oluşturmasını önlemek için bunun gibi bir CAPTCHA kullanırsanız, tek yapmaları gereken otomatik olarak 1.000 hesap oluşturmak için bir komut dosyası yazmak ve bu girişimlerin ortalama 333'ünin başarılı olmasını beklemektir.



Bununla birlikte, basit bir CAPTCHA kaba kuvvet saldırılarına karşı hala etkili olabilir. Bir saldırganın doğru bir kullanıcı adı ve parola tahmini gönderme şansını CAPTCHA'yı doğru tahmin etme şansıyla birleştirdiğinizde, bu bölümde açıklanan diğer tekniklerle birlikte, basit bir CAPTCHA bile etkili olabilir.





Örnek olarak şu şekillere bakabiliriz;




Şekil 1: Parola Kimlik Doğrulama Gecikmesi: C #





C#:
private void AuthenticateRequest(object obj, EventArgs ea)

[COLOR=rgb(255, 255, 255)][SIZE=5]{

   HttpApplication objApp = (HttpApplication) obj;

   HttpContext objContext = (HttpContext) objApp.Context; 

   // If user identity is not blank, pause for a random amount of time

   if ( objApp.User.Identity.Name != "")

     {

       Random rand = new Random();       

       Thread.Sleep(rand.Next(minSeconds, maxSeconds) * 1000);

     }     

}





h7fao2l.png
[/SIZE][/COLOR]







Şekil 2: Parola Kimlik Doğrulama Gecikmesi: VB.NET





CSS:
Public Sub AuthenticateRequest(ByVal obj As Object, ByVal ea As System.EventArgs)

Dim objApp As HttpApplication

Dim objContext As HttpContext

Dim ran As Random

objApp = obj

objContext = objApp.Context



' If user identity is not blank, pause for a random amount of time

If objApp.User.Identity.Name <> "" Then

   ran = New Random

   Thread.Sleep(ran.Next(ran.Next(minSeconds, maxSeconds) * 1000))

End If

End Sub









Konumuzun sonuna geldik. Başka konularda görüşmek dileği ile...






iUBacd.gif



Ellerinize Sağlık.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.