Sei sulla pagina 1di 65

Dati Sensibili

Dati Sensibili
Molti DB contengono quelli che si definiscono Dati Sensibili Come definizione pratica diciamo che i dati sensibili sono quelli che non dovrebbero essere resi pubblici
Determinare quali dati siano sensibili dipende dal singolo DB e dalla specifica applicazione

Dati Sensibili
Due casi estremi:
Nessun dato sensibile (p.es. catalogo di una biblioteca) Tutti i dati sensibili (p.es. database militari)

Questi casi sono i pi semplici da gestire:


Accesso consentito allintero DB Accesso negato allintero DB

Dati Sensibili
Il caso pi interessante quello in cui alcuni dati sono sensibili mentre altri non lo sono
Inoltre possibile che dati diversi abbiano livelli di sensibilit diversi

Studente
Cognome Sesso

Esempio
Razza Aiuto Multe Droghe Dormitorio

Adams Bailey Chin


Dewitt Earhart Fein Groff Hill Koch Liu Majors

M M F
M F F M F F F M

C B A
B C C C B C A C

5000 0 3000
1000 2000 1000 4000 5000 0 0 2000

45 0 20
35 95 15 0 10 0 10 0

1 0 0
3 1 0 3 2 1 2 2

Holmes Grey West


Grey Holmes West West Holmes West Grey Grey

Esempio
Campi non sensibili: Nome, Dormitorio Campi sensibili: Aiuto, Multe, Droghe
Campi parzialmente sensibili: Sesso, Razza

Dati sensibili
Sensibili per Contenuto: Il valore dellattributo sensibile
es. localit di postazioni missilistiche

Sensibili per Provenienza: la fonte dei dati pu necessitare di riservatezza


es. messaggi di un informatore la cui identit segreta verrebbe compromessa se i dati venissero divulgati

Dichiarati sensibili: lamministratore ha dichiarato che i dati sono sensibili


es. donatore anonimo

Dati sensibili
Parti sensibili: attributo o record.
Un intero record o solo un certo attributo possono risultare sensibili es. campo stipendio, record che descrive una missione segreta

Sensibili in relazione a informazioni divulgate in precedenza:


Alcuni dati diventano sensibili in funzione di altri dati es. la latitudine di una postazione segreta diventa sensibile se si conosce anche la longitudine

Come proteggere i dati sensibili?


Decidere come divulgare i dati sensibili pu non essere semplice Si possono ottenere informazioni anche se i dati sensibili non vengono mostrati A volte anche alcune caratteristiche dei dati devono essere considerati sensibili

Studente
Cognome Sesso

Esempio
Razza Aiuto Multe Droghe Dormitorio

La seguente query non mostra il valore dellattributo droghe ma tutti coloro presenti nel risultato fanno uso di droghe Pu essere necessario proteggere un valore sensibile anche se questo non viene mostrato in modo esplicito

SELECT Cognome, Dormitorio FROM Studente WHERE Droghe>0

Tipi di divulgazione
Dati esatti:
Divulgazione del valore esatto di un dato sensibile La divulgazione potrebbe avvenire per una richiesta esplicita Oppure i dati sensibili potrebbero essere restituiti insieme ad altri dati non sensibili Oppure il sistema potrebbe restituire i dati sensibili per errore

Tipi di divulgazione
Limiti:
Indicazione che un valore sensibile compreso tra due valori L e H In questo caso con una ricerca dicotomica si potrebbe ottenere un valore molto prossimo a quello esatto In alcuni casi semplicemente sapere che un valore al di sopra (o al di sotto) di un certo limite rappresenta una violazione della sicurezza

Tipi di divulgazione
Risultato negativo:
A volte si pu ottenere un informazione sapendo che il valore cercato non pari ad un certo valore Ad es. se sappiamo che il numero di condanne penali di una certa persona non zero sappiamo che la persona in questione stata condannata (non sappiamo quante volte, ma )

