Infofence – Oracle Veritabanı Güvenlik Sistemi

infoFence Nedir?

infoFence, Helezon Bilgisayar ve Danışmanlık tarafından geliştirilmiş olan, Oracle veri tabanında çalışan bir güvenlik ve denetleme yazılımıdır

KAPSAMI

  • Bağlantı Denetimi
  • DDL/DCL (Veri Tabanı Tanımlama Komutları) Denetimi
  • DML (Veri Tabanı Kayıt İşleme Komutları)/SORGU Denetimi
  • Veri Tabanı ve Uygulama Hata Tespit Sistemi
  • Özel Tablo Erişim Loglama Sistemi Oracle (10g,11g ve12c) veri tabanı içinde bir ürün olarak Veri Tabanı Trigger’ları ve Oracle Database Vault Option ile entegre şekilde çalışır.

Oracle Database Vault Option Entegrasyonu

Oracle Database Vault Veri Tabanı içerisinde çalışan bir güvenlik platformudur. Özellikle sınırsız yetkileri olan DBA’lerin yetkilerini budayarak görevler ayrılığını tesis eder. Oracle’dan lisans gerektiren bir seçenektir. infoFence kendi özgün tasarımı ile Oracle Database Vault’u entegre ederek güvenlik ve yönetiminde büyük fark oluşturmaktadır.

Maksimum Güvenlik

  • infoFence Oracle veri tabanlarında bir güvenlik katmanıdır.
  • Veri tabanına bağlanan tüm kullanıcılar oturum bilgileri ile tanımlanır ve mevcut oracle yetkileri değiştirilmeden yeniden yetkilendirilir.
  • infoFence ile kullanıcıların erişimi, tanım değişiklikleri, sorgulama ve veri değişiklikleri işlemleri kolaylıkla kontrol altına alır.
  • Engelleme yapmadan önce dinleme modu ile analiz ve loglama yapma imkanı verir. Bu sayede üretim veritabanının kesintisiz çalışma devamlılığı sağlanır.
  • infoFence, veri tabanı güvenlik açıklarını ve gizli arka kapıları kapatır.

Bağlantı Denetimi

  • Kullanıcı, veri tabanı şifresini bildiği halde infoFence’ten ayrıca yetkilendirilmediyse veri tabanına bağlanamaz.
  • infoFence’de yetkilendirme yapılmadığı takdirde DBA’ler ve en güçlü kullanıcı SYS (as sysdba) bile veri tabanına bağlanamaz. Bunun için DBA ve SYS’den hiçbir yetki alınmaz.

DDL/DCL Denetimi

  • Veri tabanına ortak kullanıcı-şifre ile direk bağlantı yapılsa bile ALTER, DROP, CREATE, GRANT, REVOKE gibi DDL/DCL komutları infoFence ile verilen farklı yetkiler dahilinde yapılır.
  • En güçlü kullanıcı SYS (as SYSDBA) bile infoFence’den yetki verilmediyse hiçbir Objede DDL/DCL müdahalesi yapamaz.
  • Veri tabanında bütün DDL/DCL hareketleri loglanır, kaynak kodların tarihçesi tutulur.
  • İstendiğinde veri tabanı Schema ve Objeleri DDL/DCL operasyonlarına karşı korunur.

DML/SORGU Denetimi

  • Kritik veriler artık güvendedir. DBA’ler ve Oracle veri tabanının en güçlü kullanıcısı SYS’nin bile kritik verileri görmesi ve değiştirmesi engellenir. Yetkisiz girişimler kayıt altına alınır.
  • Veri tabanında kullanıcıların belirlenen tablolarda INSERT, UPDATE, DELETE/TRUNCATE ve SELECT işlemlerinin engellenmesi sağlanır.
  • Mevcut yapıyı analiz etmek için engellenecek tablo önce DİNLEME modunda tanımı yapılır. Daha sonra GÜVENLİK moduna geçirilerek engelleme yapması sağlanır.

Hata Tespit Dedektörü

  • Oracle veri tabanında oluşan hatalar alertSID.log dosyasına çıkar. Veri tabanında çalışan hem uygulama hem de veri tabanı hataları infoFence ile tespit edilip loglanır.
  • Kim hangi makineden hangi program ile ne hata aldı bilgisi tutulmaktadır.
  • Veri tabanı hataları ile uygulama hataları oluştuğunda, eğer tanımlı ise infoFence’den otomatik alarmların çalışması sağlanır.
  • Alarmlarda çalışmak üzere kullanıcı kendi özel PL/SQL kodunu yazabilir. Örneğin tablo veya view bulunamadı (ORA-00942) hatası olunca otomatik e-posta atılabilir.

