Ana içeriğe geç

A07:2021 – Identification and Authentication Failures icon

Faktörler

CWEs Mapped Max Incidence Rate Avg Incidence Rate Avg Weighted Exploit Avg Weighted Impact Max Coverage Avg Coverage Total Occurrences Total CVEs
22 14.84% 2.55% 7.40 6.50 79.51% 45.72% 132,195 3,897

Genel Bakış

Önceden Broken Authentication olarak bilinen bu kategori, ikinci sıradan aşağı kaydı ve artık kimlik doğrulama (authentication) değil, kimlik tespiti (identification) ile ilgili hatalara dair Common Weakness Enumerations (CWEs) kümelerini de içeriyor. Dikkate değer CWE’ler arasında CWE-297: Improper Validation of Certificate with Host Mismatch, CWE-287: Improper Authentication ve CWE-384: Session Fixation bulunur.

Açıklama

Kullanıcının kimliğinin doğrulanması, authentication ve session yönetimi; authentication kaynaklı saldırılara karşı korunmak için kritiktir. Aşağıdaki durumlar varsa uygulamada authentication zafiyetleri olabilir:

  • Saldırganın geçerli username/password listeleriyle credential stuffing gibi otomatik saldırılar yapmasına izin veriyorsa.
  • Brute force veya diğer otomatik saldırılara izin veriyorsa.
  • “Password1” veya “admin/admin” gibi varsayılan, zayıf veya yaygın parolalara izin veriyorsa.
  • “Bilgiye dayalı sorular” gibi güvenli hâle getirilemeyen zayıf/hatalı credential recovery ve forgot-password süreçleri kullanılıyorsa.
  • Parolalar plain text, şifreli ama hatalı veya zayıf şekilde hash’lenmiş data store’larda tutuluyorsa (bkz. A02:2021-Cryptographic Failures).
  • Multi-factor authentication eksik veya etkisizse.
  • Session identifier URL’de açığa çıkıyorsa.
  • Başarılı login’den sonra aynı session identifier yeniden kullanılıyorsa.
  • Session ID’ler doğru şekilde geçersiz kılınmıyorsa. Kullanıcı session’ları veya authentication token’ları (özellikle single sign-on (SSO) token’ları) logout sırasında veya belli bir inactivity süresinden sonra düzgün biçimde invalid edilmiyorsa.

Nasıl Önlenir

  • Mümkün olan yerlerde multi-factor authentication uygulayın; credential stuffing, brute force ve çalıntı credential tekrar kullanımına karşı koruma sağlar.
  • Özellikle admin kullanıcılar için, varsayılan credential’larla ship/deploy etmeyin.
  • Yeni veya değiştirilen parolaları en kötü 10.000 parola listesine karşı test etmek gibi zayıf parola kontrollerini uygulayın.
  • Parola uzunluğu, karmaşıklığı ve rotasyon politikalarını NIST 800-63b’nin 5.1.1 (Memorized Secrets) bölümündeki rehberle veya diğer modern, kanıta dayalı parola politikalarıyla hizalayın.
  • Kayıt, credential recovery ve API akışlarını; tüm sonuçlar için aynı mesajları kullanarak account enumeration saldırılarına karşı sertleştirin.
  • Başarısız login denemelerini sınırlayın veya giderek geciktirin; ancak bir denial of service senaryosu yaratmamaya dikkat edin. Tüm başarısızlıkları log’layın ve credential stuffing, brute force veya diğer saldırılar tespit edildiğinde yöneticileri uyarın.
  • Login sonrasında yüksek entropili yeni ve rastgele bir session ID üreten, server-side, güvenli ve built-in bir session manager kullanın. Session identifier URL’de olmamalı, güvenli biçimde saklanmalı ve logout, idle ve absolute timeout’lardan sonra invalid edilmelidir.

Örnek Saldırı Senaryoları

Senaryo #1: Credential stuffing, bilinen parola listelerinin kullanımıyla yapılan yaygın bir saldırıdır. Bir uygulama, otomatik tehdit veya credential stuffing koruması uygulamıyorsa; bu uygulama, credential’ların geçerli olup olmadığını test etmek için bir “password oracle” olarak kullanılabilir.

Senaryo #2: Çoğu authentication saldırısı, parolaların tek faktör olarak kullanılmaya devam edilmesi nedeniyle gerçekleşir. Bir zamanlar en iyi uygulama sayılan parola rotasyonu ve karmaşıklık gereksinimleri, kullanıcıları zayıf parolalar kullanmaya ve yeniden kullanmaya iter. NIST 800-63’e göre bu uygulamalardan vazgeçilmesi ve multi-factor authentication’a geçilmesi tavsiye edilir.

Senaryo #3: Uygulama session timeout’ları doğru ayarlanmamıştır. Bir kullanıcı, public bir bilgisayardan uygulamaya erişir. “Logout”u seçmek yerine yalnızca tarayıcı sekmesini kapatır ve uzaklaşır. Bir saldırgan bir saat sonra aynı tarayıcıyı kullanır ve kullanıcı hâlâ authenticated durumdadır.

Referanslar

Eşleştirilen CWE Listesi

CWE-255 Credentials Management Errors

CWE-259 Use of Hard-coded Password

CWE-287 Improper Authentication

CWE-288 Authentication Bypass Using an Alternate Path or Channel

CWE-290 Authentication Bypass by Spoofing

CWE-294 Authentication Bypass by Capture-replay

CWE-295 Improper Certificate Validation

CWE-297 Improper Validation of Certificate with Host Mismatch

CWE-300 Channel Accessible by Non-Endpoint

CWE-302 Authentication Bypass by Assumed-Immutable Data

CWE-304 Missing Critical Step in Authentication

CWE-306 Missing Authentication for Critical Function

CWE-307 Improper Restriction of Excessive Authentication Attempts

CWE-346 Origin Validation Error

CWE-384 Session Fixation

CWE-521 Weak Password Requirements

CWE-613 Insufficient Session Expiration

CWE-620 Unverified Password Change

CWE-640 Weak Password Recovery Mechanism for Forgotten Password

CWE-798 Use of Hard-coded Credentials

CWE-940 Improper Verification of Source of a Communication Channel

CWE-1216 Lockout Mechanism Errors