Kimlik Doğrulama Güvenliği

Brute Force ve Parola Güvenliği

Brute force saldırılarının mantığını anlayın; güçlü parola politikaları, rate limiting, hesap kilitleme, MFA ve log analizi ile sistemlerinizi koruyun.

17 Temmuz 202618 dk okumaBaşlangıç–Orta Seviye

1. Brute Force Nedir?

Brute force, doğru kullanıcı adı veya parolayı bulmak için çok sayıda kombinasyonun sistematik şekilde denenmesidir.

Bu saldırılar web giriş ekranları, SSH, VPN, e-posta ve diğer kimlik doğrulama servislerini hedefleyebilir.

Yetkili kullanım

Parola denetimleri yalnızca size ait yerel laboratuvarlarda veya açıkça izin verilen sistemlerde gerçekleştirilmelidir.

2. Brute Force Türleri

Tür Açıklama
Classic brute force Olası karakter kombinasyonlarını sırayla dener.
Dictionary attack Hazır parola listelerindeki adayları dener.
Password spraying Az sayıda yaygın parolayı çok sayıda hesapta dener.
Credential stuffing Başka sızıntılardan elde edilmiş kullanıcı adı/parola çiftlerini dener.
Hybrid attack Sözlük kelimelerine sayı ve sembol varyasyonları ekler.

3. Neden Başarılı Olabilir?

  • Kısa ve tahmin edilebilir parolalar
  • Aynı parolanın birden fazla hesapta kullanılması
  • MFA bulunmaması
  • Hız sınırlaması uygulanmaması
  • Hesap kilitleme politikasının olmaması
  • Varsayılan kullanıcı adı ve parolalar
  • Eski veya unutulmuş servis hesapları

4. Güvenli Laboratuvar Yaklaşımı

Parola güvenliği testleri gerçek servisler yerine yerel ve kontrollü bir uygulama üzerinde yapılmalıdır.

  • Yerel sanal makine kullanın.
  • Test hesabı oluşturun.
  • Gerçek kullanıcı verisi kullanmayın.
  • Küçük ve kontrollü parola listesi kullanın.
  • Deneme sayısını sınırlayın.
  • Snapshot veya yedek alın.
Kapsam dışı

Gerçek SSH, VPN, e-posta veya web hesaplarına yönelik parola denemeleri bu dokümana dahil değildir.

5. Güvenli Laboratuvarda Brute Force Kullanımı

Brute force mantığını öğrenmek için gerçek sistemler yerine yalnızca size ait yerel bir laboratuvar servisi kullanın. Aşağıdaki örnek, 127.0.0.1 üzerinde çalışan test amaçlı bir SSH servisine karşı küçük ve kontrollü bir parola listesinin nasıl denetlendiğini gösterir.

Önemli

Bu komutları yalnızca kendi bilgisayarınızda oluşturduğunuz test hesabında veya açıkça izin verilen laboratuvar ortamında kullanın.

Hydra Kurulumu

bash
sudo apt update
sudo apt install hydra -y

Kurulumu Kontrol Etme

bash
hydra -h

Laboratuvar Test Hesabı

Kendi Kali/Linux laboratuvarınızda yalnızca test amacıyla bir kullanıcı oluşturabilirsiniz:

bash
sudo adduser labuser

Küçük Test Parola Listesi

Gerçek parola listeleri yerine birkaç tamamen yapay parola içeren dosya oluşturun:

bash
printf "Test123\nLab2026\nGuvenliLab123!\n" > lab-passwords.txt

Yerel SSH Laboratuvar Testi

SSH servisi aynı makinede çalışıyorsa ve labuser tamamen size ait bir test hesabıysa:

bash
hydra -l labuser -P lab-passwords.txt -t 1 127.0.0.1 ssh
Parametre Açıklama
-l labuser Tek bir laboratuvar kullanıcı adını belirtir.
-P lab-passwords.txt Küçük test parola dosyasını kullanır.
-t 1 Paralel deneme sayısını 1 ile sınırlar.
127.0.0.1 Yalnızca yerel bilgisayarı hedefler.
ssh Yerel laboratuvar SSH servisini belirtir.

Test Sonrası Logları İnceleme

Denemelerin sunucuda nasıl kaydedildiğini görmek savunma açısından önemlidir:

bash
sudo journalctl -u ssh --since "10 minutes ago"

Ubuntu sistemlerde başarısız girişleri ayrıca şu şekilde kontrol edebilirsiniz:

