SQL Server’da En Çok Göz Ardı Edilen 5 Güvenlik Açığı
SQL Server, birçok kurumun iş süreçlerinin merkezinde yer alıyor ve kritik verilerin güvenle saklanmasında kilit rol oynuyor. Fakat pratikte, performans veya kesintisiz çalışmaya odaklanırken güvenlik tarafında bazı önemli noktaların ihmal edildiğini sıkça görüyoruz. Küçük gibi görünen bu ihmaller, veri ihlallerine, regülasyon uyumsuzluklarına ve büyük finansal kayıplara yol açabiliyor.
Ne yazık ki birçok DBA veya sistem yöneticisi, performans ve uptime konularına yoğunlaşırken güvenlik tarafında bazı temel prensipleri gözden kaçırabiliyor. İşte SQL Server ortamlarında en sık göz ardı edilen 5 güvenlik açığı ve bunları nasıl önleyebileceğiniz:
1-Varsayılan “sa” Hesabının Kullanılması
Sorun:
SQL Server kurulumundan sonra gelen sa (system administrator) hesabı, en yüksek yetkilere sahip hesaptır. Çoğu ortamda bu hesap hâlâ aktiftir ve bazen varsayılan ya da kolay tahmin edilebilir şifrelerle çalıştırılır.
Risk:
- Brute-force saldırılarında ilk denenen kullanıcı
saolur. - Hesaba erişim sağlandığında saldırgan tam veritabanı kontrolüne kavuşur.
- Yalnızca SQL Server değil, bağlı tüm sistemler risk altına girer.
Çözüm:
sahesabını devre dışı bırakın veya şifresini rastgele güçlü bir parola ile değiştirin.- Yönetici ihtiyacını karşılamak için Active Directory tabanlı ayrı hesaplar oluşturun.
- SQL Authentication yerine Windows Authentication’ı tercih edin.
- SQL Error Log üzerinde sürekli olarak
Login failed for user 'sa'uyarılarını kontrol edin.
2-Connection Dosyalarında Kullanıcı ve Şifre Bulundurma
Sorun:
Uygulama connection string’leri çoğunlukla şifrelenmeden, düz metin olarak dosya içerisinde tutuluyor.
Risk:
- Sunucuya erişim sağlayan biri kolayca tüm DB kullanıcı bilgilerini görebilir.
- Kaynak kod sızıntılarında (GitHub, dosya paylaşımı vb.) şifreler ele geçirilebilir.
- Hard-coded credential’lar saldırganlara doğrudan giriş bileti verir.
Çözüm:
- Connection string’leri Windows Credential Manager, Azure Key Vault, AWS Secrets Manager gibi gizli kasa (secrets vault) çözümleriyle saklayın.
- Şifreleri hiçbir zaman kod veya config dosyalarına gömülü bırakmayın.
- Gerektiğinde connection string’leri AES veya DPAPI ile şifrelenmiş olarak saklayın.
3-Şifrelenmemiş Veri ve Bağlantılar
Sorun:
Hassas veriler (müşteri bilgileri, kimlik numaraları, kredi kartı verileri) çoğu zaman şifrelenmeden tablolar üzerinde tutulur. Aynı zamanda uygulamalar SQL Server’a bağlanırken bağlantılar genellikle SSL/TLS olmadan yapılır.
Risk:
- Ağ içinde “sniffing” yapabilen biri, kullanıcı adı, şifre ve veri içeriklerini kolayca görebilir.
- GDPR, KVKK gibi regülasyonlara uyumsuzluk ortaya çıkar.
- Hassas verilerin sızdırılması, şirket için hem yasal hem finansal yaptırımlara yol açar.
Çözüm:
- Veri tabanında Transparent Data Encryption (TDE) aktif edin.
- Hassas kolonlar için Column-Level Encryption veya Always Encrypted özelliğini kullanın.
- SQL Server bağlantılarını TLS sertifikaları ile şifreleyin.
- Uygulama connection string’lerinde
Encrypt=True; TrustServerCertificate=Falseparametrelerini kullanın.
4-İzleme ve Audit Eksikliği
Sorun:
Çoğu kurumda “kim, ne zaman, hangi veriye erişti?” sorusunun cevabı yoktur. Çünkü audit logları ya hiç aktif edilmemiştir ya da yalnızca default seviyede tutulmaktadır.
Risk:
- Veri sızıntısı olduğunda geriye dönük inceleme yapılamaz.
- İç tehditler (örneğin bir çalışanın gizlice veri çekmesi) fark edilmez.
- Regülasyon denetimlerinde (KVKK, SOX, HIPAA) başarısız olunur.
Çözüm:
- SQL Server Audit özelliğini kullanarak login denemelerini, DML/DDL işlemlerini ve kritik tablo erişimlerini kaydedin.
- Audit loglarını merkezi bir SIEM (Splunk, Elastic, Azure Sentinel vb.) ile entegre edin.
- Şüpheli giriş denemeleri için e-posta veya SMS alarmları kurun.
- Extended Events ile “sorgu bazlı” izleme yapın.
5-Güncellemeleri ve Patch’leri İhmal Etmek
Sorun:
“Çalışıyor, dokunmayalım” yaklaşımı nedeniyle birçok SQL Server örneği yıllarca güncellenmeden kalır.
Risk:
- Microsoft tarafından yayınlanan güvenlik güncellemeleri (CVE’ler) uygulanmazsa saldırganlar bilinen açıkları kullanabilir.
- Özellikle internetten erişilebilir SQL Server’lar, ilk hedef haline gelir.
Çözüm:
- Düzenli patch management süreci oluşturun.
- Önce test ortamında güncellemeleri uygulayın, ardından production’a geçirin.
- Microsoft’un Security Baseline ve Best Practice Analyzer (BPA) raporlarını düzenli kontrol edin.
- Sunucuların OS seviyesinde de güncel olduğundan emin olun.
Sonuç olarak SQL Server güvenliği yalnızca firewall ve antivirüs ile sağlanmaz. Veri tabanı seviyesinde alınacak küçük ama kritik önlemler, saldırganlar için ortamınızı çok daha zor bir hedef haline getirir.


