İçindekiler


Database Security Assessment tool / Veritabanı Güvenliği Değerlendirme Aracı (DBSAT), yaygın veritabanı güvenliği sorunlarını kontrol etmenize yardımcı olacak bir yardımcı program olarak Oracle tarafından sağlanmaktadır.
DBSAT ile, kısa vadeli güvenlik risklerini ortadan kaldırmak ve kapsamlı bir güvenlik stratejisi uygulamak için gerekli bulguları raporlayabilirsiniz. Oracle support’dan “Doc ID 2138254.1” dökümanı ile indirebiliriz.
DBSAT aracı üç modül içerir:

  • Collector : Erişim sağlanan sistemden , sql cümlecikleri ve işletim sistemi komutlarının çalıştırılması suretiyle veri toplar. Bunu öncelikle data dictionary viewlerı sorgulayarak yapar. Toplanan veri , DBSAT Reporter tarafından analiz aşamasında kullanılmak üzere bir JSON dosyaya yazılır.
  • Reporter  : Toplanan verileri analiz eder ve HTML, Excel, JSON veya txt formatlarından bir veritabanı güvenliği değerlendirme raporu oluşturur.
  • Discoverer : Mantıklı verileri bulmak ve raporlamak için kullanılan tek başına bir modüldür. Database Sensitive Data Assessment report / Veritabanına Duyarlı Veri Değerlendirme raporunu hazırlar.

Ayrıca DBSAT birkaç tamamlayıcı yardımcı program içerir (Reporter JSON çıkış formatı), bunlar:

  • DBSAT Extract – Bulguları kimlikleriyle çıkarmanızı sağlayan Python programı
  • DBSAT Diff – İki raporu karşılaştırmanıza ve farkları bulmanıza olanak sağlayan Python programı

Yukarıdaki DBSAT tamamlayıcı modüllerini, DBSAT aracını indirmek için kullandığınız aynı My Oracle Support dökümanından indirebilirsiniz [Doc ID 2138254.1]

DBSAT Kullanmak İçin Gereken Önşartlar

  • DBSAT’ın yalnızca aşağıdaki işletim sistemlerinde çalıştırılmak üzere onaylandığını unutmayın:
    • Solaris x64 and Solaris SPARC64
    • Linux x86-64
    • Windows x64
    • HP-UX IA (64-bit)
    • IBM AIX (64-bit) & Linux on zSeries (64-bit)
  • DBSAT aracını herhangi bir Oracle Database 10.2.0.5 veya sonraki sürümlerinde çalıştırabilir
  • Zip, unzip ve python yazılımının sunucuya kurulması gerekir. Aşağıdaki komutu vererek bunları kolayca yükleyebilirsiniz:
yum install -y zip unzip python


• Ayrıca, işletim sistemi düzeyinde aşağıdaki komutu vererek, sunucuda Python’un yüklü olup olmadığını (2.6 veya üstü gerekir) kolayca doğrulayabilirsiniz:

[root@test ~]# python -V
Python 2.6.6

• Son olarak, aşağıdaki komutları çalıştırarak zip ve unzip olup sunucunuzda yüklü olup olmadığını doğrulayabilirsiniz.

zip -v
unzip -v

• Discoverer modülü çalıştımraj için ortamınızda en az Java 1.8 JDK yüklü ve çalışıyor olmalıdır ve JAVA_HOME ortam değişkeninin ayarlanması gerekir. Aşağıdaki komutu vererek java’nın ortamınızda çalışıp çalışmadığını kontrol edebilirsiniz:

[root@test ~]# java -version
java version "1.8.0_211"
Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)
[root@test ~]# 
[root@test ~]# export JAVA_HOME=/usr/bin/java

• Daha sonra, DBSAT’ı kullanmak için gerekli yetkilere sahip bir kullanıcı oluşturmamız gerekiyor:

CREATE USER DBSAT_USER IDENTIFIED BY "112233ee";
GRANT CREATE SESSION to DBSAT_USER;
GRANT SELECT_CATALOG_ROLE TO DBSAT_USER;
GRANT SELECT ON SYS.REGISTRY$HISTORY TO DBSAT_USER;
GRANT DV_SECANALYST TO DBSAT_USER; (If Database Vault is enabled)
GRANT SELECT ON SYS.DBA_USERS_WITH_DEFPWD TO DBSAT_USER; (if 11G or later)
GRANT AUDIT_VIEWER TO DBSAT_USER; (if 12c or later)
GRANT SELECT ON AUDSYS.AUD$UNIFIED TO DBSAT_USER; (if 12c or later)
GRANT CAPTURE_ADMIN TO DBSAT_USER; (if 12c or later)

