Veritabanı güvenliği

Ayrıcalıklar

Veri tabanı ortamında veritabanı güvenliğine ilişkin iki ayrıcalık türü önemlidir. Bunlar Sistem ve Nesne ayrıcalıklarıdır.

Sistem Ayrıcalıkları

Sistem ayrıcalıkları, bir kullanıcının bir veritabanında yönetime ilişkin işlemleri yapmasına izin verir. Bunlar, veritabanı oluşturma, prosedür oluşturma, yedek veritabanı oluşturma, tablo oluşturma, tetikleyici oluşturma ve çalıştırma ayrıcalıklarını(SQL server da olduğu gibi) içerir.

Nesne Ayrıcalıkları

Nesne ayrıcalıkları, veritabanı nesneleri üzerindeki belirli işlemleri başka bir kullanıcı tarafından yetkilendirilmiş olarak kullanmaya izin verir. Kullanım, seçim, ekleme, güncelleme ve referanslar örnek olarak verilebilir.
–
En az Ayrıcalık İlkesi ve Görevlerin Ayrımı:
Veritabanları iç yönetim kapsamına girmektedir. Yani, kamusal raporlama, yıllık raporlar vb. için kullanılan veriler görev ayrımına bağlıdır. Bu anlamda geliştirme ile üretim arasında görev ayrımı yapılmalıdır.Her görev, gerçek kodu yazmayan üçüncü bir kişi tarafından (kod incelemesi ile) onaylanmalıdır.Veritabanı geliştiricisi, gerçekleştirilmekte olan işin belgelerine ve kodlarına ilişkin bağımsız bir inceleme yapmadan üretimde herhangi bir şey yürütememelidir. Tipik olarak geliştiricinin rolü, bir DBA (Oracle veri tabanı yöneticisi ) 'ya kod aktarmaktır ancak ekonomik çöküşten kaynaklanan kesintiler göz önüne alındığında bir DBA hazır olmayabilir. Bir DBA’ya kod aktrımı yapılamazsa, en azından bir eşdüzey DBA nin kod incelemesi yapması önemlidir.Bu, geliştiricinin rolünün açıkça ayrı olmasını sağlar.
İç yönetimin bir diğer noktası, özellikle üretimde en az ayrıcalık sağlama ilkesine bağlılıktır. Geliştiricilerin çalışmalarını tamamlamaları için daha fazla erişime ihtiyaç duymaları halinde kimliğe bürünme yöntemi (impersonation)(örneğin, geçici olarak bişey yapmak için EXECUTE AS veya sudo) kullanılır. Bu tarz yükseltilmiş haklar gerektiren isteklerde kimliğe bürünme kullanımı daha güvenlidir.Çoğu zaman geliştiriciler, kod yazılarak zafere gidilen yolda bunun ek yük(“overhead”) olmasını göz ardı ederler.Bununla birlikte, DBA’lar sorumlu olduğu düşünülen her şeyi yapmak zorundadırlar çünkü bunlar, organizasyonun “de facto” veri sorumlusudur; düzenlemeye ve yasalara uymak zorundadırlar.

Risk ve Uyumluluk Yönetiminde Güvenlik Açığı Değerlendirmeleri

Veritabanı güvenliğini değerlendirmek için güvenlik açığı değerlendirmeleri veya veritabanına karşı sızma testleri içeren bir teknik kullanılır.Test yapan kişiler sistemi tehlikeye atabilen, veritabanına zorla girebilen, güvenlik kontrollerini atlatabilen veya geçmeyi başarabilen güvenlik açıklarını bulmaya çalışırlar. Veritabanı yöneticileri veya bilgi güvenliği yöneticileri, mesela veritabanı yazılımındaki bilinen açıklıklar ile birlikte yukarıda bahsedilen katmanlardaki kontrollerin yanlış yapılandırılmasını ( genellikle “sapma”(drift) olarak adlandırılır.) araştırmak için otomatik güvenlik açığı taramaları kullanabilir. Bu tür taramaların sonuçları, veritabanını güçlendirmek (güvenliği artırmak) ve tanımlanmış belirli güvenlik açıklarını kapatmak için kullanılır, ancak diğer güvenlik açıkları genellikle bilinmeyen ve tanımlanmamış olarak kalır.
Güvenliğin kritik olduğu veritabanı ortamlarında, standartlara uyumu sağlamak için yapılan sürekli izleme güvenliği artırmaktadır. Güvenlik uyumluluğu, diğer prosedürlerin yanı sıra yama yönetimini ve veritabanı içindeki nesnelere verilen izinlerin(özellikle halka açık) gözden geçirilmesini ve yönetilmesini gerektirir.Veritabanı nesneleri, tablo bağlantısında listelenen tablo veya diğer nesneleri içerebilir.Nesneler üzerinde SQL dil komutları için verilen izinler bu süreçte değerlendirilir. Uyumluluğu görüntüleme, güvenlik açığı değerlendirmesine benzer, ancak güvenlik açığı değerlendirmelerinin sonuçları genellikle sürekli izleme programına neden olan güvenlik standartlarını yönlendirir.Aslında güvenlik açığı değerlendirmesi, devam eden risk değerlendirme sürecindeki uyum programının olduğu yerlerdeki riski belirlemek için ön prosedür.
Uyumluluk programı uygulama yazılımı düzeyindeki tüm bağımlılıkları dikkate almalıdır çünkü veritabanı düzeyindeki değişikliklerin uygulama yazılımı veya uygulama sunucusu üzerinde etkileri olabilir.  

