DBSAT

DBSAT (DB Security Assessment Tool) e' un semplice strumento che consente di eseguire una verifica di sicurezza sulle basi dati Oracle.
DBSAT e' un tool supportato da Oracle e di utilizzo gratuito.

Le verifiche di sicurezza sulle basi dati sono molto importanti anche per l'imminente scadenza per adeguarsi del regolamento europeo 2016/679 sulla protezione dei dati personali: il noto GDPR (General Data Protection Regulation) [NdE la scadenza e' il 2018/05/25 e l'ultima versione di DBSAT contiene riferimenti precisi al GDPR].

Ho fretta!

Scaricare il tool da sito di supporto (Doc ID 2138254.1 Accesso Riservato) ed eseguire i seguenti passi come utente oracle:

unzip dbsat.zip ./dbsat collect "/ as sysdba" /tmp/dbsat/collect_SAMPLE ./dbsat report /tmp/dbsat/collect_SAMPLE

Viene generato il file collect_SAMPLE_report.zip protetto con password che contiene il risultato dell'analisi di sicurezza.

Introduzione

L'assessment sulla configurazione delle basi dati e' un passo fondamentale per garantire la sicurezza delle basi dati. DBSAT e' un tool fornito da Oracle, disponibile su MOS a tutti coloro che hanno il supporto attivo per una base dati, utilizzabile per tutte le basi Oracle dalla versione 10.2.0.5 in poi.

DBSAT effettua i principali controlli sulla configurazione del DB. Attualmente vengono effettuati una settantina di diversi controlli sulla definizione delle utenze/ruoli, sulle autorizzazioni, sui permessi dei file, sulla configurazione della base dati e del listener. E' possibile che releases successive aggiungano nuovi controlli.

L'esecuzione del tool genera un report con i problemi di sicurezza riscontrati (suddivisi per ambito e livello di importanza) e le indicazioni per risolverli. Naturalmente i problemi emersi vanno poi anche corretti!

Installazione

Il tool va scaricato dal sito di supporto Oracle. Il riferimento e': Oracle Database Security Assessment Tool (DBSAT) (Doc ID 2138254.1). Si tratta di un semplice file .zip.

Per installarlo sul DB server basta decomprimerlo...

Collezione dati

Per collezionare i dati e' necessario essere connessi al database server come utente proprietario della base dati (tipicamente oracle) e lanciare il comando:

./dbsat collect "/ as sysdba" /tmp/dbsat/collect_SAMPLE

Possono essere indicati diversi parametri di connessione... la sintassi utilizzata e' quella dell'sqlplus.

Il tool esegue la raccolta dati e la raccoglie su un file compresso e crittografato. Il tempo necessario dipende dalla compessita' della base dati e dalle prestazioni del server... generalmente sono necessari pochi minuti.
Con l'opzione -n il risultato non viene crittografato.

Lo script puo' essere eseguito anche da un utente diverso dall'amministratore purche' fornito dei seguenti privilegi:

create user dbsat_user identified by xxx;

// If Database Vault is enabled, connect as DV_ACCTMGR to run this command
grant create session to dbsat_user;
grant select_catalog_role to dbsat_user;
grant select on sys.registry$history to dbsat_user;
grant select on sys.dba_users_with_defpwd to dbsat_user; // 11g and 12c
grant select on audsys.aud$unified to dbsat_user; // 12c only
grant audit_viewer to dbsat_user; // 12c
grant capture_admin to dbsat_user;// 12c covers sys.dba_priv_captures, sys.priv_capture$, sys.capture_run_log$ 
// if Database Vault is enabled, connect as DV_OWNER to run this command 
grant DV_SECANALYST to dbsat_user;
[NdA NON create un utente dbsat_user con password xxx su i vostri database di produzione ;-]

Generazione Report

La generazione dei report con i risultati e' il passo successivo e richiede il file generato con il passo precedente. La generazione del report puo' essere eseguita anche su un sistema diverso. Un prerequisito e' la presenza di Python 2.6 o superiore. Il comando da lanciare e':

./dbsat report /tmp/dbsat/collect_SAMPLE

Viene generato il file collect_SAMPLE_report.zip protetto con password che contiene tre file: e' sempre lo stesso report in formato .HTML, .TXT e .XLS.
Con l'opzione -n il risultato non viene crittografato.

Analisi dei risultati

L'analisi dei risultati ottenuti da DBSAT e' semplice per un DBA esperto... ecco un esempio di report.

La maggioranza delle segnalazioni sono di immediata comprensione, ecco una delle piu' classiche: DBSAT version check

