Veritabanı Sızma Testi: Kapsam, Yöntem ve Bulgular
Veritabanı neden ayrı test edilmeli?
Şirketin en değerli verisi çoğunlukla veritabanındadır: müşteri bilgileri, siparişler, finansal kayıtlar. Uygulama testi veritabanına giden yolların bir kısmını kapsar; ağ erişimi, kullanıcı yetkileri, yedekler ve yönetim panelleri ayrıca ele alınmalıdır.
Testin kapsamı
- Ağ erişimi: Veritabanı portu (MySQL 3306, PostgreSQL 5432, MSSQL 1433) internete açık mı?
- Kimlik doğrulama: Varsayılan veya zayıf parolalar, paylaşılan hesaplar
- Yetkilendirme: Uygulama kullanıcısı gereğinden fazla yetkiye sahip mi?
- Uygulama katmanı: SQL enjeksiyonu ve ORM'in yanlış kullanımı
- Şifreleme: Bağlantı TLS ile mi? Hassas alanlar şifreli mi?
- Yedekler: Yedek dosyaları web dizininde mi, şifresiz mi?
- Yönetim araçları: phpMyAdmin, Adminer gibi araçlar herkese açık mı?
- Kayıt ve izleme: Başarısız girişler ve kritik sorgular loglanıyor mu?
Yöntem
Dış bakışta uygulama ve ağ üzerinden veritabanına ulaşılmaya çalışılır. İç bakışta (gri/beyaz kutu) yapılandırma, kullanıcı yetkileri ve sürüm durumu bir kontrol listesiyle incelenir; CIS Benchmark rehberleri burada iyi bir referanstır.
Sık karşılaşılan bulgular
- Uygulamanın veritabanına root veya sa gibi en yetkili hesapla bağlanması
- Parametresiz sorgular nedeniyle SQL enjeksiyonu
- Veritabanı portunun internete açık olması
- Web dizininde unutulmuş .sql yedek dosyaları
- Bilinen açığı olan eski veritabanı sürümleri
- Parolaların düz metin veya MD5/SHA1 ile saklanması
Önerilen önlemler
- Her uygulama için yalnızca gerekli yetkilere sahip ayrı kullanıcı
- Tüm sorgularda parametreli sorgu (prepared statement)
- Veritabanını sadece uygulama sunucusunun erişebildiği özel ağda tutmak
- Parolalar için bcrypt veya Argon2
- Yedekleri şifreleyip web dizini dışında saklamak
- Düzenli sürüm güncellemesi ve log takibi
Sonuç
Veritabanı güvenliği son savunma hattıdır. Mevcut yapınızı test ettirmek için siber güvenlik testleri sayfamıza göz atabilir veya teklif alabilirsiniz.