Problematiche di sicurezza su database
Oracle

I database mantengono i principali dati aziendali e debbono essere adeguatamente protetti.
Questa breve pagina riporta le problematiche piu' diffuse per quanto riguarda le basi dati ed i piu' comuni errori sulla sicurezza dei database ma sopratutto... indica come risolverle con l'RDBMS Oracle!

Nel seguito sono riportate le informazioni di interesse organizzate in paragrafi specifici: Introduzione, Matrice delle soluzioni, Controllo accessi, Controllo SQL, Protezione dati, Configurazione sicura, Varie ed eventuali.

Introduzione

Le piu' recenti normative per la sicurezza dei dati hanno posto l'attenzione di tutte le aziende sulla protezione dei dati: GDPR (General Data Protection Regulation, per la protezione dei dati personali), SOX (Sarbanes-Oxley Act of 2002, per la protezione dei dati finanziari), PCI-DSS (Payment Card Industry Data Security Standard, standard internazionale a protezione dei dati delle carte di credito), HIPAA (Health Insurance Portability and Accountability Act, legge USA a protezione dei dati personali e sanitari), ...

Problematiche sicurezza database I database mantengono i principali dati aziendali e debbono essere adeguatamente protetti. Questo documento presenta quelli che sono le problematiche di sicurezza piu' comuni relativamente ai database e come possono essere risolte. A seconda dei casi verranno presentate soluzioni introducendo Best Practice di programmazione o di progettazione, utilizzando funzionalita' standard Oracle, utilizzando Option Oracle (componenti aggiuntivi), utilizzando strumenti o pacchetti esterni.

Tra i molti elenchi di problematiche da cui partire... ne abbiamo scelto uno italiano che ha anche il pregio di avere le virtu' Calviniane dell'esattezza e della rapidita'. L'elenco sulle problematiche di sicurezza piu' comuni per i database e' quello contenuto nel Rapporto 2016 preparato dal Clusit (Associazione Italiana per la Sicurezza Informatica) su aziende italiane ed e' quindi uno specchio reale della situazione presente nella maggioranza delle imprese.

Le problematiche emerse nella ricerca sono state suddivise nelle seguenti categorie:

Nel resto del documento analizzeremo le tecnologie disponibili in Oracle per risolvere le problematiche di sicurezza dei dati su ciascuna delle categorie citate.

Matrice delle soluzioni

La tabella seguente riporta come approcciare le diverse problematiche di sicurezza con l'RDBMS Oracle [NdA si fa riferimento alle funzionalita' presenti nella Enterprise Edition per le versioni attualmente supportate]. La matrice e' volutamente sintetica e riassuntiva. E' importante sottolineare che molte problematiche non possono essere solo risolte a livello di tecnologia ma richiedono un preciso processo aziendale. La tabella riporta se il DB fornisce un supporto per gestire la problematica, quanto il supporto e' completo e se sono necessari componenti esterni o opzionali.

# Problematica Supporto DB Opzioni, estensioni, strumenti esterni Note
ACDB Access Control Controllo accessi

Definizione dell'accesso ai dati ai soli utenti autorizzati e controllo di quando, dove e come i dati sono acceduti.