Alcune segnalazioni richiedono pero' verifiche che richiedono piu' tempo. DBSAT puo' indicare che non e' configurata l'encryption... ma come sapere se e' opportuna o necessaria sul database target oppure se e' gia' implementata applicativamente su alcuni campi?

Effettuata l'analisi e' molto opportuno correggere i problemi emersi, in particolare quelli di livello Severe e Significant Risk.
L'adeguamento puo' avere in qualche caso un impatto sulle applicazioni, naturalmente da valutare in modo preventivo su ambienti di sviluppo/test.

Varie ed eventuali...

L'assessment tecnico e funzionale della basi dati e' tipicamente il primo passo per l'adeguamento alle piu' recenti normative (eg. 196, GDPR, SOX, PCI-DSS, HIPAA, ...). L'utilizzo di uno strumento fornito da Oracle e' una garanzia sull'adeguatezza delle verifiche effettuate.

DBSAT e' un tool che va utilizzato con attenzione. I privilegi che richiede sono elevati ed il risultato ottenuto puo' consentire ad un estraneo di sfruttare una breccia di sicurezza:

This tool is intended to assist you in identifying potential 
vulnerabilities in your system, but 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).

Per Oracle eBusiness Suite (eBS) / Oracle Applications, e' disponibile il tool EBSSecConfigChecks scaricabile dal documento MOS Security Configuration and Auditing Scripts for Oracle E-Business Suite (Doc ID 2069190.1). Il tool e' composto da una quindicina di script SQL e Shell che effettuano verifiche sull'adeguatezza delle configurazioni di sicurezza mirate alla parte applicativa. Le verifiche effettuate da EBSSecConfigChecks ed i risultati ottenuti sono complementari rispetto a quelle di DBSAT che sono orientate solo alla parte di database.
Per la rimozione (obfuscation) dei dati personali e' stato di recente [NdA 2018-05-18] reso disponibile il tool Oracle E-Business Suite Person Data Removal Tool (Doc 2384629.1) che soddisfa, tra le altre cose, i requisiti del GDPR sul diritto all'oblio.

Molto completi e dettagliati sono i CIS Benchmarks che prevedono tutti i controlli necessari per tipo e versione dei principali sistemi operativi e per i database piu' significativi: sono realizzati dal Center for Internet Security (CIS), un organismo indipendente tra i piu' preparati sulla Cybersecurity.

Dalla versione 12.2.0.1.2 i tool ORAchk (Doc ID 1268927.2) ed EXAchk comprendono anche il DBSAT.

Aggiornamenti

La versione di DBSAT 2.0.1 [NdE 2018-01] introduce importanti novita'.

Innanzi tutto facilita la ricerca di dati sensibili con il nuovo modulo Discoverer che effettua un'analisi del data dictionary con regular expressions. E' una funzionalita' importante perche' viene incontro alla necessita' di identificare le Personally Identifiable Information (PII) come previsto dal GDPR.

Inoltre con la nuova versione il report contiene riferimenti precisi agli articoli del GDPR ed alle raccomandazioni indicate nei CIS Benchmark: DBSAT GDPR

Sono stati inseriti alcuni nuovi controlli, ma da questo punto di vista non ci sono particolari estensioni da segnalare.

La classificazione delle segnalazioni e' stata modificata. Al posto di Some/Significant/Severe Risk ora e' adottata la dicitura Low/Medium/High Risk che e' quella comunemente piu' utilizzata.

Il 2018-05 e' stata pubblicata la versione 2.0.2 di DBSAT.

Sono molto significative le nuove funzionalita' introdotte con la versione 2.1.0 [NdA 2019-03]: certificato con Oracle 18c e 19c, inseriti i riferimenti degli STIG, nazionalizzazione nella ricerca di dati sensibili per le principali lingue (tra cui l'italiano), miglioramenti sulle raccomandazioni fornite, ...
Con la 2.2 [NdA 2019-09] sono stati aggiunti ulteriori controlli e la lingua greca, quindi ulteriori controlli sui diritti a PUBLIC, sulle sessioni concorrenti ed affinamenti sulla severita', quindi sul ruolo PDB_DBA e sui database in cloud...
Insomma e' sicuramente opportuno utilizzare sempre l'ultima versione di DBSAT [NdA 2.2.2 del 2021-06] !


Titolo: DBSAT
Livello: Medio (2/5)
Data: 1 Aprile 2017 🐟
Versione: 1.0.5 - 31 Ottobre 2021 🎃 Halloween
Autore: mail [AT] meo.bogliolo.name