Tipi di divulgazione
Esistenza:
A volte la sola esistenza di un attributo sensibile Ad es. un responsabile del personale potrebbe desiderare che non si sappia che la durata delle interurbane dei dipendenti viene monitorata Quindi la scoperta del campo interurbane in una tabella con i dati del personale rivelerebbe dati sensibili

Tipi di divulgazione
Valore probabile:
A volte si pu determinare la probabilit di un certo evento Vogliamo sapere se Tizio iscritto al partito X Facciamo due query:
Quante persone risiedono allindirizzo ABC (indirizzo di Tizio)? Risposta: 4 Quante persone risiedono allindirizzo ABC e sono iscritte al partito X? Risposta: 1 Abbiamo il 25% di probabilit che Tizio sia iscritto al partito X

Protezione dei dati sensibili


Per aumentare la protezione dei dati sensibili si potrebbe pensare di usare politiche sempre pi restrittive in maniera da proteggere meglio i dati
Ad esempio si potrebbe pensare di rifiutare qualunque query che faccia riferimento ad un campo sensibile Questo per limiterebbe anche le interrogazioni legittime

Protezione dei dati sensibili


Abbiamo due esigenze contrastanti:
Nascondere i dati per evitare di fornire dati sensibili (Sicurezza) Divulgare i dati non sensibili quanto pi possibile per consentire lutilizzo corretto dei dati da parte delle persone autorizzate (Precisione)

Sicurezza contro Precisione


Nascosto-non divulgato Non pu essere dedotto dalle query Pu essere dedotto dalle query Divulgato liberamente
Nascondere per massima sicurezza

Rivelare per massima precisione

Inferenza

Inferenza
Linferenza un metodo per dedurre o derivare dati sensibili da dati non sensibili
Riconsideriamo lesempio del database sugli studenti e consideriamo sensibili i campi Aiuto, Multe e Droghe

Studente
Cognome Sesso

Esempio
Razza Aiuto Multe Droghe Dormitorio

Adams Bailey Chin


Dewitt Earhart Fein Groff Hill Koch Liu Majors

M M F
M F F M F F F M

C B A
B C C C B C A C

5000 0 3000
1000 2000 1000 4000 5000 0 0 2000

45 0 20
35 95 15 0 10 0 10 0

1 0 0
3 1 0 3 2 1 2 2

Holmes Grey West


Grey Holmes West West Holmes West Grey Grey

Attacco diretto
La seguente query rappresenta un tentativo diretto di accedere ad un dato sensibile
SELECT Cognome FROM Studente WHERE Sesso=M AND Droghe=1
Tale query potrebbe essere rifiutata dal DB perch le tuple del risultato sono quelle con uno specifico valore su un attributo sensibile

Attacco diretto
La seguente query meno ovvia:
SELECT Cognome FROM Studente WHERE (Sesso=M AND Droghe=1) OR (SessoM AND SessoF) OR (Dormitorio = Ayres)

Apparentemente la query non seleziona solo tuple con uno specifico valore su un campo sensibile In realt la seconda e la terza condizione non sono mai soddisfatte

Attacco diretto
La seguente query meno ovvia:
SELECT Cognome FROM Studente WHERE (Sesso=M AND Droghe=1) OR (SessoM AND SessoF) OR (Dormitorio = Ayres)

Per capirlo il DBMS dovrebbe capire che ci sono due soli possibili valori per Sesso E che non c alcuna tupla con valore di Dormitorio pari Ayres

Attacco diretto
Una regola a volte utilizzata per decidere se riportare i dati di una query quella di n elementi sul k percento:
I risultati non vanno divulgati se un piccolo numero di elementi costituisce pi del k% del risultato Nellesempio precedente una sola persona costituiva il 100% del risultato

Attacco indiretto
Alcune organizzazioni che detengono dati sensibili, divulgano soltanto dati statistici
Dati ottenuti come somme medie e conteggi Lattacco indiretto cerca di dedurre un dato sensibile sulla base di uno o pi dati statistici intermedi

Attacco indiretto: Somma


La seguente query sembra innocua poich restituisce soltanto valori aggregati:
SELECT Sesso, Dormitorio, SUM(Aiuto) FROM Studente GROUP BY Sesso, Dormitorio

