Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Oracle Audit Vault & Database Vault

2,855 views

Published on

Published in: Technology
  • Be the first to comment

Oracle Audit Vault & Database Vault

  1. 1. 1
  2. 2. <Insert Picture Here> http://www.youtube.com/user/BilisimSohbetleri https://www.facebook.com/groups/BilisimSohbetleri Oracle Veritabanı Güvenliği Çözümleri – Oracle Audit Vault ve Oracle Database Vault Orhan Eripek, Senior Oracle DBA, Aksigorta http://orhaneripek.com/
  3. 3. Audit (Denetim) Şirketler; • Denetim kapsamına alacakları en önemli ve kritik gördükleri tablolarını belirlemelidir, bu listeyi zaman zaman güncellemelidir, • Veritabanlarında kullanıcı aktivitelerini denetlemeli, loglarını tutmalıdır, logların günlük, aylık, yıllık periyotlarda büyüme hızlarını izlemeli ve buna göre gerekli kaynak (Disk, RAM, vs…) artışına gitmelidir, • Bu logların backup’larını almalıdır, • Anlık kritik işlemler hakkında Alert mailler ile haberdar olmalıdır, • Tüm bu aktiviteleri raporlayabilmelidir. 3
  4. 4. Veritabanı Güvenliği için Kullanılan Uygulamalar • Veritabanı Güvenliğini, dış kaynaklı felaketlerden ve kötü niyetli kullanıcılardan korumak için sağlarız. • Biz bu sunumda kötü niyetli kullanıcılardan veritabanımızı, dolayısıyla tablespace, tablo, index, package, procedure, function, vs… tüm objelerimizi nasıl korumaya alırız, bunlar üzerinde yapılan aktiviteleri (transaction) nasıl izleriz, nasıl loglarız ve nasıl raporlarız, bunları inceleyeceğiz, • Kötü niyetli kullanıcı neler yapabilir? En önemli tablo ve veritabanı objelerini silebilir, erişmesi yasak olan tablolarda işlem yapabilir, başka kullanıcılara gizli yetkiler verebilir, Audit loglarını silebilir, gizli bilgilere erişebilir… 4
  5. 5. En çok bilinen Veritabanı Güvenliği Uygulamaları; 5
  6. 6. Oracle Audit Vault 10.3 Özet olarak açıklamak gerekirse, veritabanı denetim ayarlarını yapabileceğimiz ve kullanıcıların tüm veritabanı aktivitelerini raporlayabileceğimiz uygulamadır. 6
  7. 7. Oracle Database Vault 10.3 Özet olarak açıklamak gerekirse, DBA veya kullanıcıların şirket uygulamalarına doğrudan erişimlerinin OS user ve IP bazında kısıtlanabileceği, veritabanı seviyesinde bazı yetki kurallarını tanımlayarak güvenliği sağlayabileceğimiz uygulamadır. 7
  8. 8. Oracle Audit Vault and Database Firewall 12.1.1 Bu son versiyon ile yapılan temel değişiklikler; Agent’ların çalışma mantığı değiştirildi, artık Collector+Agent değil de sadece Agent yönetiliyor, raporlama ekranları daha kullanışlı ve yeni Database Firewall özelliğinin eklenmesi. 8
  9. 9. Oracle Audit Vault 12.1.1 ile beraber gelen Database Firewall uygulaması network üzerinde yetkisiz SQL trafiğini database’e ulaşmadan önce izler ve bloke eder. fwadmin (Firewall Admin) en yetkili kullanıcı olarak tüm gerekli sistem ayarlarını yapabilir. 9
  10. 10. Oracle Audit Vault Mimarisi 10
  11. 11. Oracle Audit Vault Kaynak veritaban(lar)ındaki aktiviteleri izler (monitoring), loglar (logging), raporlar (reporting) ve uyarır (alerting), AVADMIN yönetir, AVAUDITOR raporlar. ! HR Data CRM Data ERP Data Databases Audit Data Alerts Built-in Reports Custom Reports Policies Auditor 11
  12. 12. AUDIT_TRAIL (Denetim İzi): None: Denetime Kapalı DB: Kayıtlar SYS.AUD$ tablosunda tutulur DB, EXTENDED: Kayıtlar SYS.AUD$ tablosunda SQL bind ve SQL text kolon bilgileri ile birlikte tutulur OS: *.aud uzantılı audit dosyaları Operating sistemde audit_file_dest dizininde tutulur XML: Kayıtlar Operating sistemde XML formatında tutulur XML, EXTENDED: Kayıtlar Operating sistemde XML formatında SQL bind ve SQL text kolon bilgileri ile birlikte tutulur show parameter audit; veya SQL> select name, value from v$parameter where lower(name) like 'audit%'; audit_file_dest string /oracle/db/admin/<instance_name>/adump audit_syslog_level string audit_sys_operations boolean TRUE audit_trail string OS ALTER SYSTEM SET AUDIT_TRAIL=OS SCOPE=SPFILE; 12
  13. 13. Alert Mekanizması İstenmeyen durumların bildirimlerini almak için Alert mekanizması oluşturabiliriz. Belli periyotlarda grafiksel olarak Alert’lerin istatistiğini görebiliriz. 13
  14. 14. 14
  15. 15. 15
  16. 16. Mail’imize raporun linki gönderildiği gibi raporun kendisi de attach edilmiş olarak pdf formatında gönderilebilmektedir, mail hesabımızın kotasının raporlardan dolayı büyümemesi için raporun linkinin gönderilmesi de tercih edilebilir. 16
  17. 17. Otomatik Alert Mail Audit Vault Tablespace Size durumu için Alert Mail: Audit Vault tablespace doluluk oranı belli bir eşik değeri (örnek olması açısından aşağıdaki örnekte %60 limiti verildi, biz kullanımda %90 limitini vereceğiz) aştığında otomatik Alert mailini alabiliriz. 17
  18. 18. Audit Vault Uygulaması için Alert Mail: Audit Vault uygulamalarının data toplayıcı kollektor’ları (Collectors) herhangi bir sebepten dolayı duracak olursa otomatik mail ile Alert durumu öğrenebiliriz. 18
  19. 19. Triger ile Denetleme Çok önemli gördüğümüz 2-3 tablo için trigger yapısıyla ‘old value’ , ‘new value’ değerlerini loglayabiliriz, ‘ORHAN_TRIGGER_DENEME’ isminde oluşturduğum triger’ın demosunu inceleyelim; 1 -- ÖRNEK TABLO YARATILIYOR CREATE TABLE ORHAN_DENEME 2 ( -- AUDIT KAYITLARINI TUTACAK BIR TABLO OLUSTURULUR CREATE TABLE ORHAN_AUDIT_TABLE ( OWNER VARCHAR2(30), OWNER OBJECT_NAME VARCHAR2(128 BYTE), SUBOBJECT_NAME VARCHAR2(30 BYTE), OBJECT_ID NUMBER, DATA_OBJECT_ID NUMBER, OBJECT_TYPE VARCHAR2(19 BYTE), CREATED DATE, LAST_DDL_TIME DATE, TIMESTAMP VARCHAR2(19 BYTE), STATUS VARCHAR2(7 BYTE), TEMPORARY VARCHAR2(1 BYTE), FOR EACH ROW GENERATED VARCHAR2(1 BYTE), DECLARE SECONDARY VARCHAR2(1 BYTE), NAMESPACE NUMBER, EDITION_NAME ) VARCHAR2(30 BYTE), VARCHAR2(30 BYTE) TABLE_NAME VARCHAR2(30), MODIFYING_USER VARCHAR2(30), MODIFY_TIME DATE DEFAULT SYSDATE, COLUMN_NAME varchar2(30), BEFORE_VALUE varchar2(30), AFTER_VALUE varchar2(30)); 3 CREATE OR REPLACE TRIGGER ORHAN_TRIGGER_DENEME AFTER UPDATE ON ORHAN_DENEME v_username varchar2(10); BEGIN SELECT user INTO v_username FROM dual; INSERT INTO ORHAN_AUDIT_TABLE ( OWNER, TABLE_NAME, MODIFYING_USER, MODIFY_TIME, COLUMN_NAME, BEFORE_VALUE, AFTER_VALUE ) VALUES ( 'AV_SRV', 'ORHAN_AUDIT_TABLE', v_username, SYSDATE, 'OBJECT_NAME', :OLD.OBJECT_NAME, :NEW.OBJECT_NAME ); END; 19
  20. 20. 4 -- ORNEK OLMASI ACISINDAN BİRKAÇ KAYIT GIRILIYOR Insert into ORHAN_DENEME (OWNER, OBJECT_NAME, OBJECT_ID, DATA_OBJECT_ID, OBJECT_TYPE, CREATED, LAST_DDL_TIME, TIMESTAMP, STATUS, TEMPORARY, GENERATED, SECONDARY, NAMESPACE) Values ('SYS', 'C_OBJ#', 2, 2, 'CLUSTER', TO_DATE('10/21/2011 03:16:47', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('10/21/2011 03:16:47', 'MM/DD/YYYY HH24:MI:SS'), '2011-10-21:03:16:47', 'VALID', 'N', 'N', 'N', 5); 20
  21. 21. FGA (Fine Grained) Audit –Detaylı Denetim İsteğimiz tabloların isteğimiz kolonlarını seçerek veya istediğimiz kolonlar için filtreleme koyarak denetim sağlayabiliriz, denetim kayıtları sys.fga_log$ view’inde tutulur. Örneğin orhan user’ının orhan_deneme ismindeki tablosunu FGA denetimine alalım ve raporunu Audit Vault konsolundan çekelim; create table orhan_deneme (id number, adi varchar2(20), per_no number); select * from orhan_deneme; BEGIN insert into orhan_deneme (id, adi, per_no) values (:t1,:t2, :t3); DBMS_FGA.ADD_POLICY insert into orhan_deneme (id, adi, per_no) values (12,'ahmet', 76); update orhan_deneme set per_no=38 where id=22; (object_schema => '"ORHAN"', object_name => '«ORHAN_DENEME"', delete orhan_deneme where id=12; policy_name => '«ORHAN_DENEME_IUD"', commit; statement_types => 'DELETE,INSERT,UPDATE', audit_trail => DBMS_FGA.DB, audit_column_opts => DBMS_FGA.any_columns); END; Declare c number; begin for rec in 1..100 loop c:=rec; insert into orhan_deneme values(c,'orhan'||c,rec+10); select POLICY_NAME from dba_audit_policies where OBJECT_NAME=‘ORHAN_DENEME'; end loop; commit; end; 21
  22. 22. Örnek Rapor-1 22
  23. 23. Örnek Rapor-2 23
  24. 24. Örnek Rapor-3 24
  25. 25. 25
  26. 26. Teşekkürler  26

×