Veritabanı güvenliği ipuçları ve püf noktaları
Veritabanı Güvenliği İpuçları ve Püf Noktaları
Geçiş kontrol sistemi kurduğumda öğrendiğim en önemli ders şu oldu: fiziksel güvenlik kadar veritabanı güvenliği de kritiktir. Çünkü kapıdan içeri girenlerin tüm bilgileri, giriş-çıkış kayıtları ve kimlik verileri bu veritabanında saklanır. Eğer burası saldırıya uğrarsa, tüm sisteminiz tehlikede olur.
Bu rehberde, kendi geçiş kontrol sistemini kurma aşamasında veritabanını nasıl koruduğunu, ne hatalar yaptığını ve neler öğrendiğimi paylaşacağım.
1. Güçlü Şifre Politikası Belirleyin
Başlangıçta veritabanı yöneticisinin şifresini basit tutmuştum. "Neyse, benim ağımda kimse yoktur" diye düşünmüştüm. Ancak ilk hafta içinde bir deneme saldırısıyla karşı karşıya kaldım.
Şimdi kullanıcı şifrelerinizin en az 12 karakter olmasını zorunlu kılın. Büyük harf, küçük harf, sayı ve özel karakter içersin. Veritabanındaki yönetici hesapları için bunu iki katı sıkı tutun. Şifreleri düzenli olarak değiştirin (en az 90 günde bir).
2. Veritabanını Şifreleyin
Kişisel kimlik bilgileri, yüz tanıma verileri, parmak izi kayıtları – hepsi hassas. Veritabanı tamamen şifrelenmiş olmalı. Kalan sürücü şifrelemesi (full disk encryption) uyguladığımda, bir disk çalınması durumunda bile veriler güvende kalıyor.
Ayrıca tablolar düzeyinde de önemli alanları şifreleyin. Kullanıcı kimlik numarası, T.C. numarası gibi kritik bilgileri asla düz metinle saklamayın.
3. Erişim Kontrolü ve Yetkilendirmesi
Her kullanıcı sadece ihtiyacı olan bilgilere ulaşabilmeli. Temizlik görevlisi giriş-çıkış kaydı görmesine gerek yok, ama muhasebe müdürü görmesi gerekebilir. Koruma görevlisi tüm kameraları görsün, ama receptionist sadece ana giriş kapısının olaylarını görsün.
Rol tabanlı erişim kontrolü (RBAC) kurdum. Her rol için, o rol hangi tablolara, hangi alanlara erişebileceğini tanımladım. Veritabanı seviyesinde bu kısıtlamaları koyduğumda, bir yazılımda yapılan hata bile verilerime ulaşamıyor.
4. Düzenli Yedeklemeler Alın
En başta yedekleme ihmal etmiştim. Sonra bir hata yaptığımda verilerin yarısını kaybettim. O gün benim için öğretici oldu.
Şimdi her gün otomatik yedekleme alıyorum. Haftada bir de tam yedek, günlük olarak değişiklik yedekleri (incremental backup). Bu yedekleri ayrı bir fiziksel cihazda, ayrı bir lokasyonda saklıyorum. Böylece yazılım hatası, siber saldırı veya felakete karşı korundum.
5. Günlükleme ve İzleme
Veritabanındaki tüm değişiklikleri kaydettim. Kim ne zaman hangi veriyi değiştirdi? Kimin hesabı kullanılarak giriş yapıldı? Bu sorulara cevap alabiliyor olması beni rahatlatıyor.
Şüpheli aktiviteleri tespit etmek için günlükleri düzenli kontrol ediyorum. Çok başarısız giriş denemesi, saatler sonra veri silme işlemi, beklenmedik yüksek sayıda sorgu – bunlar alarm verileri.
6. Yazılım Güncellemeleri ve Yamaları
Veritabanı yazılımımın güvenlik yamaları yayınlandığında, biraz sonra yüklerim diye düşünmüştüm. Sonra okuyunca, bu yamaların hemen uygulanması gerektiğini anladım. Çoğu patch, yeni bulunan güvenlik açıklarını kapatıyor.
Şimdi test sunucusunda yama yükleyip kontrol ediyorum. Sorun yoksa hemen üretim ortamına geçiyorum. Minimum downtime'la maksimum güvenlik sağlayabilirim.
7. Ağ Güvenliği ve Erişim Sınırlaması
Veritabanı sunucusu, dışarıdan erişime açık olmamalı. Şirket ağının içinden, belirli IP adreslerinden ve bağlantı noktalarından erişime izin veriyorum. Veritabanı yönetim yazılımlarını da (phpMyAdmin, SSMS gibi) doğrudan internete açmıyorum.
Eğer uzaktan yönetim yapmanız gerekiyorsa, VPN üzerinden erişin. Böylece veriler kablo üzerinde şifrelenerek gider.
Sık Yapılan Hatalar
- Varsayılan şifreleri değiştirmemek: Veritabanını kurduğunuzda gelen standart şifreler (sa, admin, 12345) gibi şifreler. Bunları hemen değiştirin.
- SQL Injection'a karşı koruma almamak: Yazılımınız kullanıcıdan veri alırken, bunu temizlemeden doğrudan sorguya koymayın. Parameterized queries kullanın.
- Yedeklemeyi test etmemek: Yedek aldığınızı sanıyorsunuz, ama çalışmıyor olabilir. Ara sıra geri yükleme testi yapın.
- Eski verileri silmemek: Gerek olmayan eski kayıtları tutmak, veritabanını şişirir ve yavaşlatır. Bekletme politikası koyun.
Özet
Veritabanı güvenliği, geçiş kontrol sisteminizin kalbi. Burayı korumakta tembellik yaparsanız, tüm fiziksel güvenlik önlemleri anlamsız kalır. Güçlü şifreler, şifreleme, yetkiler, yedeklemeler ve izleme – bunların hepsi birlikte çalışırsa güvenliğinizi sağlam tutabilirsiniz. Zamanınızı ayırıp bu adımları uygulayın. Zarar gördüğünüzde "keşke başında yapsa idim" demek yerine, şimdiden doğru alışkanlıklar edinin.