Anar Godjaev
http://anargodjaev.wordpress.com/
Verinin Güvenliği / Oracle Database Vault
Kaynak : Oracle® Database Vault A...
Anar Godjaev
http://anargodjaev.wordpress.com/
 Oracle Database Vault mevcut veritabanı ortamını korur. İstenilmeyen prog...
Anar Godjaev
http://anargodjaev.wordpress.com/
ADIM 2-Dbconsole (Enterprise Manager) var ise kapanır
$ emctl stop dbconsol...
Anar Godjaev
http://anargodjaev.wordpress.com/
Oracle Database Vault veritabanı kurulumunda seçimli olarak gelmektedir. Da...
Anar Godjaev
http://anargodjaev.wordpress.com/
Database Vault, Oracle Label Security seçildikten sonra aktif hale gelecekt...
Anar Godjaev
http://anargodjaev.wordpress.com/
Kurulum bittikten sonra, https://hostname(veya host ip):port number/dva her...
Anar Godjaev
http://anargodjaev.wordpress.com/
Database Vault Ana bileşenleri
Realms, veritabanında bir çeşit firewall gib...
Anar Godjaev
http://anargodjaev.wordpress.com/
Örnekleme:
sqlplus u3/u3
SQL> select * from data_owner.t1;
select * from da...
Anar Godjaev
http://anargodjaev.wordpress.com/
1
1
1
1
1
Rule Sets, Rule setler, realms,factors,command rules ve security ...
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));
Ta...
Anar Godjaev
http://anargodjaev.wordpress.com/
F$CLIENT_IP
---------------------------------------------------------------...
Upcoming SlideShare
Loading in …5
×

Database Vault / Verinin Güvenliği

14,961 views

Published on

Published in: Education
  • Be the first to comment

  • Be the first to like this

Database Vault / Verinin Güvenliği

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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$%'
  10. 10. Anar Godjaev http://anargodjaev.wordpress.com/
  11. 11. Anar Godjaev http://anargodjaev.wordpress.com/
  12. 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. 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.

×