ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
Anar Godjaev
http://anargodjaev.wordpress.com/
Verinin Güvenliği / Oracle Database Vault
Kaynak : Oracle® Database Vault Administrator's Guide 11g Release 2 (11.2)
http://docs.oracle.com/cd/E11882_01/server.112/e23090/dvdisabl.htm#BAJJCDGD
Günümüzde verinin kendisi, sürekliliği, bulunduğu yer, saklanması ne kadar önemli ise, verinin güvenliği de o kadar
önemlidir. Buna paralel olarak, hepimizin duyduğu/okuduğu siber hırsızlıklar, verilere ulaşıp, veriyi değiştirme veya
kaybetme/silme gibi olaylar yaşandıkça, veritabanı güvenliği de önem kazanmaktadır.
Verinin güvenliği için alınması gereken önlemlerin, donanım, ağ, operasyonel sistem seviyelerinde olduğu gibi,
veritabanı seviyesinde de ele alınması gerekir. Genelde firmalar bir firewall ürünü alarak güvenlikle ilgili sorunlarını
çözdüklerini düşünürler. Ancak sadece firewall ürünlerinin kullanımıyla, verinin korunamadığı bilinen bir gerçektir.
Firewall ürünleri ile dışardan yapılacak saldırılara karşı önlemler alınabiliyorken, içeriden yapılan saldırılara karşı
pek önlem alınmadığı araştırmalarda ortaya çıkmıştır. Özellikle veritabanının çalıştığı sunucu üzerinde verinin
korunması ile ilgili bir çalışma yapılmamaktadır. DBA yetkisine sahip bir kullanıcının, veritabanında her türlü
yetkiye sahip olduğu ve hatta farklı bilgisayarlardan bağlanıp aynı işlemleri yapabileceği düşünüldüğünde,
oluşabilecek güvenlik açıkları düşünülmek zorundadır. Bir database admin’in veritabanında nasıl her veriye ulaşıp
görmesi sakıncalı ise, aynı şekilde farklı bilgisayarlardan bağlanıp aynı işleri yapması da sakıncalıdır ve hatta bir
güvenlik açığıdır.
Oracle Veritabanı güvenliği çözümlerinden biri olan Oracle Database Vault, yukarda bahsedilen sorunları çözmede
yardımcı olacak bir uygulama olarak önerilebilir.
Oracle Database Vault Nedir
Oracle Database Vault, verinizin erişim güvenliği konusunda dinamik ve esnek erişim kontrollerini hayata
geçirmenizi, raporlamanızı sağlayan, Oracle Enterprise sürümleriyle birlikte gelen ve veritabanı kurulumunda
opsiyonel olarak yer alan bir üründür. Veritabanı kernel seviyesinde çalışan bu özellik, PLSQL kullanılarak
uygulanan güvenlik uygulamalarından çok daha etkindir. Her bir veritabanı için ihtiyaç duyulacak güvenlik
seviyesinin farklı olabildiği durumlarda da kullanılan Database Vault, single-instance Oracle veritabanınıza
uygulanabildiği gibi, RAC mimarisindeki yapılarda da başarılı bir şekilde kullanılmaktadır.
 Yaptıkları iş gereği veritabanınıza erişmesine izin vermek durumunda olduğunuz yetkili kullancıların,
çalışanların, müşterilerin, tedarikçilerin ve iş-ortaklarının, sadece izin verdiğiniz verilere eriştiğinden emin
olmanızı sağlar. Bir veritabanı yöneticisinin dahi kritik verilerinize (kredi kartı, müşteri özel bilgileri, hesap
detayları, personel maaş bilgileri, hesaplamalar, harcamalar, görüşme detayları gibi) erişimini engelleyebilir.
 Veritabanınızın bilginiz haricinde izinsiz olarak değiştirilmesini engeller.
 Gerçek zamanlı olarak anlık kontroller eklemenizi, değiştirmenizi ve takibini yapmanızı sağlar.
 Oracle ailesinin bir ürünü olan "Database Vault" kurulumu, yapılandırması ve yönetimi oldukça basit bir ürün
olmakla birlikte sistemin performansına çok düşük etki ile kullanılabilmektedir.
 Database Vault Oracle Veritabanının içerisinde gömülü olarak gelen ve basit bir adımla kurulabilen bu ürün