Soyutlama

Uygulama seviyesindeki kimlik doğrulama ve yetkilendirme mekanizmaları, veritabanı katmanından soyutlama sağlamanın etkili araçları olabilir. Soyutlamanın başlıca yararı, birden çok veritabanı ve platformda tek bir kullanıcı kimliği ile oturum açma(single sign on) imkanıdır. Tek bir veritabanı oturum açma sistemi kullanıcının kimlik bilgilerini depolar ve kullanıcı adına veritabanına kimlik doğrulaması yapar.

Veritabani Aktivite İzleme

Daha sofistike nitelikte başka bir güvenlik katmanı da ağ üzerinden protokol trafiğini (SQL) analiz ederek veya her yerel veritabanı sunucusu üzerinde yazılım etmenleri(birimleri)(agent) kullanıp aktiviteyi gözlemleyerek ya da bu yöntemlerin ikisini birden kullanarak gerçek zamanlı veritabanı aktivite izlemeyi içerir. Etmenlerin ya da yerel logların kullanımı sunucuda gerçekleştirilen faaliyetlerini yakalamak için gereklidir. Bu genellikle veritabanı yöneticisinin faaliyetlerini içermektedir. Etmenler bu bilgileri, yerel denetim kayıtlarını devre dışı bırakma veya değiştirme yetkisine sahip olan veritabanı yöneticisi tarafından devre dışı bırakılamayacak şekilde kayıt edilmesine izin verir. 
Analiz, bilinen istismarları veya politika ihlallerini belirlemek için yapılabilir veya izinsiz girişi işaret edebilecek anormal aktivitelerin saptanması için kullanılan normal bir model oluşturmak için temel(baselime) zaman içinde yakalanabilir. Bu sistemler, saldırı tespit mekanizmalarına ek olarak kapsamlı bir veritabanı denetim geçmişi sağlayabilir ve bazı sistemler kullanıcı oturumlarını sonlandırarak ve/veya şüpheli davranış gösteren kullanıcıları karantinaya alarak ayrıca koruma sağlayabilir. Bazı sistemler, denetleyicilerin tipik gereksinimleri olan görevlerin ayrımını desteklemek üzere tasarlanmıştır (SOD). SOD, DAM'ın bir parçası olarak genellikle izlenen veritabanı yöneticilerinin DAM işlevini devre dışı bırakamamalarını veya değiştirememelerini gerektirir. DAM denetim geçmişinin, veritabanı yönetim grubu tarafından yönetilmeyen ayrı bir sistemde güvenli bir şekilde depolanmasını gerektirir.

Yerel denetim

İzleme veya denetim için harici araçlar kullanmanın yanı sıra, birçok veritabanı platformu için yerel veritabanı denetim özellikleri de mevcuttur. Yerli denetleme geçmişi düzenli olarak çıkarılır ve veritabanı yöneticilerinin erişiminin bulunmadığı ya da bulunmamasının gerektiği şekilde tasarlanmış bir güvenlik sistemine aktarılır. Bu, görevlerin yerel denetleme geçmişinin kimliği doğrulanmış yöneticiler tarafından değiştirilmediğine dair kanıt sağlayabilecek düzeyde ayrılmasını sağlar ve üretim, okuma hakları olan üst düzey güvenlik sorumlusu bir DBA grubu tarafından yürütülmelidir. Yerli etkinleştirme sunucunun performansını etkiler. Genellikle veritabanlarının yerel denetleme geçmişi görev ayrımı uygulamak için yeterli kontrol sağlamaz. Bu nedenle ağ ve/veya çekirdek(kernel) modül seviyesine sahip ana sistemin izleme yetenekleri, adli tıp ve kanıtların korunması için daha yüksek bir güven derecesi sağlar.

Süreç ve prosedürler

İyi bir veritabanı güvenlik programı, otomatik işlemlerle kullanılan kullanıcı hesaplarını ve hesaplara verilen ayrıcalıkların düzenli olarak incelenmesini içerir. Bireysel hesaplar için iki faktörlü kimlik doğrulama sistemi güvenliği geliştirilebilir ancak bu güvenliği daha karmaşık ve maliyetli hale getirir. Otomatik işlemler tarafından kullanılan hesaplar, yeterli şifreleme ve erişim kontrollerinin uzlaşma riskini azaltmak için şifre saklama depolama etrafında uygun kontrolleri gerektirir.
Sağlam bir veritabanı güvenlik programı ile birlikte, uygun bir felaket kurtarma programı, bir güvenlik olayı sırasında veya birincil veritabanı ortamının kesilmesine neden olan herhangi bir olayda hizmetin kesintiye uğramamasını sağlar. Birincil veritabanları için farklı coğrafi bölgelerde bulunan sitelere çoğaltma bunlara bir örnektir. 
Bir olay meydana geldikten sonra, veritabanı adli tıp ihlalin kapsamıyla sistemlere ve süreçlere uygun değişiklikleri belirlemek için kullanılabilir.