dataiotech Labs
dbaguidedbaguideDBAdataxtoolsdataopsphere
Runbook #35
sqlserver
SecuritySEV1 · KRİTİK KESİNTİ15-30 dakika / 15-30 minssysadmin / CONTROL SERVER / VIEW SERVER STATE

SQL Server Başarısız Login Artışı (Error 18456): Kaynak ve Neden Analizi

Artan giriş hatalarının yanlış uygulama parolası, erişim sorunu veya saldırı olup olmadığını ayırır; hesap kilitleme ve ağ izolasyonunu kontrollü uygular.

İlişkili Metrik:M36
İlişkili Script:S57
#error-18456#login#audit#brute-force

Operasyonel Güvenlik ve Risk Uyarısı

Bu runbook müdahale adımları içerir; birçok adım yazma etkilidir (KILL, terminate, DROP, RESIZE). Önce test ortamında deneyin, üretimde adımları sırayla ve doğrulayarak uygulayın.

🟢 Salt Okunur (Read-Only)·🟡 Geri Alınabilir (Reversible)·🔴 Yüksek Etkili / Geri Alınamaz (High Impact)

1. Belirti / Symptom

- M36: Hata 18456 sayısı baseline'a göre artıyor; uygulama kimlik doğrulama hatası veya güvenlik uyarısı veriyor.

- SQL Server error log'da `Login failed for user ...` satırları (başarısız login denetimi etkinse).

2. Etki / Impact

Geçerli kullanıcılar bağlanamayabilir; aşırı deneme CPU/log gürültüsü ve güvenlik riski yaratır. Yanlış müdahale servis hesabını kapatıp kesintiyi büyütebilir.

3. Teşhis / Diagnosis

🟢 Salt Okunur1. SQL Server error log'daki zaman, kullanıcı ve varsa `[CLIENT: IP]` bilgisini toplayın; log kaydında IP her durumda olmayabilir:
sql
EXEC master.dbo.xp_readerrorlog 0, 1, N'Login failed';

Sorgu veri döndürmüyorsa **denetimin etkin olduğunu varsaymayın**; SQL Server Audit/harici SIEM'i kontrol edin. Loglara erişimi en az yetkiyle sınırlandırın.

🟢 Salt Okunur2. Error 18456'nın **state** bilgisini logdan okuyun; uygulamaya dönen genel hata mesajı neden için yeterli değildir. Hata zamanı bir deployment/şifre rotasyonu ile örtüşüyor mu, yanlış varsayılan veritabanı veya devre dışı hesap mı kontrol edin.
🟢 Salt Okunur3. S57 ile ilgili login'in durumuna ve politika ayarına bakın:
sql
SELECT p.name, p.type_desc, p.is_disabled,
       sl.is_policy_checked, sl.is_expiration_checked,
       sl.default_database_name
FROM sys.server_principals AS p
LEFT JOIN sys.sql_logins AS sl ON sl.principal_id = p.principal_id
WHERE p.name = N'OrnekLogin';
SELECT SERVERPROPERTY('IsIntegratedSecurityOnly') AS windows_auth_only;

`sys.dm_exec_connections` başarısız girişleri **göstermez**; yalnızca gerçekleşmiş bağlantıları listeler. Kaynak IP için error log/Audit veya ağ kayıtlarını kullanın.

🟢 Salt Okunur4. **Kümeleme:** Tek uygulama kullanıcısı ve deployment sonrası başlangıç = büyük olasılıkla kimlik bilgisi sorunu; birçok hesap/çok IP ve yoğun deneme = güvenlik olayı. Üretim sırlarını sohbet veya yayınlanacak runbook'a yazmayın.

4. Müdahale / Response

🟡 Geri Alınabilir1. Yetkili uygulama hesabında meşru yanlış parola/expired password varsa **güvenli secret yöneticisi ve deployment akışı** üzerinden düzeltin; parolayı log'a, query text'e veya komut satırına yazmayın. Uygulama havuzunun eski kimlikle tekrar denemesini önleyin.
🟡 Geri Alınabilir2. Kötü niyetli kaynak IP doğrulanmışsa ağ güvenlik ekibiyle firewall/WAF/proxy katmanında kaynağı engelleyin; SQL Server'da yerleşik IP blocklist varmış gibi davranmayın.
🔴 YÜKSEK RİSK / GERİ ALINAMAZ3. İhlal edildiğinden şüphelenilen **ve üretim servis bağımlılığı doğrulanmamış** SQL login'i, olay müdahale onayıyla geçici devre dışı bırakın:
sql
ALTER LOGIN [OrnekLogin] DISABLE;

Bu, **mevcut oturumları otomatik sonlandırmaz**; oturumları ayrıca araştırın. `sa` veya kritik servis login'ini körlemesine kapatmayın.

4. **Kalıcı çözüm:** SQL Server Audit'te başarısız giriş olaylarını merkezi SIEM'e iletin; ayrı servis hesapları, en az yetki, ağ erişim kısıtı ve parola rotasyonu uygulayın. Error log saklama/denetim ayarlarını gözden geçirin.

5. **Yapmayın:** Sorunu bastırmak için başarısız login denetimini kapatmayın veya tüm SQL login'leri devre dışı bırakmayın.

5. Doğrulama / Verification

- M36 normale indi, yetkili uygulama hesapları tekrar bağlanıyor, şüpheli kaynak denemeleri kesildi.

- SIEM/error log izleme devam ediyor; servis hesaplarında yeni 18456 oluşmuyor.

6. Geri Alma / Rollback

- Hesap için yanlış pozitif durumunda olay müdahale onayıyla `ALTER LOGIN [OrnekLogin] ENABLE;`.

- Ağ engelini geri alırken kaynağı yeniden doğrulayın. Kimlik bilgisi rotasyonunu güvenli değişim planı olmadan geri çevirmeyin.

Diğer SQLSERVER Runbook'ları