Database e DBMS: Sicurezza, coerenza e affidabilità dei dati

Database e DBMS: Sicurezza, coerenza e affidabilità dei dati

Quando si parla di progetti informatici riguardanti il trattamento di dati importanti, come nel caso del nostro progetto, non si possono e non si devono per alcun motivo tralasciare l’analisi dettagliata delle problematiche riguardanti la sicurezza dei dati.

In questo articolo sulla sicurezza verranno perciò messi a fuoco quali sono i problemi relativi alla sicurezza nelle basi di dati.

Database e DBMS: Sicurezza, coerenza e affidabilità dei dati

Le minacce ai Database si possono dividere in tre categorie:

  • perdita di integrità: se vengono cioè apportate modifiche non autorizzate al Database
  • perdita di disponibilità: se non sono disponibili (ai servizi o agli utenti) i dati
  • perdita di riservatezza: se viene a meno la protezione dei dati

Queste minacce possono essere causate da attacchi:

  • a livello fisico: furti, danni
  • a livello logico (di intercettazione, di deduzione, di intrusione, di disturbo)
  • disastri naturali o accidentali
  • errori o bug software/hardware
  • errori umani

Vediamo più in dettaglio quali possono essere le soluzioni a questi delicati problemi:

  • ridondanza: replicare i dati in luoghi (o supporti) diversi
  • controllo degli accessi (permettere solo alle persone autorizzate di accedere ai dati dando privilegi diversi)
  • politiche di prevenzione

Con ridondanza intendiamo la replica dell’intero Database su supporti diversi (server ubicati in luoghi differenti ad esempio) in modo da evitare danni irreparabili in caso di guasti, furti al Database originale.

La replica comporta però problematiche di coerenza dei dati: non è ammissibile che nelle repliche esistano dati non aggiornati; ciò comporta la realizzazione di politiche di aggiornamento (ad esempio da effettuarsi durante la notte) tra il database master e le copie. Ciò può avvenire banalmente con un passaggio (ovviamente attraverso canali sicuri) di script SQL (il linuguaggio dei Database) riguardanti le modifiche del giorno passato.

Per evitare ulteriori problemi conviene mettere in atto delle politiche di prevenzione, ovvero di implementare delle procedure volte a salvaguardare i dati:

  • politiche di log: si deve tener traccia delle modifiche fatte al Database in modo da poter ricostruire i cambiamenti in caso di guasti
  • politiche di backup: salvare il contenuto del Database (o di un sottoinsieme) su supporti diversificati riduce il richio di perdita dei dati

Un altro aspetto fondamentale della sicurezza dei dati riguarda la gestione delle operazioni sul Database; immaginiamo che durante una scrittura sul database ci sia un guasto alla rete. Cosa può succedere nel Database? Le modifiche sono state apportate tutte o solo una parte?
Se fosse così ci troveremmo di fronte ad uno stato non coerente perchè non rappresenterebbe la realtà: diventa quindi fondamentale l’uso (da parte ad esempio dei servizi) delle transazioni, ovvero di operazioni atomiche, che permettono perciò di passare da uno stato coerente all’altro.

Le proprietà di cui godono le transazioni, le cosidette proprietà Acide, sono:

  1. Atomicità: è la proprietà del tutto o niente, ovvero o le modifiche sono apportate per intero o non sono eseguite per niente
  2. Consistenza: l’esecuzione di una transazione preserva la consistenza del database
  3. Isolamento: ogni transazione è isolata dal resto del mondo e non deve essere influenzata da altri cambiamenti di altre transazioni a lei concorrenti
  4. Durabilità: le modifiche apportate da una transazione rimangono anche dopo danni al database

Garantire perciò che tutte le operazioni (che in altri termini gestiscono il ciclo di vita) sul Database rispettino queste quattro proprietà, unito ad un insieme di politiche di sicurezza preventiva (backup e logging), la maggior sicurezza data da delle copie aggiornate (ridondanza) e un controllo sicuro degli accessi garantisce che la base di dati è sicura, o comunque preparata nel migliore dei modi a danni accidentali o meno.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *