İletişim

Kaba Kuvvet Saldırısı (Brute Force) Nedir?

Kısa tanım

Kaba kuvvet saldırısı (brute force), bir parolayı, PIN'i veya şifreleme anahtarını olası değerleri sistematik biçimde tek tek deneyerek bulmaya çalışan saldırıdır. Giriş formuna otomatik denemeler yapmak, sızdırılmış kullanıcı adı ve parola çiftlerini başka sitelerde denemek (credential stuffing) ve ele geçirilmiş parola özetlerini çevrim dışı kırmak bu ailenin üyeleridir. Başlıca savunmalar çok faktörlü kimlik doğrulama, hız sınırlama ve uzun, benzersiz parolalardır.

Diğer adları: brute force, brute force saldırısı, deneme-yanılma saldırısı, parola tahmin saldırısı, kaba kuvvet

Başarısız giriş denemelerini eşiklerle izleyen ve hız sınırı, hesap kilitleme ve MFA ile kaba kuvvet saldırısını durduran gösterge

Aynı fikrin dört farklı biçimi

  • Klasik kaba kuvvet: Tek bir hesap için olası parolaların sırayla denenmesi.
  • Sözlük saldırısı: Rastgele kombinasyonlar yerine sık kullanılan parolalardan ve kelime listelerinden yola çıkmak.
  • Password spraying: Çok sayıda hesapta, hesap başına yalnızca birkaç yaygın parolayı denemek. Hesap başına deneme az olduğu için kilitleme eşiklerine takılmaz.
  • Credential stuffing: Başka bir sitenin veri sızıntısından elde edilen kullanıcı adı ve parola çiftlerini sizin giriş sayfanızda denemek. Parola tekrar kullanımı yaygın olduğu için en verimli yöntem budur.

Bunlara bir de çevrim dışı kırma eklenir: veritabanı sızdırılmışsa saldırgan giriş formuyla uğraşmaz, parola özetlerini kendi donanımında dener. Burada sizi koruyan tek şey, parolaların bcrypt veya Argon2 gibi yavaş algoritmalarla saklanmasıdır; ayrıntılar parola özetleme maddesinde.

Neden uzunluk karmaşıklıktan önemlidir?

Arama uzayı, karakter havuzunun parola uzunluğu kadar kuvvetidir. Yalnızca küçük harflerden oluşan 8 karakterlik bir parolanın yaklaşık 2,1 × 10¹¹ olasılığı vardır. 95 yazdırılabilir ASCII karakterinin tamamı kullanılsa 8 karakterde bu sayı yaklaşık 6,6 × 10¹⁵ olur; ama yalnızca küçük harfli 12 karakter bile yaklaşık 9,5 × 10¹⁶ olasılığa ulaşır. Her ek karakter, uzayı havuz büyüklüğü kadar katlar. Pratik sonuç: ezberlenecek parolalar için uzun parola cümleleri, geri kalan her şey için bir parola yöneticisi ve rastgele üretilmiş parolalar. Rastgele bir parola gerektiğinde Güçlü Şifre Oluşturucu tarayıcıda yerel olarak üretir.

Ancak credential stuffing'e karşı uzunluk tek başına bir şey değiştirmez: parola başka bir sitede sızdıysa ne kadar güçlü olduğunun önemi kalmaz. Bu yüzden her site için benzersiz parola ve ikinci bir faktör gerekir.

Savunma katmanları

  1. Çok faktörlü kimlik doğrulama: Doğru parola tek başına yetmediği için en etkili önlemdir.
  2. Hız sınırlama: Hesap, IP ve cihaz bazında deneme sayısını sınırlayın; sınır aşıldığında 429 Too Many Requests dönmek standart davranıştır.
  3. Dikkatli hesap kilitleme: Sabit kilit yerine her başarısız denemede uzayan bekleme süreleri tercih edilebilir. Kilitleme saldırganın elinde bir hizmet engelleme aracına dönüşebileceği için, kilitli hesapta parola sıfırlama yolu açık kalmalıdır.
  4. Aynı hata mesajı: “Kullanıcı bulunamadı” ile “parola hatalı” arasında fark olmamalı; aksi hâlde saldırgan geçerli hesapları listeleyebilir.
  5. Bot ayrımı: Birkaç başarısız denemeden sonra devreye giren CAPTCHA veya bot koruması otomasyonu yavaşlatır; tek başına çözüm değildir.
  6. Sızmış parola kontrolü: Kayıt ve parola değişikliğinde, bilinen sızıntı listelerinde geçen parolaları reddetmek.
# Nginx: giriş uç noktasında IP başına dakikada 5 istek
limit_req_zone $binary_remote_addr zone=giris:10m rate=5r/m;

location = /api/giris {
    limit_req zone=giris burst=5 nodelay;
    limit_req_status 429;
    proxy_pass http://uygulama;
}

IP bazlı sınır, binlerce farklı adresten gelen dağıtık saldırıları tek başına durduramaz; uygulama içinde hesap bazlı sayaçla birlikte kullanılmalıdır.

Saldırıyı loglardan tanımak

İyi tutulmuş giriş logları saldırının imzasını açıkça gösterir: tek bir IP'den çok sayıda farklı hesaba deneme (spraying), çok sayıda IP'den aynı hesaba deneme, kısa sürede yüzlerce başarısız girişten sonra gelen tek bir başarılı giriş ya da daha önce hiç görülmemiş bir ülkeden gelen oturum. Bu desenler için uyarı tanımlamak, saldırıyı bittikten haftalar sonra değil, sürerken fark etmeyi sağlar. Ayrıntılı öneriler OWASP Authentication Cheat Sheet'te toplanmıştır.

İlgili terimler

← Sözlüğe dön