Vediamo per il risultato

Attacco indiretto: Somma


Sesso M M M F F F Dormitorio Holmes Grey West Holmes Grey West SUM(Aiuto) 5000 3000 4000 7000 0 4000

Il risultato ci rivela che nessuna donna nel dormitorio Grey riceve aiuti finanziari Divulgazione di tipo risultato negativo

Attacco indiretto: Conteggio


Il conteggio pu essere combinato con la somma per produrre risultati ancora pi rivelatori:
SELECT Sesso, Dormitorio, COUNT(*) FROM Studente GROUP BY Sesso, Dormitorio

Attacco indiretto: Conteggio


Sesso M M M F F F Dormitorio Holmes Grey West Holmes Grey West COUNT(*) 1 3 1 2 1 3

Questo risultato combinato con il precedente ci dice che i due uomini nei dormitori Holmes e West ricevono un aiuto finanziario rispettivamente di 5000 e 4000

Attacco indiretto: Media


La media pu permettere di ottenere informazioni esatte se utilizzata in combinazione con il conteggio Se riesco ad ottenere la media su un insieme formato da un solo elemento, riesco a conoscere il valore esatto per quellelemento Usata opportunamente permette anche di aggirare eventuali controlli sulla numerosit dellinsieme su cui viene calcolata

Attacco indiretto: Media


Supponiamo che la media non venga divulgata se il numero di elementi su cui calcolata 1
SELECT AVG(Aiuto) FROM Studente WHERE Dormitorio=Holmes
AVG(Aiuto) 4000

SELECT AVG(Aiuto) FROM Studente WHERE Dormitorio=Holmes AND Sesso=F


AVG(Aiuto) 3500

Attacco indiretto: Media


Supponiamo che la media non venga divulgata se il numero di elementi su cui calcolata 1
SELECT COUNT(*) FROM Studente WHERE Dormitorio=Holmes
COUNT(*) 3

SELECT COUNT(*) FROM Studente WHERE Dormitorio=Holmes AND Sesso=F


COUNT(*) 2

Attacco indiretto: Media


AVG(Aiuto) 4000 Aiuto finanziario medio COUNT(*) 3 Numero di persone AVG(Aiuto) 3500 Aiuto finanziario medio alle donne COUNT(*) 2 Numero di donne

a1 a2 a3 4000 3

a1 a2 3500 2

a3 5000
Aiuto finanziario dellunico uomo nel dormitorio Holmes

Attacchi di Tracker
Abbiamo visto che uno delle tecniche di protezione dallinferenza consiste nel non divulgare i dati se un piccolo numero di elementi fornisce molta informazione
possibile aggirare questa limitazione effettuando pi query lecite La combinazione dei risultati delle query ci d linformazione sensibile

Attacchi di Tracker: esempio


Consideriamo la seguente query
SELECT COUNT(*) FROM Studente WHERE Sesso=F AND Razza=C AND Dormitorio=Holmes

Attacchi di Tracker: esempio


Cognome Sesso Razza Aiuto Multe Droghe Dormitorio

Adams Bailey Chin


Dewitt Earhart Fein Groff Hill Koch Liu Majors

M M F
M F F M F F F M

C B A
B C C C B C A C

5000 0 3000
1000 2000 1000 4000 5000 0 0 2000

45 0 20
35 95 15 0 10 0 10 0

1 0 0
3 1 0 3 2 1 2 2

Holmes Grey West


Grey Holmes West West Holmes West Grey Grey

Attacchi di Tracker: esempio


Il dato non viene divulgato in quanto dominato da una sola tupla
Osserviamo per che il valore in questione pu essere calcolato contando tutte le donne che non sono di razza C o che non risiedono nel dormitorio Holmes

Attacchi di Tracker: esempio


SELECT COUNT(*) FROM Studente WHERE Sesso=F SELECT COUNT(*) FROM Studente WHERE Sesso=F AND (Razza <> C OR Dormitorio <> Holmes)
COUNT(*) 5