bash
sudo grep "Failed password" /var/log/auth.log

Fail2ban ile Savunmayı Gözlemleme

bash
sudo fail2ban-client status sshd

Bu laboratuvarın amacı parola ele geçirmek değil; tekrarlanan başarısız girişlerin loglarda nasıl göründüğünü ve Fail2ban gibi savunma mekanizmalarının nasıl tepki verdiğini gözlemlemektir.

6. Güçlü Parola Özellikleri

  • En az 14–16 karakter uzunluk
  • Her hesap için benzersiz parola
  • Kişisel bilgi içermemesi
  • Tahmin edilebilir kalıplardan kaçınma
  • Parola yöneticisi kullanımı
  • MFA ile destekleme

7. Parola Politikası

Kontrol Öneri
Minimum uzunluk En az 14 karakter
Yeniden kullanım Farklı hesaplarda aynı parola kullanılmamalı
Sızıntı kontrolü Bilinen ihlal parolaları engellenmeli
MFA Kritik hesaplarda zorunlu olmalı
Parola yöneticisi Kurumsal olarak desteklenmeli
Servis hesapları Uzun, rastgele ve düzenli döndürülen parola kullanmalı

8. Rate Limiting

Rate limiting, belirli süre içinde yapılabilecek giriş denemesi sayısını sınırlar.

Örnek politika:

politika örneği
5 başarısız deneme / 10 dakika
Sonraki denemelerde artan gecikme
Şüpheli IP için geçici engelleme

IP tabanlı sınırlama tek başına yeterli değildir; kullanıcı hesabı ve cihaz sinyalleriyle birlikte uygulanmalıdır.

9. Hesap Kilitleme Politikası

Hesap kilitleme brute force denemelerini zorlaştırır, ancak kötü yapılandırılırsa hizmet reddi riskine yol açabilir.

Daha güvenli yaklaşım:

  • Kısa süreli geçici kilitleme
  • Artan gecikme
  • Kullanıcıya güvenli bildirim
  • Şüpheli oturumların izlenmesi
  • Yönetici hesaplarında ek doğrulama

10. MFA Kullanımı

Çok faktörlü kimlik doğrulama, parola ele geçirilse bile hesabın korunmasına yardımcı olur.

  • Kimlik doğrulama uygulaması
  • Donanım güvenlik anahtarı
  • Passkey
  • Push onayı
  • Yedek kurtarma kodları
Öneri

Mümkünse SMS yerine güvenlik anahtarı, passkey veya kimlik doğrulama uygulaması kullanın.

11. Fail2ban ile SSH Savunması

Kendi Linux sunucunuzda başarısız girişleri sınırlamak için Fail2ban kullanılabilir.

Kurulum:

bash
sudo apt update
sudo apt install fail2ban -y

Servis durumunu kontrol edin:

bash
sudo systemctl status fail2ban

12. SSH Güvenliğini Güçlendirme

  • Parola girişini kapatıp SSH anahtarı kullanın.
  • Root ile doğrudan girişi kapatın.
  • UFW ile erişimi belirli IP’lerle sınırlandırın.
  • Fail2ban kullanın.
  • Günlükleri düzenli takip edin.

SSH yapılandırma değişikliklerinden önce açık bir yedek oturum bırakın.

13. Web Uygulamasında Rate Limit

Web uygulamalarında giriş uç noktası için sunucu tarafı hız sınırlaması uygulanmalıdır.

Node.js örnek yapılandırma mantığı:

javascript
const loginLimiter = rateLimit({
  windowMs: 10 * 60 * 1000,
  max: 5,
  standardHeaders: true,
  legacyHeaders: false
});

Bu örnek yalnızca savunma yapılandırmasını göstermektedir.

14. CAPTCHA ve Ek Kontroller

CAPTCHA bazı otomatik denemeleri azaltabilir ancak tek başına yeterli değildir.

  • Risk tabanlı doğrulama
  • Artan gecikme
  • Şüpheli cihaz kontrolü
  • MFA zorunluluğu
  • Bot tespit mekanizmaları
  • Davranış analizi

15. Log Analizi

Brute force girişimleri loglarda tekrarlanan başarısız oturumlar olarak görülebilir.

SSH loglarını görüntülemek için:

bash
sudo journalctl -u ssh --since "1 hour ago"

Başarısız girişleri filtrelemek için:

bash
sudo grep "Failed password" /var/log/auth.log