Kurulum

DBSAT kurulumu çok basit bir işlemdir:

  • DBSAT kullanmak istediğiniz veritabanı sunucusuna giriş yapın.
  • DBSAT dizini oluşturun
  • zip dosyasını indirin ve veritabanı sunucusuna kopyalayın ve sıkıştırmasını açın
[oracle@test ~]$ mkdir /home/oracle/dbsat
[oracle@test ~]$ cd /home/oracle/dbsat/
[oracle@test dbsat]$ unzip dbsat.zip 
Archive:  dbsat.zip
  inflating: dbsat                   
  inflating: dbsat.bat              
……..

Collect Module’de Çalıştırma

DBSAT collector kipini çalıştırmak için yapmanız gereken tek şey DBSAT programını aşağıdaki parametrelerle çalıştırmaktır:

  • collect : collect modülünü uyguladığımız anlamına gelir.
  • connect_string : Veritabanına bağlanmak için bağlantı dizesini belirtir. Mesela tns dosyasındaki veritabanı bağlantımız.
  • destination  : Veritabanı Güvenliği Değerlendirmesi raporu için konum ve dosya adını belirtir

Komut çalıştırma sırasında zip dosyası için belirlenecek şifreyi soracaktır. Komut çalıştıktan sonra belirtilen dizinde (/home/oracle/dbsat) , belirtilen isimde sıkıştırılmış bir dosya (test_output.zip) oluşacaktır. Bu dosya raporlama için kullanılacak verileri içermektedir.

[oracle@test dbsat]$ ./dbsat collect dbsat_user@ORCL test_output

Database Security Assessment Tool version 2.1 (March 2019)

This tool is intended to assist in you in securing your Oracle database
system. You are solely responsible for your system and the effect and
results of the execution of this tool (including, without limitation,
any damage or data loss). Further, the output generated by this tool may
include potentially sensitive system configuration data and information
that could be used by a skilled attacker to penetrate your system. You
are solely responsible for ensuring that the output of this tool,
including any generated reports, is handled in accordance with your
company's policies.

Connecting to the target Oracle database...


SQL*Plus: Release 11.2.0.4.0 Production on Wed Apr 24 10:21:06 2019

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Enter password: 

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

Setup complete.
SQL queries complete.
OS commands complete.
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
DBSAT Collector completed successfully.

Calling /u01/app/oracle/product/11.2.0/db_1/bin/zip to encrypt test_output.json...

Enter password: 
Verify password: 
  adding: test_output.json (deflated 85%)
zip completed successfully.


[oracle@test dbsat]$ ls -l |grep test
-rw-------. 1 oracle oinstall   31827 Apr 24 10:22 test_output.zip

Rapor Modunu Çalıştırma

Reporter modu, daha önce çalıştırılan Collector mod tarafından toplanan tüm verileri analiz eder ve veritabanının güvenliğini artırmak için önerilerde bulunur.
DBSAT’ı rapor modunda çalıştırmak için yapmanız gereken tek şey DBSAT çalıştırılabilir dosyasını ve aşağıdaki parametreleri çalıştırmaktır:

  • report : rapor modunda olduğumuzu gösterir
  • -a :  Analiz sırasında veritabanındaki tüm kullanıcıları dahil eder. Aksi takdirde şifre süresi dolmuş , hesabı kilitli vs gibi , veritabanına erişemeyen kullanıcıları dahil etmez.
  • -n : Oluşturulan raporların şifreli olmadığını belirtir
  • -x : raporda bazı bölümlerin dahil edilmemesini sağlar. Bu bölümler aşağıdaki gibidir:
    • USER : Kullanıcı hesapları
    • PRIV : Yetkiler ve roller
    • AUTH : Yetkilendirme kontrolü
    • CRYPT : Veri şifreleme
    • ACCESS :Fine-Grained erişim kontrolü
    • AUDIT : Denetleme
    • CONF : Veritabanı konfigürasyonu
    • NET : Network konfigürasyonu
    • OS : İşletim sistemi
  • Destination : Hedef Veritabanı Güvenlik Değerlendirmesi raporunun konumunu ve dosya adını belirtir.

Rapor çalıştırılırken, veri tabanından veri toplanırken kullanılan şifreleme şifresini elle girmenizi ister ve oluşturulacak zip çıkış dosyası için bir şifreleme anahtarı (şifre) istersiniz.

[oracle@test dbsat]$ ./dbsat report test_output

Database Security Assessment Tool version 2.1 (March 2019)