COUNT(*) 6

Vulnerabilit del sistema lineare


Lattacco di tracker un caso specifico di una vulnerabilit pi generica in cui sfruttando algebra, logica e un po di fortuna si riesce ad ottenere tramite diverse query dei valori protetti

Vulnerabilit del sistema lineare


Riconsideriamo lesempio di prima, la query protetta del tipo:
q = COUNT((Sesso = F)(Razza = C)(Dormitorio = Holmes))

in base allalgebra riscriviamo la query come:


q = COUNT(Sesso = F) COUNT((Sesso = F) ((Razza = C) (Dormitorio = Holmes)))

in pratica q = c1 riscritta come q = c2-c3

Vulnerabilit del sistema lineare


Pi in generale potremmo avere
q1=c1+c2+c3+c4+c5 q2=c1+c2+c4 q3=c3+c4 q4=c4+c5 q5=c2+c5

Nessuna delle query rivela apertamente uno dei valori ci Risolvendo il sistema possiamo per conoscerli tutti

Protezione dallinferenza
Esistono alcune tecniche per combattere linferenza:
Analisi delle query Soppressione: valori sensibili non forniti Occultamento: la risposta vicina ma non corrisponde esattamente al valore effettivo

Soppressione e occultamento
Un esempio di soppressione la gi citata regola n elementi sul k percento Alcune considerazioni:
Pu essere necessario sopprimere altri dati per evitare che quelli sensibili siano ottenibili per differenza

Esempio
Holmes M F Totale 1 2 3 Grey 3 1 4 West 1 3 4 Totale 5 6 11

Numero di residenti per sesso e dormitorio

Esempio
Holmes M F Totale 1 2 3 Grey 3 1 4 West 1 3 4 Totale 5 6 11

Numero di residenti per sesso e dormitorio

Esempio
Holmes M F Totale 2 3 Grey 3 4 West 3 4 Totale 5 6 11

Numero di residenti per sesso e dormitorio

Attenzione: i valori soppressi possono essere dedotti per differenza

Risultati combinati
Per evitare di divulgare dati sensibili possibile combinare pi righe o colonne
Uso di droghe 0 M F 1 2 1 1 2 2 1 2 3 2 0

Numero di studenti per sesso e uso di droghe

Risultati combinati
Per evitare di divulgare dati sensibili possibile combinare pi righe o colonne
Uso di droghe 0o1 M F 2 4 2o3 3 2

Numero di studenti per sesso e uso di droghe

Risultati combinati
Analogamente risultati relativi agli aiuti finanziari potrebbero essere mostrati per intervalli: 0-1999, 2000-3999, 4000 e oltre

Campione casuale
La query viene effettuata su un campione casuale dei dati
Il campione deve essere abbastanza ampio da rappresentare lintera popolazione In questo modo i dati sono rappresentativi dellintera popolazione ma riducono la possibilit di attacchi statistici

Perturbazione casuale dei dati


A volte pu essere utile perturbare i valori del DB con un piccolo errore.
Per ogni xi che rappresenta il valore vero dellattributo i si pu generare un piccolo errore ei e aggiungerlo ad xi per calcolare dati statistici Valori aggregati quali la media o la somma produrranno valori vicini a quelli veri ma non esatti

Inferenza: commenti
Le varie soluzioni che abbiamo visto tendono a proteggere un DB dal problema dellinferenza Al tempo stesso per limitano anche le informazioni fornite agli utenti che intendano fare un uso legittimo dei dati

Aggregazione
Un particolare tipo di inferenza e quello dellaggregazione Per aggregazione si intende lindividuazione di dati sensibili mettendo insieme dati non sensibili
Es: il nome di un impiegato ed il suo stipendio
nessuno dei due dati sensibile di per s, ma lo sono se messi insieme

Aggregazione
Evitare laggregazione difficile perch bisogna tenere conto delle informazioni gi in possesso dellutente Se un utente conosce il nome di un dipendente non devo comunicargli il salario e viceversa Tenere traccia delle informazioni in possesso di ciascun utente pu essere proibitivo Inoltre utenti diversi potrebbero condividere le informazioni in loro possesso

