Merhaba,
Bu yazımda sizlere Oracle Veritabanı Güvenliği ve Veritabanı ve Profile Güvenlik Parametrelerini anlatacağım.
Oracle veri tabanı, profillere dayalı şifre kontrollerini gerekli kılar. Çoklu profiller, değişik güvenlik düzeyleri gerektiren hesaplar arasındaki kontrollere ilişkin farklara izin veren ortamlar içinde tanımlanır. UNLIMITED olarak listelenen her bir seçenek için kontrol seçimi verilmemiştir.
Oracle user ları için tanımlanan Profile lerde bulunan parametreler ve açıklamaları aşağıdaki gibidir.
PASSWORD LIFE TIME: Şifrenin belirlendiği zamandan yeni bir şifre ile değiştirileceği zamana kadar olan süreyi gösterir.
PASSWORD GRACE TIME: Kullanıcının şifre değiştirmesi geçen süreyi aştığı zaman içinde mevcut olan şifresi ile yetkisinin ne kadar süre içinde devam edeceğini gösterir.
PASSWORD REUSE MAX: Şifre değişiminde aynı şifrenin yeniden kullanılması durumunda değiştirilmesi gereken farklı şifre sayısını belirtir.
PASSWORD REUSE TIME: Şifre değişiminde aynı şifrenin yeniden kullanılması için geçmesi gereken gün sayısını belirtir.
PASSWORD VERIFY FUNCTION: Karmaşık şifrelerin kullanılmasına izin verir. Bu, hem alfabetik hem de sayısal karakterleri olan şifrelerin kullanımının, şifre uzunluğunun ve izin verilmeyen kelime listelerine ait olmayan şifrelerin belirlenmesini içerir. Bu profil seçeneğinin değeri sonradan değiştirilebilir. Bu değer tanımlanan her bir profil için tek olabilir. NULL değer kontrolün seçilir kılınmadığını ifade eder.
FAILED LOGIN ATTEMPTS: Bloke edilmeden önce şifrenin kaç kere giriş denemesi için kullanılabileceği sayıyı belirtir. Yalnızca yüksek düzey uygun sistem yetkisi olan kullanıcıların, kullanıcı hesabını yeniden işlevsel hale getirme yetkisi vardır.
PASSWORD LOCK TIME: Bir hesabın yanlış girişler sonucu bloke olması durumunda hesabın yeniden açılması öncesinde gerekli olan süreyi belirtir. Eğer bu UNLIMITED olarak ayarlanmışsa ve FAILED LOGIN ATTEMPTS değeri UNLIMITED değil ise hesap süresiz olarak ya da sistem yöneticisi bu duruma müdahale edene kadar bloke edilir.
Veri tabanı hesaplarının şifre güvenlik kontrollerine tabi tutulmadığı durumlarda kaba kuvvet yöntemi (brute force attack) ya da şanslı tahminlerle şifrelere ulaşılarak, sisteme girişlerin olduğu sözde yetkisiz giriş risklerinde artış olacaktır. Brute force attack yöntemi, veri tabanına yapılan saldırılar oldukça rastlanılan bir yöntemdir ve sözlükteki kelimelerin şifre olarak kullanılıp, veri tabanına bağlanma girişimlerini içeren bir programın çalıştırılmasıyla gerçekleştirilir.
Yeterli derecede şifre kontrollerinin olmadığı durumlarda sistemdeki izinsiz giriş riskleri artar. Bu durum sistem içinde tutulan bilginin yanlış olabileceği, usulsüzlüğün mümkün olabileceği ve önemli faaliyet kararlarının yanlış bilgilere dayanılarak yapılabileceği gibi riskleri arttırır.
Mevcut şifre güvenlik kuralları, kurumun amaçları ve işletmenin güvenlik politikası ile tutarlı olması açısından gözden geçirilmelidir.
Veritabanı Yöneticisi, veri tabanındaki hesapların şifre güvenlik kontrollerinin gerçekleştirilmesi için kişiye özel veri tabanı profil kullanımı ile ilgili konuyu göz önünde bulundurmalıdır. Böylece hesap şifrelerinin düzenli olarak değiştirilmesi sağlanacak ve karmaşıklığa ve minimum uzunluğa tabi olarak yeniden tekrarlanamayacak ve başarısız girişler bloke edilebilecektir.
Çoklu kişiye özel veri tabanı profillerinin yaratılması, değişik güvenlik düzeyleri gerektiren hesaplar arasındaki şifre kontrollerindeki değişikliklere izin verecektir.
Aşağıdaki tabloda Oracle veri tabanı güvenliğini etkileyen bazı parametreler belirtilmiştir.
NAME | VALUE | DESCRIPTION |
audit_trail | NONE | enable system auditing |
db_name | MUH | database name specified in CREATE DATABASE |
07_DICTIONARY_ACCESSIBILITY | FALSE | Version 7 Dictionary Accessibility Support |
os_roles | FALSE | retrieve roles from the operating system |
remote_login_passwordfile | EXCLUSIVE | password file usage parameter |
remote_os_authent | FALSE | allow non-secure remote clients to use auto-logon accounts |
remote_os_roles | FALSE | allow non-secure remote clients to use os roles |
sql92_security | FALSE | require select privilege for searched update/delete |
utl_file_dir | /oracle/app/file/utl1 | utl_file accessible directories list |
Bu parametrelerin tanımı aşağıdaki gibidir.
AUDIT_TRAIL: Veri tabanı denetiminin seçilir kılınıp, kılınmadığını belirler. NONE değerinin seçili olması iz kayıtlarının tutulmadığını göstermektedir.
Not: Bu iz kayıtları, veri tabanınındaki her “trigger” içindeki seçilir kılınmış denetimi içermez.
DB_NAME: Veri tabanının adını gösterir.
DB_LINK_ENCRYPT_LOGIN: Veri tabanı bağlantıları aracılığıyla uzak Oracle veri tabanına yapılacak bağlantı girişimlerinde kodlu şifre kullanılması gerektiğini işaret eder. FALSE değeri bunun seçilir kılınmadığını belirtir.
OS_ROLES: İşletim sistemi görevlerinin kullanıcı yetkilerini belirlemek için kullanılıp, kullanılmadığını belirtir. FALSE değer, bunların kullanılmadığını gösterir.
REMOTE_LOGIN_PASSWORDFILE: Onay için ayrı bir şifre dosyasının kullanılıp, kullanılmadığını belirtir. NONE değeri, bunun kullanılmadığını gösterir.
REMOTE_OS_AUTHENT: Veri tabanı için işletim sistem onayına izin verilip, verilmediğini belirtir. FALSE değer, bunun kullanılmadığını gösterir.
REMOTE_OS_ROLES – Her OS_ROLES için, işletim sistem görevlerinin kullanıcı yetkilerini belirlemek için kullanılıp, kullanılmadığını belirtir. FALSE değeri, bunun kullanılmadığını gösterir.
SQL92 güvenlik standardı, kullanıcının WHERE ifadesinin olduğu bir operasyonu gerçekleştirebilmesi için SELECT yetkileri olmasını gerektiren ve UPDATE ve DELETE ifadelerinin doğru işlevini belirleyen bir standarttır. FALSE olarak ayarlandığında, bu, tablo görüntü yetkisi olmayan kullanıcılara şarta bağlı olarak UPDATE ve DELETE işlevlerini kullanarak, değerleri belirlemelerine imkan vermektedir.
UTL_FILE_DIR: Sistem ve tablo yetkilerine bakılmaksızın tüm yetkili veri tabanı kullanıcılarının yazabildikleri ve veri alabildikleri klasörleri tanımlar. Bu, hizmet ya da kayıt dosyalarına erişimi sağlamalıdır.
Uygun veri tabanı güvenlik kontrolleri olmadan uygulamalardaki boşluklardan yararlanılıp, yetkili girişin yapılabileceği ve bilgilerin kötüye kullanılabileceği riskleri arttıran kontrollü bir erişim sağlanabilir. Veri tabanı bağlantılarında kodlu şifrelerin kullanılmadığı durumlarda kullanıcı tanımlayıcıları ve şifreler bilgi ağı üzerinden açık metin şeklinde gönderebilir ve bunlar izinsiz bilgi ağına giren kişiler tarafından ele geçirilebilir.
Kullanıcının veri sözlüğünün bir kısmını iptal etmesi durumunda uygulama bilgilerinin geri getirilmesinde zorluklarla karşılaşılabilir.
İşletim sistem görevlerine ve onayına güvenilmesi durumunda sağlıksız işletim sistem kontrollerinin aldatıcı veri tabanı kontrolleri yaratması oldukça muhtemeldir. Bununla birlikte, kullanıcıların Windows 95 ya da Windows 98 gibi güvenilir olmayan bir işletim sistemini kullanmaları ya da ortama dış erişim sağlanması durumunda ise kullanıcıların bilgi ağı işletim sistemini onaylaması gerekmemektir ve bu durum diğer kullanıcıları üzerinde yanıltıcı olabilmektedir.
Hizmetlerin utl_file_dir parametresi aracılığıyla gerçekleştirilmesi durumunda kasti olmayan erişim düzeylerine imkan sağlanacak ve doğru, gizli ve kullanılabilir bilgi kaybına sebebiyet verebilecektir. Kayıt dosyalarına erişim, kullanılabilirliliği etkileyebileceği gibi gizliliği ya da doğruluğu etkileyen sisteme giriş gibi kullanıcı işlemlerini kaydeden kayıtları içerebilir.
Sistemdeki her bir ayar zorlaştırılmalıdır. Denetim iz kayıtları ve anahtarları (trigger) kullanılarak denetim gerçekleştirilme ayarları seçilir kılınmalı, girişler şifrelendirilmeli, veri sözlüğü O7_DICTIONARY_ACCESSIBILITY’nin FALSE olarak korunmalı ve SQL92_SECURITY parametresi seçilir kılınmalıdır. UTL_FILE_DIR, hizmet ya da kayıt dosyalarına girişi sağlayan bilgileri tanımlamamalıdır.
DBA ler, tüm veritabanı yönetici hakkına sahip hesapları gözden geçirmeli ve uygunluklarını doğrulamalıdır. Bir veritabanı hesabının sadece görevleri etkin ve kısa sürede yerine getirmek için gerçekte gerekli olan haklara sahip olması gerekmektedir. Ayrıca yetkiler yönetilirken amacıyla en düşük seviyeli yetki ilkesi takip edilmelidir. Veritabanı yönetici sistemi ile hedef yetkiler, bunları görevinin bir parçası olarak kullanması gereken kişilerle sınırlandırılmalıdır.
Kullanıcı adı açıklayıcı olmayan “Generic” veritabanı hesapları kullanıcılara verilmemeli ancak belirli tanımlayıcıların yerine kullanılmalıdır.
Ayrıca, “Generic” veri tabanı hesapları sona erdirilmeli ve kapatılmalıdır.
Bu hesapların programlar ya da uygulamalar için gerekli olduğu durumlarda, hesaplardan faydalanılmasını önlemek adına, her bir hesaba yönelik çözülmesi “imkansız” bir şifre belirlenmeli ve her bir hesaba ait yetkiler mümkün olduğunca aza indirgenmelidir.