Loglamalar

  • Bağlantı girişimleri, DDL, DCL, DML, SORGU erişim operasyonları ile hata tespit durumları loglanır.
  • İsteğe göre kullanıcıların tablo erişimleri koşullu olarak loglanır. Örneğin veri tabanına direk olarak bağlanan kullanıcıların tablo erişimleri loglanıp, Uygulama sunucusundan gelen kullanıcıların da loglanmaması sağlanabilir.
  • Bağlantı girişimi ve DDL/DCL operasyon loglarında checksum kontrolü vardır. Logların şifrelenmiş halleri de ayrıca saklanır.

LDAP OID Desteği

  • Oracle Internet Directory’de (OID) tanımlı bir kullanıcı Enterprise User Security (EUS) kullanarak veri tabanına bağlanabilir. Kullanıcının infoFence’de yetkilendirilmesinde EUS kullanıcı ismi de kullanılır.

Kimlik Yönetimi Desteği

  • Kimlik Yönetim Sistemleri ile entegrasyonu kolaylıkla yapılabilir.
  • Kullanıcı tanımında tanımlayıcı alan ile INFOFENCE_PANEL paketindeki API’ler Kimlik Yönetim Sistemlerinden çalıştırılarak entegrasyonu kolaylıkla sağlanır.

Raporlama

  • infoFence arayüzünden kapsamlı raporlar alınır.

Performans

  • 10000 (on bin) eş zamanlı kullanıcılı ve çok işlem yoğunluklu Oracle RAC sistemlerinde infoFence ile ilgili yapılan performans ölçümleri son derece başarılı olmuş ve hiçbir top query veya bekletme durumu (wait event) olmamıştır.

Detaylı bilgi için:

Oracle DB Konsola Manuel Olarak Database Vault u (/dva) Entegre Etmek

Merhabalar,