ESERCITAZIONE SULLINFERENZA

Esercizio
Con riferimento alla tabella dipendenti, in allegato, trovare lo stipendio di Mister X con un attacco indiretto di tipo media. Si hanno a disposizione le seguenti informazioni:
a) Mister X un uomo con pi di 30 anni e non di Roma; b) i rimanenti dipendenti maschi con pi di 30 anni sono tutti romani; c) nessun dipendente donna di Roma.

Esercizio
Si tenga conto, inoltre, che viene applicata la seguente politica di protezione dei dati sensibili:
1. il campo stipendio non pu essere divulgato direttamente e non pu essere utilizzato come criterio di filtraggio; 2. i criteri di filtraggio possono essere eta, sesso, e citta; 3. non possono essere utilizzati pi di due criteri di filtraggio in una singola interrogazione; 4. consentita la divulgazione di medie e conteggi a patto che si riferiscano ad almeno tre tuple.

Tabella dipendenti
cf cognome nome eta citta sesso ruolo stipendio

Rossi Neri Bianchi


Gialli Verdi Rossi Pieri Belli Bianchini Brutti

Mario Luigi Mario


Federica Anna Claudia Alessandro Ilaria Francesca Elena

36 39 35
36 38 31 37 33 32 32

Roma Roma Roma


Firenze Milano Verona Torino Venezia Napoli Perugia

M M M
F F F M F F F

impiegato ricercatore ricercatore


impiegata impiegata segretaria dirigente commercialista dirigente impiegata

1200 1700 1400


1200 1300 1000 4000 2000 3000 1200

Svolgimento strategia base


Una possibile strategia di attacco prevede lindividuazione di due insiemi di tuple U e V tali che:
I. ciascun insieme contiene singolarmente almeno tre tuple (vincolo 4.); II. ciascun insieme deve poter essere individuato usando al pi due condizioni di filtraggio (vincolo 3.) basate sugli attributi eta, sesso, e citta (vincolo 2.) III. la differenza insiemistica U \ V deve contenere soltanto mister X; ovvero {Mister X} = U \ V IV. linsieme V deve essere un sottoinsieme di U: V U

Svolgimento strategia base


Una volta individuati due insiemi U e V, soddisfacenti le condizioni I, II, III e IV, ponendo:
mU = media degli stipendi dei dipendenti in U; cU = numero dei dipendenti in U; mV = media degli stipendi dei dipendenti in V; cV = numero dei dipendenti in V;

si ottiene che
stipendioMister X = mU cU mV cV

Svolgimento individuazione di U e V
Si considerino i seguenti insiemi:
A: insieme dei dipendenti di sesso maschile (sesso = M); B: insieme dei dipendenti con pi di 30 anni (eta > 30); C: insieme dei dipendenti romani (citta = Roma);

si osservi che dalla (a) e dalla (b) risulta che


{Mister X} = (A B) \ C = (A B) \ (B C)

mentre dalla (c) si ha che C A

Svolgimento individuazione di U e V
pertanto risulta che
{Mister X} = (A B) \ (B C), e (B C) (A B)

quindi gli insiemi U e V sono:


U=AB V=BC

Svolgimento query SQL


Individuazione di mU e cU:
SELECT avg(stipendi), count(stipendi) FROM dipendenti WHERE sesso = M AND eta > 30;

Individuazione di mV e cV:
SELECT avg(stipendi), count(stipendi) FROM dipendenti WHERE eta > 30 AND citta = Roma;

Bibliografia
[PFL08] C. P. Pfleeger, S. L. Pfleeger. Sicurezza in Informatica. Pearson, Prentice Hall. [STA07] W. Stallings. Sicurezza delle reti. Pearson, Prentice Hall. [Wiki-it] http://it.wikipedia.org/wiki/ [Wiki-en] http://en.wikipedia.org/wiki/ [ISECOM] Institute for Security and Open Methodologies