Questa paginetta riporta i passi per la configurazione dell'auditing con EDB Postgres Advanced Server.
La registrazione degli accessi e delle attivita' (AUDIT)
e' importante sia per ragioni di sicurezza che per ottemperare
alle leggi ed ai regolamenti sulla gestione delle basi dati.
EDB Postgres, rispetto alla versione Community, ha la funzionalita' di audit
integrata e quindi non e' necessario
installare alcuna estensione aggiuntiva come
il PGAudit.
Le funzionalita' di auditing sono infatti integrate
in EDB Postgres ed il loro utilizzo e' particolarmente semplice.
Nel seguito sono riportate alcune informazioni di interesse organizzate in paragrafi specifici: Introduzione, Configurazione, Auditing, Auditing Objects, Obblighi di legge, Varie ed eventuali.
La rilevazione delle attivita' svolte su un database e' molto importante sia per necessita' di logging/tracing che per adempiere agli eventuali requisiti di legge. EDB Postgres fornisce in modo integrato uno strumento di auditing delle attivita' che risponde alle crescenti esigenze di controllo richiesto alle aziende da parte di istituzioni finanziarie, governative o degli enti di certificazione.
Con la versione Community di Postgres sono disponibili diverse tecniche per eseguire l'auditing delle attivita' svolte sulla base dati come descritto in questa paginetta.
EDB Postgres fornisce in modo integrato, senza richiedere componenti aggiuntivi, le piu' avanzate funzionalita' di auditing del database. Le impostazioni dell'audit si effettuano con i parametri edb_audit% e non richiedono in nessun caso il riavvio dell'istanza. Come nella versione Community l'auditing e' legato alle funzionalita' di logging del database ma con EDB i due componenti sono quasi indipendenti.
La configurazione dell'EDB Audit Logging e' molto semplice perche' l'auditing e' gia' integrato nella distibuzione EDB, non e' necessario creare alcuna extension e tutte le impostazioni possono essere svolte in linea senza riavvi.
Per la configurazione va indicato il formato (none, csv, xml) ed il path in cui scrivere i file di log di audit. In generale si preferisce evitare di utilizzare un path sotto PGDATA e naturalmente la directory deve essere scrivibile a postgres.
Con questi semplici passi l'auditing e' gia' attivo. Le impostazioni dei parametri di audit si possono controllare con:
select name, setting, unit, source, context, min_val, max_val --short_desc from pg_settings where name like 'edb_audit%' or name in ('logging_collector') order by name;
Ora bisogna decidere cosa tracciare!
Una prima impostazione riguarda le connessioni: infatti sono molte direttive degli standard che richiedono questa funzionalita'. La configurazione e' molto semplice e permette di tracciare le connessioni fallite oppure tutte. Tipicamente e' richiesto anche di tracciare le disonnessioni.
Piu' importante e maggiormente impegnativo e' tracciare gli statement SQL. E' possibile impostare diversi livelli di tracciamento degli statement:
edb_audit_statement = 'all' # Statement type to be audited: # none, dml, insert, update, delete, truncate, # select, error, rollback, ddl, create, drop, # alter, grant, revoke, set, all # {select | update | delete | insert}[@groupname | -groupname]
Il rischio nel trattamento dell'auditing e' quello di generare file
di log enormi relativi a comandi non utili.
Un vantaggio della configurazione di EDB Audit e' che e' possibile impostare
l'auditing a livello di istanza, di database o di utente.
Vediamo quindi un esempio:
In un database possono essere presenti oggetti con diversi livelli di sensibilita' dei dati. Per questo con EDB Audit e' possibile impostare un tag (edb_audit_group) agli oggetti ed impostare l'auditing a seconda dell'importanza del controllo.
Nell'esempio che segue abbiamo una tabella che contiene dati relativi ai componsi ed una tabella utile per le aggregazioni. E' possibile impostare diversi livelli di auditing in questo modo:
Ci sono diverse leggi e regolamenti che richiedono l'auditing sull'accesso ai dati...
La legge in vigore in Italia e' il codice in materia di protezione dei dati personali (d.lg. 30 giugno 2003, n. 196) nonche' il disciplinare tecnico in materia di misure minime di sicurezza di cui all'allegato B del medesimo codice. Tale legge inquadra in modo completo la materia ma, dal punto di vista pratico, il riferimento sono i provvedimenti del Garante. I dettagli sono riportati su questa pagina: in pratica dal 15 Dicembre 2009 vanno registrati tutti gli accessi amministrativi ai sistemi ed alle basi dati!
Inoltre il 27 aprile 2016 e' stato adottato il
REGOLAMENTO (UE) 2016/679 DEL PARLAMENTO EUROPEO E DEL CONSIGLIO
relativo alla protezione delle persone fisiche con riguardo al trattamento dei dati personali,
nonche' alla libera circolazione di tali dati e che abroga la direttiva 95/46/CE
(regolamento generale sulla protezione dei dati).
Tale regolamento, generalmente riferito con l'acronimo inglese
GDPR (General Data Protection Regulation)
ha validita' di legge senza bisogno di essere approvato dal Parlamento Italiano
ed entrera' in vigore il 25 Maggio 2018.
Il GDPR e' molto ampio
(cfr. testo ufficiale)
e prevede regole comuni per tutti i paese della comunita' europea, anzi ha validita' extraterritoriale
quando i dati riguardano cittadini europei.
Oltre all'inasprimento delle sanzioni con il GDPR cambia sopratutto la prospettiva d'insieme
e richiede che la protezione dei dati
faccia parte del progetto di sviluppo dei processi aziendali
per i prodotti ed i servizi offerti dall'azienda.
Per quanto riguarda gli USA i principali obblighi sull'auditing riguardano:
Molto completi e dettagliati sono i CIS Benchmarks che prevedono tutti i controlli necessari suddivisi per versione di database.
E' importante sottolineare che i requisiti minimi richiesti dalle normative non si limitano all'audit...
I risultati dell'audit vanno anche salvati in modo corretto e resi consultabili.
Fondamentali sono anche una corretta definizione dei privilegi [NdE improntata al principio del minimo privilegio]
e la crittografia [NdE sia sui dati che sulla loro trasmissione].
E' necessario procedere prima ad un assessment tecnico e funzionale della base dati
e quindi a provvedere alla messa in sicurezza del database con tutti gli strumenti necessari,
tra cui l'audit.
Maggiori dettagli su EDB Audit sono riportati nella documentazione ufficiale e sono disponibili anche diversi ottime pagine di esempio come su questo articolo.
Una panoramica delle possibilita' di auditing sulla versione PostgreSQL community e' contenuta in questo documento. Se si utilizza PostgreSQL su AWS puo' essere utile questo documento (su Amazon RDS e' utilizzato il PGAudit).
Titolo: EDB Audit
Livello: Medio
Data:
14 Febbraio 2017 ❤️
Versione: 1.0.4 - 31 Ottobre 2021 🎃
Autore: mail [AT] meo.bogliolo.name