olup realm, command rule, factor,rule setlerle ve raporlama kısımları ile hizmet vermektedir.
 Oracle Database Vault, uygulamaları ve verileri korumak için çok güçlü güvenli bir ortam sağlar.
 Oracle Database ile yetkili kullanıcılar kısıtlanabilir(SELECT ANY TABLE). En yetkili role sahip DBA
kullanıcıların hakları bile kısıtlanabilir.
 Veritabanındaki objeler üzerinde(alter,drop,truncate v.b.) veya veri içeriğinde yapılacak
değişiklikler(insert,delete,update v.b), nasıl , ne zaman, ne ile yapılacakları belirlenip kısıtlanabilir.
Anar Godjaev
http://anargodjaev.wordpress.com/
 Oracle Database Vault mevcut veritabanı ortamını korur. İstenilmeyen programların bağlanması
engellenebilir. Veritabanını istenilmeyen ataklardan korur.
 Veritabanı Görev ayrılığı prensibi getirir.
DB Vault Kurulumu İçin Ön Uyarılar
Uyarı 1 : /var/opt/oracle/oratab altındaki ilgili satır düzgün $ORACLE_HOME olmalıdır. Aksi takdirde dbca
çalıştırıldığında Configure Option butonu pasif çıkacaktır.
Uyarı 2 : Default profile deki PASSWORD_VERIFY_FUNCTION NULL olmalıdır. Aksi takdirde ORA-29504
hatası alınır. Çözüm Doc ID 1509963.1
Uyarı 3 : DBCA ile konfigurasyonun %85 civarlarında ORA-29504 hatası alınabilir. Bu hata 11g de ignore
edilebilir. 12c de düzeltilmiştir. Çözüm için Doc ID 1509963.1)
Db Vault Option ın Oracle Binary için Kontrol Edilmesi
Kontrol etmek için sqlplus a sysdba ile gireriz.
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
Yukarıda Vault la ilgili bir yazı gelmediğini görürüz. Eğer kurulu olsaydı ek olarak With the Oracle Label Security,
Oracle Database Vault options yazısı görülecekti.
Ek olarak Kontrol için aşağıdaki view dan yararlanırız.
SELECT * FROM V$OPTION WHERE PARAMETER = 'Oracle Database Vault';
Oracle Database Vault ----- FALSE ( yani disabled )
Örnek
Db Vault Option ın Oracle Binary için Enable Edilmesi
ADIM 1-İlgili Database kapanır
SQL> SHUTDOWN IMMEDIATE
Anar Godjaev
http://anargodjaev.wordpress.com/
ADIM 2-Dbconsole (Enterprise Manager) var ise kapanır
$ emctl stop dbconsole
ADIM 3- İlgili Listener kapanır
lsnrctl stop listener
ADIM 4- DB Vault Option Oracle Binary için enable edilir
cd $ORACLE_HOME/rdbms/lib
make -f ins_rdbms.mk dv_on lbac_on ioracle
GENEL NOT : Oracle binary de option enable ederken Make –f yerine chopt komutu da kullanılabilir. Kullanımı
aşağıdaki Linktedir.
http://docs.oracle.com/cd/E11882_01/install.112/e25666/postinst.htm#BABJIAJB
Örnek :
chopt enable lbac
Writing to /u01/app/oracle/product/11.2.0/dbhome_2/install/enable_lbac.log...
/usr/bin/make -f /u01/app/oracle/product/11.2.0/dbhome_2/rdbms/lib/ins_rdbms.mk lbac_on
ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_2
/usr/bin/make -f /u01/app/oracle/product/11.2.0/dbhome_2/rdbms/lib/ins_rdbms.mk ioracle
ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_2
chopt enable dv
Writing to /u01/app/oracle/product/11.2.0/dbhome_2/install/enable_dv.log...
/usr/bin/make -f /u01/app/oracle/product/11.2.0/dbhome_2/rdbms/lib/ins_rdbms.mk dv_on
ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_2
/usr/bin/make -f /u01/app/oracle/product/11.2.0/dbhome_2/rdbms/lib/ins_rdbms.mk ioracle
ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_2
ADIM 5-Database ve Listener açılarak DB Vault un enable olup olmadığı kontrol edilir.
Sqlplus> startup;
SELECT * FROM V$OPTION WHERE PARAMETER = 'Oracle Database Vault'; Oracle Database
Vault -- TRUE ( yani enabled )
Ek olarak sqlplus a girildiğinde With the Oracle Label Security, Oracle Database Vault options geldiği görülür
Örnek
Anar Godjaev
http://anargodjaev.wordpress.com/
Oracle Database Vault veritabanı kurulumunda seçimli olarak gelmektedir. Database vault, Oracle kurulurken
seçilebileceği gibi, Oracle instance kurulduktan sonra da aktif hale getirilebilir. Oracle instance kurulduktan sonra
aktif hale getirilmesi için dbca komutu ile Database Configuration Assistant çalıştırılması gerekir.
Configuration Database Option seçeneği işaretlenip next butonuna basılır.
Sunucu üzerinde birden fazla Oracle instance varsa, Database Vault aktif edilecek Oracle Instance seçilir.
Anar Godjaev
http://anargodjaev.wordpress.com/
Database Vault, Oracle Label Security seçildikten sonra aktif hale gelecektir.
Database Vault Owner ve opsiyonel olarak Account Manager(Girilmesi önerilir) için kullanıcı / parola tanımı
yapılır.
Anar Godjaev
http://anargodjaev.wordpress.com/
Kurulum bittikten sonra, https://hostname(veya host ip):port number/dva herhangi bir browser’a yazarak Oracle
Database Vault ekranına girilir.
Datatabase Vault Görev Ayrılığı
Oracle Database Vault görev ayrımları özelliği, veritabanı üzerinde güvenlik yönetimi, hesap yönetimi ve veritabanı
yönetimi olarak üç farklı sorumluluk ortaya çıkarır.
Güvenlik yöneticisi(Security Administration), Güvenlikten sorumlu kişi aynı zamanda Oracle Database Vault'un da
sahibidir. Veritabanındaki bütün güvenlik operasyonundan sorumludur. Realms, komut kuralları ve faktörleri
yönetebilir ve Database Vault raporlarını çalıştırabilir fakat uygulama verilerine erişme hakkı yoktur.
Hesap yöneticisi(Account Management), kullanıcı hesaplarını oluşturma, silme ve değiştirme yetkilerine sahiptir.
Veritabanı yöneticisi(Database Administration) ise, yedekleme/iyileştirme, yama uygulama ve performans yönetimi
gibi dba görevlerini yürütür.
Anar Godjaev
http://anargodjaev.wordpress.com/
Database Vault Ana bileÅŸenleri
Realms, veritabanında bir çeşit firewall gibi çalışır ve dba gibi yüksek erişim hakkına sahip kullanıcıların uygulama
verilerine erişimlerini kontrol altına alır. Realm’ler kullanılarak tüm bir uygulama ya da uygulama içerisinde belirli
tablo grupları koruma altına alınabilir. Örneğin; uygulama içerisinde bir şemanın bir realm ile koruma altına
alınması durumunda, DBA dahil herhangi bir kullanıcı kendisine özel yetki verilmeden bu şemadaki herhangi bir
tabloyu sorgulayamaz. Bu sayede DBA'ler bile uygulama verisindeki hassas verilere eriÅŸememiÅŸ olurlar.
Örnek, DATA_OWNER scheması reals ile koruma altına alınacak. Sadece bu schema’a SYS,SYSTEM ve U1
kullanıcıları özel yetkiye sahiptir.
Anar Godjaev
http://anargodjaev.wordpress.com/
Örnekleme:
sqlplus u3/u3
SQL> select * from data_owner.t1;
select * from data_owner.t1
*
ERROR at line 1:
ORA-01031: insufficient privileges
[oracle@ksoracletest1 ~]$ sqlplus u1/u1
SQL*Plus: Release 11.2.0.2.0 Production on Tue Jul 10 16:24:18 2012
Copyright (c) 1982, 2010, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP, Data Mining,
Oracle Database Vault and Real Application Testing options
SQL> select * from data_owner.t1;
ID
----------
Anar Godjaev
http://anargodjaev.wordpress.com/
1
1
1
1
1
Rule Sets, Rule setler, realms,factors,command rules ve security application roller tarafından kullanılır. Rule setlere
birden fazla rule eklenebildiği gibi var olan rule’ler de eklenebilir.
Bir rule set yaratılırken, rule set’in adı, içeriği, statusu(enable,disable) ve evaluation option kısımları girilmelidir.
Rule setler’deki evaluation option kısmında All true ve Any true seçenekleri bulunur. All true opsiyonu seçildiğinde,
kullanıcının veriye erişebilmesi için, bu rule set’teki tüm kuralların true değerini sağlamış olması gereklidir. Any
true opsiyonu seçildiğinde ise var olan rulelar’dan en az birinin true olması yeterlidir.
Factors, Çevresel parametrelerin (IP adresi, kimlik doğrulama metodu, makine ismi, bağlantı adı vb.)
tanımlanmasını sağlar. Bu sayede güvenli erişim yolundan, kimlerin, ne zaman, nasıl ve nereden geçtiğinin
algılanması sağlanır.
Command Rules, veritabanı komutlarının çalıştırılmasını kontrol eden güvenlik kurallarıdır.
Örnek, Rule sets, Factors ve Command Rules beraber kullanılarak yapılan bir örnek çalışma.
195.87.212.68 ip no’lu ‘Highly Secured Internal Network’ domain’den bağlanan DBSMAPS kullanıcısı hafta içi
hegün saat 09:00 – 19:00 arasından DBSMAPS schemasından table truncate yapabilsin. Bu kural dışındaki
kullanıcılar truncate yapamasın.
Yapılacaklar;
1. Kullanıcı için bir factor tanımlanır. Factor tanımlamalarında bağlanılacak session’in ip no ve domain adı belirtilir.
2. Bir rule set tanımlanır. Evaluation Option all true seçeneği işaretlenir.
3. Hafta içi günleri, kullanıcı adı ve hafta içi çalışma saatleri için rule yaratılıp , rule set’e eklenir
4. Command Rule ile truncate table komutu, bu örnek için yaratılan rule set ile ilişkilendirilir.
Not:SELECT OBJECT_NAME, OBJECT_TYPE FROM DBA_OBJECTS WHERE OWNER='DVF' AND
OBJECT_NAME LIKE 'F$%'
Anar Godjaev
http://anargodjaev.wordpress.com/
Anar Godjaev
http://anargodjaev.wordpress.com/
Anar Godjaev
http://anargodjaev.wordpress.com/
Örnekleme:
sqlplus dbsmaps/dbsmaps
SQL> create table test (aaa char(1));
Table created.
SQL> truncate table test;
truncate table test
*
ERROR at line 1:
ORA-47400: Command Rule violation for TRUNCATE TABLE on DBSMAPS.TEST
SQL> select DVF.F$CLIENT_IP from dual;
F$CLIENT_IP
--------------------------------------------------------------------------------
SQL> select DVF.F$DOMAIN from dual;
F$DOMAIN
--------------------------------------------------------------------------------
Not Secured Network
SQL> exit
oracle@ksoracletest1 ~]$ sqlplus dbsmaps/dbsmaps@ORCL
SQL> truncate table test;
Table truncated.
SQL> select DVF.F$CLIENT_IP from dual;
F$CLIENT_IP
--------------------------------------------------------------------------------
195.87.212.68
SQL> select DVF.F$DOMAIN from dual;
F$DOMAIN
--------------------------------------------------------------------------------
Highly Secured Internal Network
SQL>
sqlplus ANARDB/ksxxxx11@ORCL
SQL> select DVF.F$CLIENT_IP from dual;
Anar Godjaev
http://anargodjaev.wordpress.com/
F$CLIENT_IP
--------------------------------------------------------------------------------
195.87.212.68
SQL> select DVF.F$DOMAIN from dual;
F$DOMAIN
--------------------------------------------------------------------------------
Highly Secured Internal Network
SQL> truncate table test;
truncate table test
*
ERROR at line 1:
ORA-47400: Command Rule violation for TRUNCATE TABLE on ANARDB.TEST
SQL>
Oracle Database Vault Raporlar
Oracle Database Vault ile birlikte kurulu olarak gelen birçok rapor bulunmaktadır. Bu raporlar Realm'lere olan
yetkisiz erişim denemelerini içermektedir. Örneğin bir DBA'in yetkisi olduğu halde erişmemesi gereken bir yere
erişmeye çalışması (maaş bilgisi gibi). Aynı şekilde Command Rules, factors, rule sets’ler tarafından engellenen
kullanıcılar ve yaptıkları işlemler raporlarda görülebilir.

