Genel Bakış
Kimlik doğrulama zafiyeti, bir uygulamanın kullanıcı kimliğini doğrulamak veya kimliği doğrulanmış oturumları yönetmek için kullandığı mekanizmaların yetersiz biçimde uygulanmasından kaynaklanan geniş kapsamlı bir zafiyet sınıfıdır. Bu kategorideki açıklar, saldırganların giriş kontrollerini tamamen atlatmasına, meşru kullanıcıların kimliğine bürünmesine veya amaçlanan oturum süresinin ötesinde erişimi sürdürmesine olanak tanır. Bu zafiyet, sürekli olarak en kritik web uygulaması güvenlik riskleri arasında yer almakta ve resmi olarak OWASP A07:2021 – Kimlik Doğrulama ve Tanımlama Hataları kapsamında sınıflandırılmaktadır.
Yaygın belirtiler şunlardır: kaba kuvvet korumasının yokluğu, zayıf veya varsayılan kimlik bilgilerinin kabul edilmesi, güvensiz parola depolama, tahmin edilebilir veya uzun ömürlü oturum belirteçleri, eksik veya atlatılabilir çok faktörlü kimlik doğrulama (MFA) ve hatalı parola sıfırlama iş akışları.
Nasıl çalışır?
Saldırganlar kimlik doğrulama zafiyetlerini çeşitli belgelenmiş tekniklerle istismar eder:
- Credential Stuffing (Kimlik Bilgisi Doldurma): Başka ihlallerden sızdırılan kullanıcı adı/parola çiftlerinin otomatik olarak yeniden denenmesi. Parola yeniden kullanımının yaygın olduğu ve hız sınırlaması ya da anomali tespitinin bulunmadığı ortamlarda etkilidir.
- Kaba Kuvvet / Parola Püskürtme: Bir veya birçok hesaba karşı sistematik parola denemesi. Parola püskürtme, hesap başına kilitleme eşiklerini aşmak amacıyla birçok hesaba karşı tek bir yaygın parolayı (örn.
Bahar2024!) dener. - Varsayılan veya Zayıf Kimlik Bilgileri: Uygulamaların veya altyapının satıcı tarafından sağlanan varsayılan kimlik bilgileriyle bırakılması (örn.
admin/admin) ya da kolayca tahmin edilebilen parolalara izin veren politikalar. - Oturum Belirteci Zayıflıkları: Tahmin edilebilir belirteç üretimi (düşük entropi), belirteçlerin HTTPS yerine HTTP üzerinden iletilmesi, eksik
HttpOnlyveyaSecureçerez bayrakları, aşırı uzun oturum ömürleri veya çıkışta belirteçlerin geçersiz kılınmaması (CWE-613). - Oturum Sabitleme (CWE-384): Saldırgan kimlik doğrulamadan önce bilinen bir oturum tanımlayıcısı sağlar; uygulama başarılı girişte oturum kimliğini yenilemezse, saldırganın önceden yerleştirdiği tanımlayıcı geçerli hale gelir.
- Güvensiz Parola Sıfırlama: Tahmin edilebilir güvenlik sorularına, yetersiz entropili belirteçlere, süresi dolmayan belirteçlere dayanan veya bir hesabın var olup olmadığını açığa çıkaran (kullanıcı numaralandırması) sıfırlama akışları.
- Güvensiz Parola Depolama: Parolaların düz metin olarak, tersine çevrilebilir şifrelemeyle veya zayıf karma algoritmalarıyla (tuz olmadan MD5, SHA-1) depolanması; veritabanı ele geçirildiğinde toplu kimlik bilgisi kurtarmayı mümkün kılar.
- MFA Atlatma: Tahmin edilebilir OTP tohumları, OTP tekrar kullanım korumasının yokluğu veya ikinci faktörü tamamen devre dışı bırakan geri dönüş mekanizmaları gibi MFA uygulamasındaki açıklar.
İş etkisi
Kimlik doğrulama zafiyetlerinin başarıyla istismar edilmesi; bireysel kullanıcıların hesaplarının tam olarak ele geçirilmesine ya da yönetici hesapları söz konusu olduğunda sistemin tamamen tehlikeye girmesine yol açabilir. Spesifik sonuçlar şunlardır:
- Veri ihlali: Kişisel, finansal veya sağlık verilerine yetkisiz erişim; GDPR, HIPAA, PCI DSS ve benzeri düzenlemeler kapsamında bildirim yükümlülükleri doğurur.
- Finansal dolandırıcılık: Saldırganlar işlem başlatabilir, ödeme verilerini sızdırabilir veya ele geçirilen hesapları doğrudan paraya çevirebilir.
- Ayrıcalık yükseltme: Sıradan bir kullanıcı hesabına erişim, rol ayrımı zayıfsa yönetim arayüzlerine pivot noktası olarak kullanılabilir.
- İtibar kaybı: Kamuoyuna yansıyan hesap ele geçirme vakaları müşteri güvenini zedeler ve kullanıcıları rakiplere yönlendirebilir.
- Düzenleyici cezalar: Yeterli kimlik doğrulama kontrollerinin uygulanmaması, GDPR Madde 32 ve PCI DSS Gereksinim 8'de teknik koruma önlemleri gerektiren bir alan olarak açıkça atıfta bulunulmaktadır.
- Hizmet kesintisi: Credential stuffing saldırıları, meşru kullanıcılar için performansı düşürebilecek önemli miktarda trafik oluşturur.
Nasıl düzeltilir?
- Güçlü parola politikaları uygulayın: En az 12 karakter uzunluğu zorunlu kılın. Yeni parolaları bilinen ihlal edilmiş parolalar listesiyle karşılaştırın (örn. HaveIBeenPwned API veya yerel bir engelleme listesi kullanarak). Kolayca aşılabilen karmaşıklık kurallarından kaçının (örn.
P@ssw0rd). Karmaşıklık yerine uzunluğu ön plana çıkaran NIST SP 800-63B kılavuzunu izleyin. - Çok faktörlü kimlik doğrulama (MFA) uygulayın: Tüm hesaplar için, özellikle ayrıcalıklı olanlar için MFA zorunlu kılın. SIM takas saldırılarına duyarlı SMS OTP yerine TOTP (RFC 6238) veya FIDO2/WebAuthn donanım anahtarlarını tercih edin. MFA'nın geri dönüş akışları aracılığıyla atlatılamadığından emin olun.
- Kimlik doğrulama denemelerini hız sınırlayın ve kilitleyin: Yapılandırılabilir sayıda başarısız denemeden (örn. 5–10) sonra aşamalı gecikmeler veya geçici kilitlemeler uygulayın. Otomatik istek kalıpları için CAPTCHA zorlukları uygulayın. Anormal giriş etkinliğini günlüğe kaydedin ve uyarı verin. Kilitlemenin hesap varlığına mı yoksa yanlış parolaya mı bağlı olduğunu açıklamaktan kaçının.
- Parolaları güçlü adaptif karma ile depolayın: Yeterli iş faktörü ve benzersiz kullanıcı başına tuz ile bcrypt, scrypt, Argon2id veya PBKDF2 kullanın. Parolaları asla düz metin olarak depolamayın veya parola karması için MD5/SHA-1 kullanmayın.
- Oturumları güvenli yönetin: Kriptografik açıdan güvenli bir sözde rastgele sayı üreteci (CSPRNG) kullanarak en az 128 bit entropiye sahip oturum tanımlayıcıları oluşturun. Çerezleri
HttpOnly,SecureveSameSite=Strictya daLaxöznitelikleriyle ayarlayın. Oturum sabitlemesini önlemek için başarılı kimlik doğrulamada oturum kimliğini yenileyin. Uygulamanın risk profiline uygun mutlak ve atıl oturum zaman aşımları uygulayın. - Çıkışta ve parola değişikliğinde oturumları geçersiz kılın: Çıkışta yalnızca istemci tarafı çerez silme değil, sunucu tarafı oturum yok etme sağlayın. Parola değiştirildiğinde veya hesap tehlikeye girdiğinde tüm aktif oturumları geçersiz kılın.
- Parola sıfırlama akışlarını güvenceye alın: Doğrulanmış bir kanala iletilen yüksek entropili, tek kullanımlık, süreli belirteçler (en az 128 bit, sona erme ≤ 15 dakika) kullanın. Hata mesajlarında hesap varlığını açıklamayın. Kullanımdan hemen sonra belirteci geçersiz kılın.
- Varsayılan kimlik bilgilerini ortadan kaldırın: Tüm sistem hesapları için ilk girişte kimlik bilgisi değişikliği zorunlu kılın. Dağıtım öncesinde altyapıyı ve üçüncü taraf bileşenleri bilinen varsayılan kimlik bilgileri açısından tarayın.
- Hesap ele geçirme tespiti uygulayın: Yeni coğrafyalardan, cihazlardan veya IP aralıklarından girişleri izleyin. Kullanıcıları tanıdık olmayan bağlamlardan gelen başarılı girişler hakkında bilgilendirin ve yetkisiz erişimi bildirme mekanizması sağlayın.
- Yerleşik bir kimlik doğrulama çerçevesi benimseyin: Mümkün olduğunda, özel kimlik doğrulama mantığı oluşturmak yerine OpenID Connect veya SAML 2.0 kullanan iyi denetlenmiş bir kimlik sağlayıcısına (IdP) kimlik doğrulamayı devredin.
Sensagraph, eksik kilitleme kontrolleri, güvensiz çerez öznitelikleri ve açıkta kalan varsayılan kimlik bilgileri gibi yaygın kimlik doğrulama zafiyeti göstergelerini otomatik olarak tespit eder.
Kaynaklar
- OWASP Top 10 A07:2021 – Kimlik Doğrulama ve Tanımlama Hataları
- OWASP Web Güvenliği Test Kılavuzu – Kimlik Doğrulama Testi
- OWASP Kimlik Doğrulama Hile Kağıdı
- OWASP Oturum Yönetimi Hile Kağıdı
- OWASP Parola Depolama Hile Kağıdı
- MITRE CWE-287: Hatalı Kimlik Doğrulama
- MITRE CWE-307: Aşırı Kimlik Doğrulama Denemelerinin Kısıtlanmaması
- MITRE CWE-384: Oturum Sabitleme
- NIST SP 800-63B – Dijital Kimlik Kılavuzu: Kimlik Doğrulama ve Yaşam Döngüsü Yönetimi
- RFC 6238 – TOTP: Zamana Dayalı Tek Kullanımlık Parola Algoritması
- W3C Web Kimlik Doğrulaması (WebAuthn) Düzey 2