AC1No distinction between Application User and Schema Owner Full Oracle fornisce GRANT e SYNONYM. Le tipiche applicazioni su Oracle separano bene tra i diversi ruoli.
AC2 Application user credential not protected in the application server External Funzionalita' esterna rispetto all'RDBMS. Oracle dispone delle utenze OPS$ ma nelle architetture a due o piu' livelli non sono utili.
AC3 Developers use application user credential External Processo esterno all'RDBMS.
AC4 DBAs do not have personal accounts and use technical accounts External Processo esterno all'RDBMS, Oracle non presenta alcun vincolo per la creazione di utenze personali.
AC5 Technical accounts defined with a human algorithm and never changed External Processo esterno all'RDBMS.
AC6 End users have direct access to the DB bypassing the application External Processo esterno all'RDBMS. Con Oracle e' facile verificare gli accessi correnti e storici alla base dati.
AC7No lifecycle management for DB users Full Oracle fornisce gli USER PROFILE che consentono una gestione automatica dell'espiration.
AC8OS administrators can escalate their privileges to DBA Full DB Vault E' complesso su Oracle impedire all'amministratore del sistema di ottenere privilegi elevati sul DB. E' pero' possibile impedire l'accesso ai dati applicativi con il DB Vault (Option).
AC9DBAs have full access to users' data Full DB Vault Di norma i DBA hanno accesso a tutti i dati. Per evitarlo puo' essere utilizzato il DB Vault.
LGMonitoring / Blocking and Audit Controllo SQL

Analisi delle transazioni che avvengono sulla base dati ed visualizzazione le attivita' correnti e storiche.

LG1No preventive SQL controls Full Firewall DB Con il Firewall DB e' possibile implementare controlli preventivi sull'SQL. Altre soluzioni (eg. WAF) sono esterne al DB.
LG2No or partial and inconsistent logs Full Oracle fornisce un completo logging ed un sofisticato Auditing. Inoltre e' disponibile il prodotto Oracle Audit Vault.
LG3Logs are not analyzed External Processo esterno all'RDBMS. E' tipicamente compito di un SIEM (Security Information and Event Management)...
LG4 Logs are not managed External Processo esterno all'RDBMS. E' tipicamente compito di un SIEM... Oracle fornisce il prodotto Audit Vault
LG5No DB user accountability Full Oracle fornisce un sofisticato Auditing che registra gli accessi al DB puo' essere configurato [NdA *deve* sugli ambienti di produzione soggetti alle leggi su sicurezza e privacy] per registrare gli accessi al DB.
LG6No end user accountability Full Oracle fornisce un sofisticato Auditing. L'accesso degli end user puo' essere facilmente distinto in Oracle adottando utenze DB differenti.
DPData Protection Protezione dati

Processi e controlli sulla trasmissione, sull'accesso e la memorizzazione delle informazioni per tutto il ciclo di vita dei dati.

DP1Applications do not encrypt External Processo esterno all'RDBMS. Oracle fornisce un ampio insieme di funzioni di crittografia e datatype adatti a mantenere dati crittografati.
DP2No datafile encryption Full Advanced Security Option Il TDE (transparent data encryption), componente dell'Advanced Security Option, fornisce la funzionalita' di data-at-rest encryption.
DP3 No storage encryption External Processo esterno all'RDBMS. Su molti sistemi operativi e' una funzionalita' disponibile. Oracle ASM supporta l'encryption su ACFS.
DP4No network encryption Full Advanced Security Option SQL*Net supporta la crittografia delle trasmissioni. Nelle versioni piu' recenti non e' necessaria alcuna opzione.
DP5No backup / export encryption Full RMAN ed expdp/impdp supportano in modo completo la crittografia
DP6Production data copied to development environments Full expdp supporta il richiamo di procedure di data masking (eg. miXen). L'opzione Advanced Security Option permette la definizione di politiche di redaction.
DP7Unnecessary data are not hidden/masked Full Con viste ed opportuni GRANT da Oracle e' possibile mascherare i dati non necessari: la maggior difficolta' e' nell'analisi che richiede competenze sui dati/applicazioni e spesso non viene eseguita.
SCSecure Configuration Configurazione sicura

Processi e controlli per garantire la corretta configurazione dei Database.