Bu yazımda Oracle Database Vault konsol ekranına ( https://hostname:port/dva ) bağlanmak için gerekli olan ayarları manuel olarak yapmaktan bahsedeceğim. Not: Aşağıdaki tüm komutlar Linux / Unix ortamında çalışmaktadır.

Bildiğiniz üzere Oracle Database vault konsolu da aynı Enterprise Manager gibi DB Konsol üzerinde çalışıyor. Buraya Database Vault u entegre etmek için öncelikle DB Konsolu kapatmamız gerekiyor.

  1. $ORACLE_HOME/bin klasörüne gidip, DB Konsol u kapatalım.
    cd $ORACLE_HOME/bin
    ./emctl stop dbconsole
  2. Değişiklik yapmadan önce dosyaların koyasını almamızda yarar var.
    cp $ORACLE_HOME/oc4j/j2ee/OC4J_DBConsole_service_name/config/server.xml $ORACLE_HOME/oc4j/j2ee/OC4J_DBConsole_service_name/config/server.xml.backup
  3. </application-server> elementini aşağıdaki gibi düzenleyin.
    vi $ORACLE_HOME/oc4j/j2ee/OC4J_DBConsole_service_name/config/server.xml
    <application name="dva" path="$ORACLE_HOME/dv/jlib/dva_webapp.ear" parent="default" start="true" />

    Not: $ORACLE_HOME değişkeni yerine tam adresi yazmanız gerekiyor.

  4. Değişiklik yapmadan önce aşağıdaki dosyanın da yedeğini alın.
     cp $ORACLE_HOME/oc4j/j2ee/OC4J_DBConsole_service_name/config/http-web-site.xml $ORACLE_HOME/oc4j/j2ee/OC4J_DBConsole_service_name/config/http-web-site.xml.backup
  5. </web-site> elementini aşağıdaki gibi düzenleyin:
    <web-app application="dva" name="dva_webapp" load-on-startup="true" root="/dva" shared="true"/>
  6. Oracle Database Console yeniden başlatın.
    cd $ORACLE_HOME/bin 
    ./emctl start dbconsole

Oracle Database Vault Administrator konsoluna aşağıdaki URL den ulaşabilirsiniz:

https://hostname:port/dva

Eğer port numarasını hatırlamıyorsanız  ORACLE_HOME/host_sid/sysman/config/emd.properties dosyası içerisinde bulunan REPOSITORY_URL alanından öğrenebilirsiniz. Genellikle port numarası Oracle Enterprise Manager Database Konsol port numarasıyla aynıdır.

Oracle Database Vault u Etkin (Enable) ve Etkisiz (Disable) Hale Getirmek

Merhabalar,

Bu yazımda veritabanımızda kurulu ve aktif olan Oracle Database Vault u etkisiz (Disable) hale getirip daha sonra tekrar etkin (Enable) hale getirmekten bahsedeceğim. Not: Aşağıdaki tüm komutlar Linux ve Unix işletim sistemlerinde geçerlidir…

Öncelikle neden çalışan DB vault u etkisizleştirip tekrar etkin hale getiriyoruz. Biliyorsunuz DB Vault bir güvenlik ürünü olduğu için, bazı durumlarda veritabanı üzerinde herhangi bir işlem yapamamızı sağlıyor. En yetkili kullanıcı (SYS) olsanız bile DB Vault sizi yetkiniz olmadığı işlemleri yapamamanızı sağlıyor. Bu durumlarda DB Vault u etkisiz hale getirip tekrar etkin hale getirmemiz lazım.

Database Vault u Etkisiz Hale Getirmek İçin:

Öncelikle Database Vault un etkin olup olmadığına bakmamız lazım.

SELECT * FROM V$OPTION WHERE PARAMETER = 'Oracle Database Vault';

Eğer Database Vault etkin ise aşağıdaki gibi bir sonuç almamız lazım:

PARAMETER VALUE
----------------------------- -----------------------
Oracle Database Vault TRUE

Database vault un etkin olduğunu öğrendikten sonra sırasıyla aşağıdaki adımları takip ederek Database vault u etkisiz hale getirebiliriz:

  1. Öncelikle veritabanını, listener ı ve Enterprise Manager ı kapatıyoruz.
    sqlplus /as sysdba
    
    SQL> SHUTDOWN IMMEDIATE
    SQL> EXIT
    
    $ emctl stop dbconsole
    $ lsnrctl stop [listener_adi]

    Eğer RAC veritabanı kullanıyorsak aşağıdaki komut ile veritabanımızı kapatmalıyız.

    $ srvctl stop database -d veritabani_adi
  2. Oracle Database Vault u etkisiz hale getirelim.
    cd $ORACLE_HOME/rdbms/lib
    make -f ins_rdbms.mk dv_off
    cd $ORACLE_HOME/bin
    relink all

    Eğer Oracle RAC kullanıyorsak yukarıdaki komutu tüm node larda çalıştırmamız gerekiyor.

  3. Veritabanını, listener ı ve Enterprise Manager ı tekrardan açıyoruz.
    sqlplus / as sysdba
    
    SQL> STARTUP
    SQL> EXIT
    
    $ emctl start dbconsole
    $ lsnrctl start [listener_adi]

    Eğer RAC veritabanı kullanıyorsak aşağıdaki komut ile veritabanımızı açmalıyız.

    $ srvctl start database -d veritabani_adi

Aşağıdaki komutu tekrar çalıştırarak Database Vault un etkin olup olmadığına bakabiliriz:

SELECT * FROM V$OPTION WHERE PARAMETER = 'Oracle Database Vault';

 

Database Vault u Etkin Hale Getirmek İçin:

      1. Öncelikle veritabanını, listener ı ve Enterprise Manager ı kapatıyoruz.
        sqlplus /as sysdba
        
        SQL> SHUTDOWN IMMEDIATE
        SQL> EXIT
        
        $ emctl stop dbconsole
        $ lsnrctl stop [listener_adi]

        Eğer RAC veritabanı kullanıyorsak aşağıdaki komut ile veritabanımızı kapatmalıyız.

        $ srvctl stop database -d veritabani_adi
      2. Oracle Database Vault u etkin hale getirelim.
        cd $ORACLE_HOME/rdbms/lib
        make -f ins_rdbms.mk dv_on lbac_on
        cd $ORACLE_HOME/bin
        relink all

        Not: Eğer RAC veritabanı kullanıyorsak bu komutları tüm node larda çalıştırmamız lazım.

      3. Veritabanını, listener ı ve Enterprise Manager ı tekrardan açıyoruz.
        sqlplus / as sysdba
        
        SQL> STARTUP
        SQL> EXIT
        
        $ emctl start dbconsole
        $ lsnrctl start [listener_name]

        Eğer RAC veritabanı kullanıyorsak aşağıdaki komut ile veritabanımızı açmalıyız.

        $ srvctl start database -d veritabani_adi