This tool is intended to assist in you in securing your Oracle database
system. You are solely responsible for your system and the effect and
results of the execution of this tool (including, without limitation,
any damage or data loss). Further, the output generated by this tool may
include potentially sensitive system configuration data and information
that could be used by a skilled attacker to penetrate your system. You
are solely responsible for ensuring that the output of this tool,
including any generated reports, is handled in accordance with your
company's policies.

Archive:  test_output.zip
[test_output.zip] test_output.json password: 
  inflating: test_output.json        
DBSAT Reporter ran successfully.

Calling /usr/bin/zip to encrypt the generated reports...

Enter password: 
Verify password: 
        zip warning: test_output_report.zip not found or empty
  adding: test_output_report.txt (deflated 77%)
  adding: test_output_report.html (deflated 84%)
  adding: test_output_report.xlsx (deflated 3%)
  adding: test_output_report.json (deflated 81%)
zip completed successfully.


[oracle@test dbsat]$ ls -l |grep test
-rw-------. 1 oracle oinstall   94395 Apr 24 14:39 test_output_report.zip
-rw-------. 1 oracle oinstall   31827 Apr 24 10:22 test_output.zip

Rapor modülü tüm bulguları içeren yeni bir zip dosyası oluşturacaktır, yukarıdaki örnekte test_output_report.zip dosyası olacaktır. Bulguları zip dosyasını açarak (işleme girilen şifreleme şifresini kullanarak) ve raporun TXT veya HTML sürümlerine bakarak inceleyebilirsiniz.

[oracle@test dbsat]$ unzip test_output_report.zip 
Archive:  test_output_report.zip
[test_output_report.zip] test_output_report.txt password: 
  inflating: test_output_report.txt  
  inflating: test_output_report.html  
  inflating: test_output_report.xlsx  
  inflating: test_output_report.json  

Elde edilen HTML dosyasına bakıldığında bulguların bir özetini görebiliriz.

oracle database security dbsat

Discover

Discover, esasen, veri tabanındaki hassas verileri kontrol eden, collector ve reporter’e bağlı olmayan, Java tabanlı ayrı bir araçtır. İlk önce bir dbsat.config dosyası oluşturmanız gerekir. Daha sonra açıkça referansta bulunacağınız için istediğiniz her şeyi arayabilirsiniz.

[oracle@test dbsat]$ cd /home/oracle/dbsat
[oracle@test dbsat]$ cp Discover/conf/sample_dbsat.config Discover/conf/dbsat.config 

“Discover/conf/dbsat.config” dosyasının içeriğini düzenlemeniz gerekecektir. En azından aşağıdakileri ayarlamanız gerekir.

[Database]
        DB_HOSTNAME = localhost
        DB_PORT = 1521
        DB_SERVICE_NAME = orcl

“Discover/conf/sensitive_en.ini” dosyası, her biri sütun adları için ilişkili bir desen içeren potansiyel olarak hassas veri kategorilerinin bir listesini içerir. Bu dosyayı gözden geçirmeli ve gerekirse fazladan bölüm veya desen eklemeyi düşünmelisiniz.
Konfigürasyon tamamlandıktan sonra, konfigürasyon dosyasını ve çıktı dosya adını belirterek discovereri çalıştırabilirsiniz. Veritabanının kimlik bilgileri ve ortaya çıkan zip dosyası için parola girmeniz istenir.

[oracle@test dbsat]$ ./dbsat discover -c ./Discover/conf/dbsat.config test_output_discovery

Database Security Assessment Tool version 2.1 (March 2019)

This tool is intended to assist in you in securing your Oracle database
system. You are solely responsible for your system and the effect and
results of the execution of this tool (including, without limitation,
any damage or data loss). Further, the output generated by this tool may
include potentially sensitive system configuration data and information
that could be used by a skilled attacker to penetrate your system. You
are solely responsible for ensuring that the output of this tool,
including any generated reports, is handled in accordance with your
company's policies.

Enter username: dbsat_user
Enter password: 
DBSAT Discover ran successfully.
Calling /usr/bin/zip to encrypt the generated reports...

Enter password: 
Verify password: 
        zip warning: test_output_discovery_report.zip not found or empty
  adding: test_output_discovery_discover.html (deflated 84%)
  adding: test_output_discovery_discover.csv (deflated 81%)

Artık Discover modülü tarafından oluşturulan HTML raporunu inceleyebilirsiniz.

[test_output_discovery_report.zip] test_output_discovery_discover.html password: 
  inflating: test_output_discovery_discover.html  
  inflating: test_output_discovery_discover.csv  

Referanslar;
https://docs.oracle.com/cd/E93129_01/SATUG/toc.htm#SATUG-GUID-CF88A2AE-E989-4F82-889C-005B32858A44

Mustafa Bektaş Tepe
İyi Çalışmalar

Loading