Protezione del database

Da Wikipedia, l'enciclopedia libera.

La protezione del database è l'attuazione della sicurezza informatica nel campo delle basi di dati. Il termine “sicurezza” viene spesso sostituito dal termine autorizzazione; si parla quindi di modelli di autorizzazione, gestione delle autorizzazioni, regole di autorizzazione. Si trattano solo misure di sicurezza logica per i dati, ossia le procedure che assicurano che l’accesso di dati avvenga solo da parte di soggetti autorizzati secondo le modalità (lettura, scrittura, ecc) autorizzate.

Requisiti di protezione[modifica | modifica sorgente]

Per una base di dati, i requisiti di protezione rispetto agli attacchi sono:

  • Protezione da accessi impropri;
  • Protezione da inferenza;
  • Integrità della base di dati: uso di tecniche di backup e recovery del sistema operativo e del DBMS;
  • Integrità semantica: uso di vincoli semantici e di software del tipo concurrency manager del DBMS
  • Accountability e auditing;
  • Autenticazione degli utenti;
  • Identificazione, protezione e gestione dei dati sensibili;
  • Protezione multilivello, adatta per basi di dati altamente sensibili, quali quelle militari e governative, in cui i dati sono etichettati e gli utenti identificati e autorizzati mediante clearance;
  • Sconfinamento: si tratta di confinare i programmi all’esecuzione entro precisi domini di esecuzione in modo che gli eventuali danni siano limitati a quel dominio. Si attuano per evitare il trasferimento di informazioni lungo canali autorizzati (ad esempio, nella scrittura di variabili condivise fra moduli software), canali di memoria (sia centrale sia di massa, ad esempio monitorando quando l’I/O sta svolgendo un programma si possono inferire informazioni), canali covert (si tratta di canali di flusso dati di cui i gestori, o i progettisti di sistema, sono a conoscenza; ad esempio, flussi di dati tra zone di memoria, che si scoprono solamente mediante una tecnica apposita detta covert channel analysis).

Controlli di sicurezza[modifica | modifica sorgente]

I controlli per una base di dati, rispetto agli attacchi, sono principalmente i seguenti:

  • Controlli di flusso. Si tratta di controllare le sequenze di operazioni del tipo READ X, WRITE Y che avvengono da un oggetto X (supponiamo autorizzato) verso un oggetto Y (supponiamo non autorizzato). Infatti, il valore contenuto in X viene copiato in Y.
  • Controlli di inferenza. Con operazioni di assegnamento tipo Y = f(X), in cui l’ insieme di dati Y (supponiamo non autorizzato) è ricavato applicando la funzione f all’insieme X (supponiamo autorizzato). Si possono allora verificare tre tipi di inferenza: accesso diretto, dati correlati, dati mancanti.
  • Controlli di accesso. Sono i tipi di controllo più diffusi per applicativi e dati e si basano sul controllo dell’identità dei soggetti, della modalità di accesso della richiesta (ad esempio scrittura, lettura), e dell’oggetto cui il soggetto chiede di accedere. Le modalità di accesso vengono anche dette privilegi di accesso e privilegi amministrativi, che permettono ad alcuni soggetti speciali di concedere e revocare privilegi di accesso alle risorse. I privilegi amministrativi vengono realizzati pressoché tutti in sistemi mediante le due operazioni GRANT e REVOKE.

I meccanismi di controllo dell’accesso sono parte del sistema operativo, del DBMS e di alcuni pacchetti add-on per la sicurezza, quali RACF o TOP-SECRET che, aggiunti al sistema operativo, permettono un controllo dell’accesso alle risorse più specifico. Questi controlli, se opportunamente personalizzati in un sistema, permettono di attuare varie politiche di controllo di accessi ai dati, quali la politica mondatoria, discrezionale, di autorizzazione cooperativa ecc.

Politiche di autorizzazione[modifica | modifica sorgente]

Le principali politiche di autorizzazione per una base di dati si possono riassumere come segue.

  • Privilegio minimo (need-to-know): ogni soggetto possiede i minimi privilegi sulle risorse, che gli permettono di portare avanti le proprie mansioni organizzative.
  • Privilegio massimo: in ambienti in cui la condivisione di informazioni deve essere massima, questa politica fornisce a tutti i soggetti la massima visibilità e il massimo accesso alle risorse; è nata con i primi sistemi Unix, sistemi rivolti allo sviluppo di applicazioni (in ambiente universitario).
  • Amministrazione centralizzata: esiste un unico amministratore di sistema che ha tutti i privilegi di accesso e amministrativi sulle risorse, e che può concedere in via temporanea, alcuni privilegi ad altri soggetti su specifiche risorse, e successivamente revocarli.
  • Amministrazione decentralizzata (ownership): ogni utente è proprietario delle proprie risorse e può concedere temporaneamente alcuni privilegi ad altri soggetti su risorse, e successivamente revocarli.
  • Autorizzazione cooperativa: è necessaria l’autorizzazione da parte di più soggetti per ottenere un privilegio di accesso.
  • Amministrazione gerarchica: esistono gerarchie di amministratori, ciascuno responsabile di una porzione della base di dati, collegati fra loro da privilegi GRANT/REVOKE di amministrazione.
  • Sistemi chiusi/aperti: in un sistema chiuso tutti i privilegi che non sono esplicitamente autorizzati sono negati, mentre in un sistema aperto a tutti i privilegi che non sono esplicitamente negati sono autorizzati. I sistemi chiusi forniscono un maggior grado di sicurezza e sono più adatti per basi di dati con requisiti di protezione elevati.
  • Controllo di accesso discrezionale: i soggetti possiedono l’ownership degli oggetti da loro creati e possono concedere e revocare a loro discrezione alcuni privilegi ad altri soggetti;
  • Controllo di accesso obbligatorio: i soggetti non possono propagare i privilegi di accesso. I controlli sono rigidi e basati sulla etichettatura dei dati (labeling) e sull’assegnamento di clearance.