More Related Content

Database Vault / Verinin Güvenliği

  • 1. Anar Godjaev http://anargodjaev.wordpress.com/ Verinin GüvenliÄŸi / Oracle Database Vault Kaynak : Oracle® Database Vault Administrator's Guide 11g Release 2 (11.2) http://docs.oracle.com/cd/E11882_01/server.112/e23090/dvdisabl.htm#BAJJCDGD Günümüzde verinin kendisi, sürekliliÄŸi, bulunduÄŸu yer, saklanması ne kadar önemli ise, verinin güvenliÄŸi de o kadar önemlidir. Buna paralel olarak, hepimizin duyduÄŸu/okuduÄŸu siber hırsızlıklar, verilere ulaşıp, veriyi deÄŸiÅŸtirme veya kaybetme/silme gibi olaylar yaÅŸandıkça, veritabanı güvenliÄŸi de önem kazanmaktadır. Verinin güvenliÄŸi için alınması gereken önlemlerin, donanım, aÄŸ, operasyonel sistem seviyelerinde olduÄŸu gibi, veritabanı seviyesinde de ele alınması gerekir. Genelde firmalar bir firewall ürünü alarak güvenlikle ilgili sorunlarını çözdüklerini düşünürler. Ancak sadece firewall ürünlerinin kullanımıyla, verinin korunamadığı bilinen bir gerçektir. Firewall ürünleri ile dışardan yapılacak saldırılara karşı önlemler alınabiliyorken, içeriden yapılan saldırılara karşı pek önlem alınmadığı araÅŸtırmalarda ortaya çıkmıştır. Özellikle veritabanının çalıştığı sunucu üzerinde verinin korunması ile ilgili bir çalışma yapılmamaktadır. DBA yetkisine sahip bir kullanıcının, veritabanında her türlü yetkiye sahip olduÄŸu ve hatta farklı bilgisayarlardan baÄŸlanıp aynı iÅŸlemleri yapabileceÄŸi düşünüldüğünde, oluÅŸabilecek güvenlik açıkları düşünülmek zorundadır. Bir database admin’in veritabanında nasıl her veriye ulaşıp görmesi sakıncalı ise, aynı ÅŸekilde farklı bilgisayarlardan baÄŸlanıp aynı iÅŸleri yapması da sakıncalıdır ve hatta bir güvenlik açığıdır. Oracle Veritabanı güvenliÄŸi çözümlerinden biri olan Oracle Database Vault, yukarda bahsedilen sorunları çözmede yardımcı olacak bir uygulama olarak önerilebilir. Oracle Database Vault Nedir Oracle Database Vault, verinizin eriÅŸim güvenliÄŸi konusunda dinamik ve esnek eriÅŸim kontrollerini hayata geçirmenizi, raporlamanızı saÄŸlayan, Oracle Enterprise sürümleriyle birlikte gelen ve veritabanı kurulumunda opsiyonel olarak yer alan bir üründür. Veritabanı kernel seviyesinde çalışan bu özellik, PLSQL kullanılarak uygulanan güvenlik uygulamalarından çok daha etkindir. Her bir veritabanı için ihtiyaç duyulacak güvenlik seviyesinin farklı olabildiÄŸi durumlarda da kullanılan Database Vault, single-instance Oracle veritabanınıza uygulanabildiÄŸi gibi, RAC mimarisindeki yapılarda da baÅŸarılı bir ÅŸekilde kullanılmaktadır. ï‚· Yaptıkları iÅŸ gereÄŸi veritabanınıza eriÅŸmesine izin vermek durumunda olduÄŸunuz yetkili kullancıların, çalışanların, müşterilerin, tedarikçilerin ve iÅŸ-ortaklarının, sadece izin verdiÄŸiniz verilere eriÅŸtiÄŸinden emin olmanızı saÄŸlar. Bir veritabanı yöneticisinin dahi kritik verilerinize (kredi kartı, müşteri özel bilgileri, hesap detayları, personel maaÅŸ bilgileri, hesaplamalar, harcamalar, görüşme detayları gibi) eriÅŸimini engelleyebilir. ï‚· Veritabanınızın bilginiz haricinde izinsiz olarak deÄŸiÅŸtirilmesini engeller. ï‚· Gerçek zamanlı olarak anlık kontroller eklemenizi, deÄŸiÅŸtirmenizi ve takibini yapmanızı saÄŸlar. ï‚· Oracle ailesinin bir ürünü olan "Database Vault" kurulumu, yapılandırması ve yönetimi oldukça basit bir ürün olmakla birlikte sistemin performansına çok düşük etki ile kullanılabilmektedir. ï‚· Database Vault Oracle Veritabanının içerisinde gömülü olarak gelen ve basit bir adımla kurulabilen bu ürün olup realm, command rule, factor,rule setlerle ve raporlama kısımları ile hizmet vermektedir. ï‚· Oracle Database Vault, uygulamaları ve verileri korumak için çok güçlü güvenli bir ortam saÄŸlar. ï‚· Oracle Database ile yetkili kullanıcılar kısıtlanabilir(SELECT ANY TABLE). En yetkili role sahip DBA kullanıcıların hakları bile kısıtlanabilir. ï‚· Veritabanındaki objeler üzerinde(alter,drop,truncate v.b.) veya veri içeriÄŸinde yapılacak deÄŸiÅŸiklikler(insert,delete,update v.b), nasıl , ne zaman, ne ile yapılacakları belirlenip kısıtlanabilir.
  • 2. Anar Godjaev http://anargodjaev.wordpress.com/ ï‚· Oracle Database Vault mevcut veritabanı ortamını korur. Ä°stenilmeyen programların baÄŸlanması engellenebilir. Veritabanını istenilmeyen ataklardan korur. ï‚· Veritabanı Görev ayrılığı prensibi getirir. DB Vault Kurulumu İçin Ön Uyarılar Uyarı 1 : /var/opt/oracle/oratab altındaki ilgili satır düzgün $ORACLE_HOME olmalıdır. Aksi takdirde dbca çalıştırıldığında Configure Option butonu pasif çıkacaktır. Uyarı 2 : Default profile deki PASSWORD_VERIFY_FUNCTION NULL olmalıdır. Aksi takdirde ORA-29504 hatası alınır. Çözüm Doc ID 1509963.1 Uyarı 3 : DBCA ile konfigurasyonun %85 civarlarında ORA-29504 hatası alınabilir. Bu hata 11g de ignore edilebilir. 12c de düzeltilmiÅŸtir. Çözüm için Doc ID 1509963.1) Db Vault Option ın Oracle Binary için Kontrol Edilmesi Kontrol etmek için sqlplus a sysdba ile gireriz. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production Yukarıda Vault la ilgili bir yazı gelmediÄŸini görürüz. EÄŸer kurulu olsaydı ek olarak With the Oracle Label Security, Oracle Database Vault options yazısı görülecekti. Ek olarak Kontrol için aÅŸağıdaki view dan yararlanırız. SELECT * FROM V$OPTION WHERE PARAMETER = 'Oracle Database Vault'; Oracle Database Vault ----- FALSE ( yani disabled ) Örnek Db Vault Option ın Oracle Binary için Enable Edilmesi ADIM 1-Ä°lgili Database kapanır SQL> SHUTDOWN IMMEDIATE
  • 3. Anar Godjaev http://anargodjaev.wordpress.com/ ADIM 2-Dbconsole (Enterprise Manager) var ise kapanır $ emctl stop dbconsole ADIM 3- Ä°lgili Listener kapanır lsnrctl stop listener ADIM 4- DB Vault Option Oracle Binary için enable edilir cd $ORACLE_HOME/rdbms/lib make -f ins_rdbms.mk dv_on lbac_on ioracle GENEL NOT : Oracle binary de option enable ederken Make –f yerine chopt komutu da kullanılabilir. Kullanımı aÅŸağıdaki Linktedir. http://docs.oracle.com/cd/E11882_01/install.112/e25666/postinst.htm#BABJIAJB Örnek : chopt enable lbac Writing to /u01/app/oracle/product/11.2.0/dbhome_2/install/enable_lbac.log... /usr/bin/make -f /u01/app/oracle/product/11.2.0/dbhome_2/rdbms/lib/ins_rdbms.mk lbac_on ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_2 /usr/bin/make -f /u01/app/oracle/product/11.2.0/dbhome_2/rdbms/lib/ins_rdbms.mk ioracle ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_2 chopt enable dv Writing to /u01/app/oracle/product/11.2.0/dbhome_2/install/enable_dv.log... /usr/bin/make -f /u01/app/oracle/product/11.2.0/dbhome_2/rdbms/lib/ins_rdbms.mk dv_on ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_2 /usr/bin/make -f /u01/app/oracle/product/11.2.0/dbhome_2/rdbms/lib/ins_rdbms.mk ioracle ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_2 ADIM 5-Database ve Listener açılarak DB Vault un enable olup olmadığı kontrol edilir. Sqlplus> startup; SELECT * FROM V$OPTION WHERE PARAMETER = 'Oracle Database Vault'; Oracle Database Vault -- TRUE ( yani enabled ) Ek olarak sqlplus a girildiÄŸinde With the Oracle Label Security, Oracle Database Vault options geldiÄŸi görülür Örnek
  • 4. Anar Godjaev http://anargodjaev.wordpress.com/ Oracle Database Vault veritabanı kurulumunda seçimli olarak gelmektedir. Database vault, Oracle kurulurken seçilebileceÄŸi gibi, Oracle instance kurulduktan sonra da aktif hale getirilebilir. Oracle instance kurulduktan sonra aktif hale getirilmesi için dbca komutu ile Database Configuration Assistant çalıştırılması gerekir. Configuration Database Option seçeneÄŸi iÅŸaretlenip next butonuna basılır. Sunucu üzerinde birden fazla Oracle instance varsa, Database Vault aktif edilecek Oracle Instance seçilir.
  • 5. Anar Godjaev http://anargodjaev.wordpress.com/ Database Vault, Oracle Label Security seçildikten sonra aktif hale gelecektir. Database Vault Owner ve opsiyonel olarak Account Manager(Girilmesi önerilir) için kullanıcı / parola tanımı yapılır.
  • 6. Anar Godjaev http://anargodjaev.wordpress.com/ Kurulum bittikten sonra, https://hostname(veya host ip):port number/dva herhangi bir browser’a yazarak Oracle Database Vault ekranına girilir. Datatabase Vault Görev Ayrılığı Oracle Database Vault görev ayrımları özelliÄŸi, veritabanı üzerinde güvenlik yönetimi, hesap yönetimi ve veritabanı yönetimi olarak üç farklı sorumluluk ortaya çıkarır. Güvenlik yöneticisi(Security Administration), Güvenlikten sorumlu kiÅŸi aynı zamanda Oracle Database Vault'un da sahibidir. Veritabanındaki bütün güvenlik operasyonundan sorumludur. Realms, komut kuralları ve faktörleri yönetebilir ve Database Vault raporlarını çalıştırabilir fakat uygulama verilerine eriÅŸme hakkı yoktur. Hesap yöneticisi(Account Management), kullanıcı hesaplarını oluÅŸturma, silme ve deÄŸiÅŸtirme yetkilerine sahiptir. Veritabanı yöneticisi(Database Administration) ise, yedekleme/iyileÅŸtirme, yama uygulama ve performans yönetimi gibi dba görevlerini yürütür.
  • 7. Anar Godjaev http://anargodjaev.wordpress.com/ Database Vault Ana bileÅŸenleri Realms, veritabanında bir çeÅŸit firewall gibi çalışır ve dba gibi yüksek eriÅŸim hakkına sahip kullanıcıların uygulama verilerine eriÅŸimlerini kontrol altına alır. Realm’ler kullanılarak tüm bir uygulama ya da uygulama içerisinde belirli tablo grupları koruma altına alınabilir. ÖrneÄŸin; uygulama içerisinde bir ÅŸemanın bir realm ile koruma altına alınması durumunda, DBA dahil herhangi bir kullanıcı kendisine özel yetki verilmeden bu ÅŸemadaki herhangi bir tabloyu sorgulayamaz. Bu sayede DBA'ler bile uygulama verisindeki hassas verilere eriÅŸememiÅŸ olurlar. Örnek, DATA_OWNER scheması reals ile koruma altına alınacak. Sadece bu schema’a SYS,SYSTEM ve U1 kullanıcıları özel yetkiye sahiptir.
  • 8. Anar Godjaev http://anargodjaev.wordpress.com/ Örnekleme: sqlplus u3/u3 SQL> select * from data_owner.t1; select * from data_owner.t1 * ERROR at line 1: ORA-01031: insufficient privileges [oracle@ksoracletest1 ~]$ sqlplus u1/u1 SQL*Plus: Release 11.2.0.2.0 Production on Tue Jul 10 16:24:18 2012 Copyright (c) 1982, 2010, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production With the Partitioning, Oracle Label Security, OLAP, Data Mining, Oracle Database Vault and Real Application Testing options SQL> select * from data_owner.t1; ID ----------
  • 9. Anar Godjaev http://anargodjaev.wordpress.com/ 1 1 1 1 1 Rule Sets, Rule setler, realms,factors,command rules ve security application roller tarafından kullanılır. Rule setlere birden fazla rule eklenebildiÄŸi gibi var olan rule’ler de eklenebilir. Bir rule set yaratılırken, rule set’in adı, içeriÄŸi, statusu(enable,disable) ve evaluation option kısımları girilmelidir. Rule setler’deki evaluation option kısmında All true ve Any true seçenekleri bulunur. All true opsiyonu seçildiÄŸinde, kullanıcının veriye eriÅŸebilmesi için, bu rule set’teki tüm kuralların true deÄŸerini saÄŸlamış olması gereklidir. Any true opsiyonu seçildiÄŸinde ise var olan rulelar’dan en az birinin true olması yeterlidir. Factors, Çevresel parametrelerin (IP adresi, kimlik doÄŸrulama metodu, makine ismi, baÄŸlantı adı vb.) tanımlanmasını saÄŸlar. Bu sayede güvenli eriÅŸim yolundan, kimlerin, ne zaman, nasıl ve nereden geçtiÄŸinin algılanması saÄŸlanır. Command Rules, veritabanı komutlarının çalıştırılmasını kontrol eden güvenlik kurallarıdır. Örnek, Rule sets, Factors ve Command Rules beraber kullanılarak yapılan bir örnek çalışma. 195.87.212.68 ip no’lu ‘Highly Secured Internal Network’ domain’den baÄŸlanan DBSMAPS kullanıcısı hafta içi hegün saat 09:00 – 19:00 arasından DBSMAPS schemasından table truncate yapabilsin. Bu kural dışındaki kullanıcılar truncate yapamasın. Yapılacaklar; 1. Kullanıcı için bir factor tanımlanır. Factor tanımlamalarında baÄŸlanılacak session’in ip no ve domain adı belirtilir. 2. Bir rule set tanımlanır. Evaluation Option all true seçeneÄŸi iÅŸaretlenir. 3. Hafta içi günleri, kullanıcı adı ve hafta içi çalışma saatleri için rule yaratılıp , rule set’e eklenir 4. Command Rule ile truncate table komutu, bu örnek için yaratılan rule set ile iliÅŸkilendirilir. Not:SELECT OBJECT_NAME, OBJECT_TYPE FROM DBA_OBJECTS WHERE OWNER='DVF' AND OBJECT_NAME LIKE 'F$%'
  • 12. Anar Godjaev http://anargodjaev.wordpress.com/ Örnekleme: sqlplus dbsmaps/dbsmaps SQL> create table test (aaa char(1)); Table created. SQL> truncate table test; truncate table test * ERROR at line 1: ORA-47400: Command Rule violation for TRUNCATE TABLE on DBSMAPS.TEST SQL> select DVF.F$CLIENT_IP from dual; F$CLIENT_IP -------------------------------------------------------------------------------- SQL> select DVF.F$DOMAIN from dual; F$DOMAIN -------------------------------------------------------------------------------- Not Secured Network SQL> exit oracle@ksoracletest1 ~]$ sqlplus dbsmaps/dbsmaps@ORCL SQL> truncate table test; Table truncated. SQL> select DVF.F$CLIENT_IP from dual; F$CLIENT_IP -------------------------------------------------------------------------------- 195.87.212.68 SQL> select DVF.F$DOMAIN from dual; F$DOMAIN -------------------------------------------------------------------------------- Highly Secured Internal Network SQL> sqlplus ANARDB/ksxxxx11@ORCL SQL> select DVF.F$CLIENT_IP from dual;
  • 13. Anar Godjaev http://anargodjaev.wordpress.com/ F$CLIENT_IP -------------------------------------------------------------------------------- 195.87.212.68 SQL> select DVF.F$DOMAIN from dual; F$DOMAIN -------------------------------------------------------------------------------- Highly Secured Internal Network SQL> truncate table test; truncate table test * ERROR at line 1: ORA-47400: Command Rule violation for TRUNCATE TABLE on ANARDB.TEST SQL> Oracle Database Vault Raporlar Oracle Database Vault ile birlikte kurulu olarak gelen birçok rapor bulunmaktadır. Bu raporlar Realm'lere olan yetkisiz eriÅŸim denemelerini içermektedir. ÖrneÄŸin bir DBA'in yetkisi olduÄŸu halde eriÅŸmemesi gereken bir yere eriÅŸmeye çalışması (maaÅŸ bilgisi gibi). Aynı ÅŸekilde Command Rules, factors, rule sets’ler tarafından engellenen kullanıcılar ve yaptıkları iÅŸlemler raporlarda görülebilir.