16. Brute Force Belirtileri

  • Kısa sürede çok sayıda başarısız giriş
  • Aynı hesaba farklı IP adreslerinden denemeler
  • Aynı IP’den çok sayıda kullanıcı adı denemesi
  • Gece saatlerinde olağandışı giriş trafiği
  • Başarısız denemelerin ardından başarılı oturum
  • Beklenmeyen MFA bildirimleri

17. Alarm ve İzleme Kuralları

Kural Örnek eşik
Aynı hesapta başarısız giriş 10 dakikada 5 deneme
Aynı IP’den farklı hesaplar 10 dakikada 10 kullanıcı adı
Başarısız sonrası başarılı giriş Yüksek öncelikli alarm
Yeni ülke veya cihaz Ek doğrulama
MFA reddi Art arda 3 ret sonrası inceleme

18. Olay Sonrası Yapılacaklar

  1. Şüpheli hesabı geçici olarak korumaya alın.
  2. Aktif oturumları sonlandırın.
  3. Parolayı güvenli cihazdan değiştirin.
  4. MFA ayarlarını kontrol edin.
  5. Logları ve IP adreslerini inceleyin.
  6. Başarılı giriş olup olmadığını doğrulayın.
  7. Gerekirse API anahtarlarını ve oturum tokenlarını yenileyin.
  8. Olayı kayıt altına alın.

19. Servis Hesapları

Servis hesapları sıkça unutulan ancak yüksek risk taşıyan hesaplardır.

  • İnsan kullanıcılarından ayrı tutulmalı
  • Uzun ve rastgele parola kullanmalı
  • Mümkünse parola yerine sertifika veya managed identity kullanılmalı
  • Giriş yapılabilen sistemler sınırlandırılmalı
  • Düzenli olarak gözden geçirilmeli

20. Parola Yöneticisi

Parola yöneticileri her hesap için uzun ve benzersiz parola üretmeye yardımcı olur.

Faydaları:

  • Parola tekrarını azaltır.
  • Rastgele parola üretir.
  • Alan adı eşleşmesiyle phishing riskini azaltabilir.
  • Güvenli paylaşım imkânı sunabilir.

21. Passkey Kullanımı

Passkey, parola yerine cihaz tabanlı güçlü kimlik doğrulama sağlar.

  • Phishing’e karşı daha dayanıklıdır.
  • Parola tekrarını ortadan kaldırır.
  • Brute force denemelerini büyük ölçüde etkisiz hale getirir.
  • Cihaz biyometrisi veya PIN ile korunabilir.

22. Geliştirici Kontrol Listesi

  • Giriş uç noktasına rate limiting uygulayın.
  • MFA ve passkey desteği ekleyin.
  • Genel hata mesajı kullanın.
  • Kullanıcı adı varlığını ele vermeyin.
  • Başarısız girişleri loglayın.
  • Şüpheli davranış için alarm üretin.
  • Parolaları Argon2id veya bcrypt ile saklayın.
  • Oturumları güvenli şekilde yönetin.

23. Yaygın Savunma Hataları

Yalnızca hesap kilitleme kullanmak

Saldırganlar hesapları kilitleyerek hizmet reddine neden olabilir. Artan gecikme ve risk tabanlı yaklaşım daha dengelidir.

Yalnızca IP engellemek

Dağıtık kaynaklar ve proxy ağları IP tabanlı engellemeyi aşabilir.

MFA’yı tüm hesaplarda zorunlu tutmamak

Özellikle yönetici ve uzaktan erişim hesaplarında MFA zorunlu olmalıdır.

Logları izlememek

Kayıt tutmak yeterli değildir; alarm ve düzenli inceleme gerekir.

24. Hızlı Savunma Özeti

Risk Savunma
Çok sayıda parola denemesi Rate limiting ve artan gecikme
Parola sızıntısı Benzersiz parola ve MFA
Password spraying Hesap ve IP davranış analizi
Credential stuffing Sızıntı parola kontrolü ve passkey
SSH brute force SSH anahtarı, UFW ve Fail2ban
Yönetici hesapları MFA, IP kısıtlaması ve alarm

25. Sonuç

Bu dokümanda brute force saldırılarının türleri, güçlü parola politikaları, rate limiting, hesap kilitleme, MFA, Fail2ban ve log analizi ele alındı.

En etkili savunma; benzersiz güçlü parolalar, MFA veya passkey, hız sınırlama ve düzenli olay izleme kontrollerinin birlikte uygulanmasıdır.

© 2026 Kemal Tokmak — Gerçek Deneyimler, Gerçek Dokümantasyon