SC1Obsolete DB / OS releases Full Le release supportate sono ben note. La difficolta' maggiore e' esterna al DB e riguarda la certificazione delle applicazioni sulle nuove releases.
SC2No DB / OS hardening Full Le impostazioni di default di Oracle sono generalmente sicure. Sono ben documentate le Best Practices sulla sicurezza e vi sono tool supportati per verificarle (eg. DBSAT).
SC3No patching Full Oracle emette patch con cadenza trimestrale che e' fortemente consigliato applicare.
SC4 Poor SDLC production promotion and SoD External Processo esterno all'RDBMS (SDLC: Systems Development Life Cycle, SoD: Separation/Segregation of Duties). Il completo sistema di GRANT di Oracle fornisce tutto il supporto necessario.
SC5 No production user, privileges, db objects change control External Processo esterno all'RDBMS. Oracle fornisce diversi tool esterni (eg. SQL Developer, Oracle EM Cloud Control 12c and the Lifecycle Management Pack, ...).

Dalla tabella e' chiaro che la molti dei punti sono da gestire con processi o con strumenti esterni al Database. Quando la problematica riguarda il database il supporto fornito da Oracle e' sempre adeguato; in qualche caso e' opportuno l'utilizzo di Option aggiuntive all'RDBMS disponibili nell'edizione Enterprise.
Nei prossimi capitoli vengono riportati maggiori dettagli su ciascuna delle soluzioni tecniche disponibili in Oracle.

DB Access Control

Per il principio del minimo privilegio (least privilege) vanno utilizzate le utenze con i diritti minori possibili per svolgere le diverse attivita'. Questo e' particolarmente importante per le utenze applicative che debbono svolgere tipicamente solo operazioni CRUD, a cui non servono i privilegi per operazioni di DDL e sono tipicamente maggiormente soggette ad attacchi e meno protette. E' quindi necessario che le utenze utilizzate dagli Application Server o dai Web Server non siano proprietarie dello schema dati.

Sono molteplici le soluzioni tecnologiche fornite da Oracle per quanto riguarda il controllo degli accessi:

Le altre problematiche riportate in questa categoria vengono risolte definendo ed applicando opportune policy di sicurezza.
Ad esempio non ci sono ragioni tecniche su Oracle per far utilizzare l'utenza applicativa agli sviluppatori negli ambienti di produzione. Una corretta definizione degli ambienti (eg. sviluppo, collaudo, produzione) e delle procedure per la messa in esercizio delle applicazioni e' necessaria per disporre di sistema sicuro nel suo complesso.

Monitoring / Blocking and Audit

Sono molteplici le soluzioni tecnologiche fornite da Oracle per quanto riguarda il monitoraggio delle attivita' correnti sulla base dati (eg. V$SESSION).
Oracle fornisce una vista completa delle attivita' svolte sulla base dati grazie ad un ricchissimo catalogo, a specifiche opzioni aggiuntive ed a tool esterni.

Data protection

Sono molteplici le soluzioni tecnologiche fornite da Oracle per quanto riguarda la protezione dei dati:

Secure Configuration

Oracle da sempre ha tenuto in forte considerazione questi aspetti e tutte le versioni piu' recenti hanno configurazioni di default molto sicure.

Varie ed eventuali

Va sottolineato che, delle attivita' di messa in sicurezza evidenziate, solo alcune sono legate all’acquisto di nuovi prodotti. Spesso per risolvere la maggioranza delle problematiche e' sufficiente un buon uso di quello che si ha gia' come versioni/supporto/opzioni Oracle, e l'applicazione di adeguati processi aziendali il tutto dopo una corretta e completa analisi di sicurezza.

Il riferimento ufficiale per la sicurezza dell'RDBMS Oracle e' sul sito ufficiale e vengono periodicamente aggiornati i Security Alerts. Va riportato pero' che l'importanza e la complessita' della materia sono notevoli (eg. la sola Security Guide e' di oltre 800 pagine) gli interventi di messa in sicurezza di Oracle vanno quindi approcciati con la necessaria competenza ed esperienza.


Titolo: Risolvere gli errori di sicurezza sui database Oracle
Livello: Medio (2/5)
Data: 1 Ottobre 2017
Versione: 1.0.0 - 1 Gennaio 2018
Autori: mail [AT] meo.bogliolo.name, Guido Marino