İç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.
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