Protezione a basi di dati governative e commerciali[modifica | modifica sorgente]

Le tecniche di protezione sono principalmente le seguenti:

  • partizionamento in basi di dati monolivello (con relativi problemi di ridondanza e incongruenza dati);
  • tecniche crittografiche per dati sensibili;
  • integrità lock: utilizzo dei checksum (somme di controllo) che, calcolate in funzione del valore del dato, vengono memorizzate e ricalcolate a ogni accesso al dato. Se la somma risulta cambiata, vuol dire che il dato è stato alterato in maniera impropria (controllo di integrità);
  • front end di sicurezza tra utente e DBMS;
  • views, ovvero definizione da parte dell'amministratore del database (DBA) di sottoschemi (viste) della base di dati che mostrano solo i dati accessibili.

Per tradurre le politiche in meccanismi, e per verificare la sicurezza, si usano modelli di sicurezza. Inoltre, gli aspetti cruciali del progetto di sistemi sicuri sono:

  • la scelta dell’ambiente hardware/software;
  • la protezione esterna (organizzativa, fisica);
  • la protezione interna (login, autenticazione, audit);
  • la sicurezza offerta dal sistema operativo;
  • l’affidabilità dei sistemi hardware/software;
  • gli aspetti amministrativi, umani, organizzativi, economici.

Per entrambe le basi di dati, quelle classificate/pubbliche e quelle commerciali, la sicurezza si basa su controlli organizzativi e strumenti hardware/software. Alcuni tentativi in corso consistono nell’applicare DBMS trusted e basi di dati commerciali. Tuttavia si hanno controlli rigidi, inadeguati, costosi, e comunque non efficaci contro attacchi quali cavalli di troia e teapdoor nel software applicativo. Per le basi governative, la principale soluzione consiste nel realizzare architetture DBMS multilivello, quali:

  • Integrità Lock (Mitre Corporation) disponibile nel prodotto Truedata;
  • Kernelized architecture (SRI) in Secure Oracle;
  • architettura a soggetti trusted (modello ASD-RTW) realizzata da Sybase, Rubix, Informix, Oracle, Dec.

Modelli di sicurezza[modifica | modifica sorgente]

I modelli di sicurezza o più propriamente di autorizzazione per le basi di dati, servono per esprimere formalmente le politiche di protezione di un dato sistema e verificare alcune proprietà di sicurezza che devono essere rispettate dal sistema che si implementa. I modelli si distinguono in due categorie:

  • modelli discrezionali, per sistemi con politiche di propagazione privilegi e di ownership (GRANT/REVOKE);
  • modelli mandatori, per sistemi con dati altamente sensitivi. Sono caratterizzati da soggetti con clearance, oggetti con etichettatura (label), procedure per la gestione sicura di classificazioni ed etichettature (uso di software trusted).

Problemi di sicurezza in basi di dati distribuite federate[modifica | modifica sorgente]

L'evoluzione dei sistemi informativi e delle basi di dati verso soluzioni globali distribuite, porta a nuove disponibilità di informazioni, ma nel contempo crea nuovi problemi di sicurezza. I problemi di sicurezza nelle federazioni di basi di dati, ovvero in sistemi in cui varie basi di dati pre-esistenti si aggregano a costituire un insieme di dati accessibili via rete, comprendono nuovi problemi di sicurezza, che nascono dal fatto che:

  • vari dati vengono messi in condivisione, mentre altri restano di pertinenza dei siti;
  • le politiche di accesso possono essere diverse per i vari siti;
  • gli utenti aumentano e possono lavorare sia in locale sia in remoto, con profili diversi.

Servono inoltre nuovi schemi di autenticazione, metodi per stabilire le politiche per il controllo dell’accesso, architetture distribuite che comprendono aspetti di sicurezza.

Si possono avere federazioni a bassa, media e ad alta autonomia. Le basi di dati federate presentano la necessità di:

  • cooperazione su larga scala tra basi di dati: questo comporta problemi di autonomia e condivisione informazioni;
  • conservazione dei sistemi informativi e delle basi di dati preesistenti: questo comporta problemi di eterogeneità e di interoperabilità.

Distribuzione e sicurezza[modifica | modifica sorgente]

La distribuzione dei dati può avvenire mediante partizionamento dei dati orizzontale e/o verticale, oppure mediante replicazione dei dati. I vantaggi della distribuzione sono una maggiore disponibilità e affidabilità del sistema e migliori tempi di accesso ai dati. Altri aspetti della distribuzione e quindi della sicurezza, sono:

  • molteplicità di amministratori locali;
  • eterogeneità e sicurezza.

Sicurezza nella basi di dati on-line su Web[modifica | modifica sorgente]

L’infrastruttura realizzata con la rete Internet offre l’opportunità di rendere disponibili informazioni di qualsiasi genere avendo come base l’interfaccia standard offerta dai browser. Entrando nel merito della specifica tematica della pubblicazione del contenuto di basi di dati tramite un server Web, esistono due possibili soluzioni architetturali:

  • architettura two tier, in cui il server Web accede direttamente ai dati mediante protocolli standard o protocolli proprietari per applicazioni specifiche;
  • architettura three tier, in cui un application server fa da intermediario fra le richieste di interrogazione del server Web e l’effettivo accesso ai dati.
sicurezza informatica Portale Sicurezza informatica: accedi alle voci di Wikipedia che trattano di sicurezza informatica