Oracle

Oracle DBSAT Database Security Assessment Tool

Bugünkü yazımızda Oracle güvenlik araçlarından DBSAT ( Database Security Assessment tool ) aracını inceleyeceğiz. Yazı için kaynak olarak değerli meslektaşım Rodrigo Mufalani ‘nin makalesini referans alarak kullanacağım . Makalenin orjinali kendisi tarafından yazılmış olup, burada Türkçe çevirisini yayınlanmaktadır.

Flora Barriele’nin POUG ‘daki harika sunumunu izledikten sonra, kendi başıma DBSAT’a daha yakından bakmaya karar verdim ve şimdiye kadar gördüklerimi beğendim. Bu yazıda, aracın amaçlarını , nasıl kurulacağını ve demo veritabanında nasıl kullanılacağını detaylandıracağım.

DBSAT ( Database Security Assessment tool ) Nedir ?

Cevabımı kısaltmak gerekirse, DBSAT belirli bir hedef veritabanında güvenlik bilgisi toplamak ve diğer yardımcı araçlar ( exachk , orachk vb. ) gibi puana dayalı raporlar üretmek için kullandığımız bir araçtır.

Aşağıdaki resime baktığımızda görüldüğü gibi DBSAT 3 adet bileşen bulundurmaktadır. Collector, Discoverer ve Reporter

Collector : Oracle’ın en iyi güvenlik uygulamalarına dayalı ayrıntılı bir rapor oluşturmak için reporter tarafından hedef veritabanında SQL ve OS araçlarını kullanarak raw veri toplar. Kullanılacak veriler JSON formatında tutulmaktadır.

Discoverer : Bazı dictionary views’ler üzerinden meta veri toplamak için hedef veritabanına bağlanan ve hassas verileri keşfetmek için bir takım modeller ile karşılaştırma yapan JAVA aracıdır. Çalışmak için JAVA Runtime Environment ( JRE 1.8 veya sonraki sürümleri gerekir.

Reporter : Collector tarafından üretilen JSON formatındaki çıktıyı okuyan ve HTML, TEXT vb. formatlara çeviren python aracıdır. En çok HTML çıktı formatı kullanılır ve Python 2.6 veya sonraki sürümlerin kurulu olması gerekir.

DBSAT 10.2.0.5 ve üstü veritabanlarında ve aşağıdaki listelenen işletim sistemlerinde kullanılabilir.

  • Solaris x64 and Solaris SPARC64
  • Linux x86-64
  • Windows x64
  • HP-UX IA (64-bit)
  • IBM AIX (64-bit) & Linux on zSeries (64-bit)

Şimdi araç ve bileşenleri hakkında kısa bir açıklama yaptığımıza göre çalışmaya başlayabiliriz. Sanal makina üzerinde OEL 8.2 kullanarak hedef vertabanı hakkında rapor oluşturacağız.

  1. PDB_RODRIGO içinde hazır olarak oluşturulmuş bir şema zaten bulunuyor. Bu nedenle iki lokal kullanıcı daha oluşturacağım.

2. DBSAT aracımı indiriyorum. Doc ID 2138254.1 adresinden yararlanabilirsiniz.

Daha önce bahsettiğimiz gibi bu araç python ve jdk gerektiriyor.

# yum install -y zip unzip python
# python -V
Python 2.6.6
# 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 ~]# export JAVA_HOME=/usr/bin/java

DBSAT problem çıkarmaması için python2 adında bir alias tanımlıyorum.

# ln -s /usr/bin/python2 /usr/bin/python

DBSAT aracımı çalıştırıyorum.

# su - oracle
$ cd /home/oracle/dbsat
$ ./dbsat collect dbsat_user@localhost:1521/pdb_rodrigo out_pdb_rodrigo

Gördüğünüz gibi hata mesajı aldık çünkü TNS_ADMIN tanımlaması olmadı. Böyle bir hata alırsanız TNS_ADMIN tanımlaması yaparak problemi çözebilirsiniz.

$ export TNS_ADMIN=/u01/app/19.8.0/grid/network/admin
$ ./dbsat collect dbsat_user@localhost:1521/pdb_rodrigo out_pdb_rodrigo

İşlem sonucunda iki adet dosya oluşturuldu. JSON dosyalarımız out_pdb_rodrigo.zip içerisinde ve şifreli.

Eğer benim gibi merak ederseniz ve JSON dosyasını açmak isterseniz şifre kullanmanız gerekiyor.

$ unzip out_pdb_rodrigo.zip
..

Şimdi aşağıdaki örnekte yaptığımız gibi HTML biçiminde okunabilir bir dosya oluşturalım.

$ ./dbsat report out_pdb_rodrigo

Raporumuz başarı ile oluşturuldu.

$ unzip out_pdb_rodrigo_report.zip
$ cd out_pdb_rodrigo_report

Şimdi raporumuzu kontrol edebiliriz. Raporumuz iki farklı formatta görülebilir.

TXT formatı

$ more out_pdb_rodrigo_report.txt

HTML formatı

Çıkan sonuca göre analiz edebileceğimiz ve kontrol edebileceğimiz. Bir çok iyi bilgi bulunuyor.

Örneğin varsayılan olarak SYSTEM tablespace set edildiğini görüyoruz.

PASSWORD_LIFE_TIME hakkında bize bazı önerilerde bulunuyor.

Password verify function ile ilgili uyarılar mevcut.

Son olarak ayrıcalık ve rol analizlerime bakıyorum. Bu raporun en detaylı kısmıdır ve muhtemelen bunu yöneticileriniz ve geliştiricilerinizle tartışmak için çok zaman harcayacaksınız.

Son olarak umarım bu düzel araç ve makale veritabanınızdaki güvenlik incelemesini yapmak için yardımcı olur.

Diğer makalelerde görüşmek dileğiyle,

Referans;
https://mufalani.wordpress.com/2020/09/17/dbsat-database-security-assessment-tool/

Buğra PARLAYAN

Çok sevdiği mesleği Oracle Veritabanı Yöneticiliğinde bulunmayan Türkçe kaynakları yazan hayırsever genco

İlgili Makaleler

3 Yorum

  1. Selamlar,
    ./dbsat collect i çalıştırdığımda şu hatayı alıyorum, TNS de Service name i tanımlı olmasına rağmen ERROR:
    ORA-12504: TNS:listener was not given the SERVICE_NAME in CONNECT_DATA

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu