SI 04-05 1
Sicurezza della Base Sicurezza della Base di Dati di Dati
Mariagrazia FuginiMariagrazia Fugini
Barbara PerniciBarbara Pernici
Politecnico di MilanoSistemi Informativi 2004-2005
SI 04-05 2
Argomenti
• Problemi di sicurezza e requisiti• Politiche di sicurezza, DAC/ MAC• Tipi di controlli e modelli per le basi dati • Architettura di un DBMS con caratteristiche di
sicurezza
SI 04-05 3
Requisiti di protezione delle bd Protezione da accessi impropri (letture) Protezione da inferenza Integrità della bd:
Protezione da modifiche improprie Integrità operativa dei dati (concurrency manager, locking back up e
recovery) Integrità semantica (vincoli di integrità)
Accountability e auditing (log) Autenticazione utente Individuazione e Gestione protetta di dati sensitibili Protezione multilivello (in ambienti militari/governativi) Confinamento: per evitare trasferimento di informazione lungo
canali autorizzati (es. scambio file) canali di memoria canali covert (di cui non è palese l’esistenza)
SI 04-05 4
Controlli sui dati1) Controlli di flusso: da oggetto X (autorizzato) a oggetto Y (non autorizzato)
eseguite in sequenza: READ X , WRITE Y trasferiscono informazione dall’oggetto X all’oggetto Y
2) Controlli di inferenza• accesso indiretto
SELECT X FROM r WHERE Y = value
Rivela che esistono n-tuple in r che verificano la condizione Y= value
Se utente non è autorizzato su Y, riesce comunque a leggere il data set Y
• dati correlati z = t * k con t,k visibili, z non visibile
z può essere inferito tramite la relazione aritmetica ‘*’
• dati mancanti conoscere il nome di un oggetto anche senza poterne vedere il contenuto
Inferenza Statistica: prevenuta mediante perturbazione dati controllo sulle query (sulle dimensioni del query set)
SI 04-05 5
ProcedurediControllo
PolitichediSicurezza
richiestadiaccesso
RegolediAccesso
accessonegato
accessopermesso
modificadella richiesta
3) Controlli di accesso
SI 04-05 6
Controlli di accesso: politiche Insieme di regole per limitare gli accessi:
Pattern di Regola <soggetto, privilegio, oggetto> Policies:
• privilegio minimo (need-to-know)• privilegio massimo (per favorire scambio di informazioni, es. in
ambienti di ricerca – Unix è nato così)• amministrazione centralizzata o decentralizzata (ownership degli utenti)• amministrazione gerarchica decentralizzata/• autorizzazione cooperativa (sono richieste autorizzazioni congiunte per
esguire operazioni, principio del binding of duties)• politiche di delega dei privilegi (in sistemi discrezionali, tramite
operazione GRANT)
Sistemi aperti vs chiusi (quasi tutti sono chiusi)
SI 04-05 7
richiesta di accesso
esiste una regolache autorizza l’accesso?
sì no
accessopermesso
accessonegato
RegolediAccesso
accessiautorizzati
Controllo accessi: sistema chiuso
SI 04-05 8
esiste una regolache nega l’accesso?
no si
accessopermesso
accessonegato
RegolediAccesso
accessinegati
richiesta di accesso
Controllo accessi: sistema aperto
SI 04-05 9
Controllo di accesso discrezionale
• Gli utenti amministrano i dati che possiedono (concetto di proprietario)
• Il proprietario dei dati può autorizzare (GRANT) altri utenti all’accesso
• Il proprietario può definire il tipo di accesso da concedere ad altri (lettura, scrittura, esecuzione)
• Accessi selettivi (basati su nome, contenuto, parametri di sistema, storia, aggregazione di dati)
SI 04-05 10
Controllo di accesso discrezionale
Richiesta di
accesso Regole di
autorizzazione
La richiesta è conforme
alle regole di autorizzazione?
no sì
Accesso negato
il predicato P della regola è
soddisfatto?
no sì
Accesso negato Accesso autorizzato
SI 04-05 11
Controllo di accesso mandatorio
Per basi di dati con dati sensitivi (es., governative, militari) DAC non è sufficiente (per esempio, non si puà controllare il flusso da oggetto X a oggetto Y)
Informazioni vitali, diversi livelli di sensitività, controlli sul flusso di dati e sul rilascio di dati, controlli sugli utenti
Attacchi sofisticati da parte di utenti determinati (e.g., Cavalli di Troia)
Politiche basate su classificazione di dati e utenti: Multilevel Access Control (MAC)
SI 04-05 12
Controllo di accesso mandatorio Classificazione dei dati (livello di sensitività) Classificazione dei soggetti (clearance) Classe di sicurezza:
<componente gerarchica, insieme di categorie> Ordinamento (parziale) tra le classi di sicurezza (relazione
domina) I meccanismi di sicurezza devono garantire che tutti i soggetti
abbiano accesso solo ai dati per cui possiedono la clearance appropriata (regole soggetti-oggetti)
Non si possono propagare privilegi (No Grant)
SI 04-05 13
Controllo di accesso mandatorio Richiesta di
accesso Assiomi di sicurezza
Classi di sicurezza
La richiesta è conforme di soggetti/oggetti
agli assiomi della politica
mandatoria ?
sì no
Accesso autorizzato Accesso negato
SI 04-05 14
MAC: Classificazione Livelli di classificazione (Sensitività dati e clearance utenti):
Unclassified, Confidential, Secret, Top Secret
Categorie: es. Nuclear, NATO, Intelligence es. Produzione, Personale, Engineering TS
S
C
U
(Secret, {Nuclear, Intelligence})
(Secret, {Nuclear})
(Confidential, {Nuclear})Legenda: è contenuto in
SI 04-05 15
Sistemi mandatori: esempioLivelli di classificazione: 0 = Unclassified 1 = Confidential 2 = Secret 3 = Top SecretCategorie: Nuclear, Nato, Intelligence Produzione, Personale, Engineering, Amministrazione
(per m aree, 2m possibili categorie)
Relazione di ordinamento parziale sulle Security Classes (SC) : SC = (A,C) con A livello di classificazione, C categoria
date SC = (A,C) e SC’ = (A’,C’) SC <= SC’ iff A<= A’ e C inC’Esempi: (2, Nuclear) <= (3,(Nuclear,Nato)) verificata (2, (Nuclear,Nato) <= (3,Nato) non verificata
SI 04-05 16
Tipi di controllo accessi alle bd
SI 04-05 17
R
Accesso basato sul nomeEMP
PERSONNEL MANAGER
MAILROOM CLERK
name salary manager dept
B 10k J comp
A
eval skill
g netw
20k J fin s acc
15k H comp m PC
D 18k J admin m payroll
SI 04-05 18
Accesso basato sul contenuto
EMPVISTE
John può vedere solo gli impiegati del reparto 50
GRANT SELECT ON D50 TO John
CREATE VIEW D50 (Codice, Nome,Qualifica) AS
SELECT Codice, Nome, Qualifica
FROM EMP
WHERE Codice_Reparto=50;
JOHN
SI 04-05 19
Accesso basato sul tipo di accesso
SI 04-05 20
MODELLI DI SICUREZZA
SI 04-05 21
Modelli di sicurezza per i dati
Modelli discrezionali propagazione privilegi ownership (grant/revoke)
Modelli mandatori soggetti oggetti classificazione e etichettatura
SI 04-05 22
DISCREZIONALI: BASATI SU MATRICE DI ACCESSO MATRICE DI ACCESSO ACL, CAPABILITIES MODELLI BASATI SUI RUOLI
MANDATORI: MODELLI PER SISTEMI MULTILIVELLO BELL-LA PADULA (per sistemi operativi) SEA-VIEW (per basi di dati)
SI 04-05 23
Modello a matrice di accesso
Basato su Matrice A[s,o] = p con s soggetto (programma, processo,utente) o oggetto (programma,file,area di memoria
centrale) p privilegio di accesso (read,write,execute,call)
insieme dei soggetti e oggetti possono essere non disgiunti
pensato per i sistemi operativi; matrice è sparsa (occupa memoria), per le bd servono anche condizioni di accesso (es. per vincoli sul contenuto)
SI 04-05 24
Matrice di accesso: implementazione
ACL ogni colonna della matrice di accesso è memorizzata con
l’oggetto corrispondente a quella colonna (molto efficiente: ACL viene aperta con l’oggetto, es. File)
Capability ogni riga della matrice di accesso è memorizzata con il
soggetto corrispondente a quella riga (ogni soggetto ha un insieme di capabilities, o ticket di autorizzazione
Tabella (triple, quadruple, in genere n-uple) generalmente utilizzato in DBMS
SI 04-05 25
Classe di sistemi : contenenti dati a diversi livelli di sensitività che permette l'accesso contemporaneo ai dati
da parte di utenti con diverse autorizzazioni (clearances) e need-to-know
che impedisce agli utenti accessi non autorizzati in base a regole di confronto livello/clearance
Nati in ambienti militari o security-critical, oggi sono in fase di ricerca avanzata per applicazioni industriali e commerciali e per sistemi di comunicazioni
SISTEMI MULTILIVELLO
SI 04-05 26
Simple Security (SS) Property (per la lettura): uno stato soddisfa la proprietà SS se, per ogni soggetto s che ha accesso READ, la clearance di s domina la classificazione dell'oggetto o:
(s,o,x) soddisfa la proprietà SS relativa a F se x=READ e Fs (s) domina Fo(o)
Condensata in No Read Up
SI 04-05 27
Star (*) Property (confinement property): per la scrittura un s non può avere accesso WRITE a un o a meno
che la classificazione di o sia >= livello di sicurezza corrente di s: (s,o,x) è permessa se x=WRITE e Fc(s) <= Fo(o)
s non può avere accesso READ/WRITE a un oggetto o a meno che la classificazione di o eguagli il livello di sicurezza corrente del soggetto:
(s,o,x) è permessa se x=READ-WRITE e Fc(s) = Fo(o)
Si condensa in No Write Down
SI 04-05 28
SI 04-05 29
Progetto di DBMS sicuri DBMS vs. SO
granularità oggetti protetti correlazioni semantiche dei dati metadati molteplicità di tipi di dati oggetti statici e dinamici transazioni (multilivello in MAC) ciclo di vita dei dati
SI 04-05 30
Progetto di DBMS sicuri Meccanismi di sicurezza nei DBMS: requisiti
diverse granularità diversi modi di accesso e tipologie di controllo
(covert channels, controlli di inferenza, controlli di flusso)
polinstanziazione in MAC autorizzazione dinamica uniformità dei meccanismi assenza di back doors prestazioni ragionevoli
SI 04-05 31
Sicurezza nei DBMS Regole di accesso Protezione e gestione delle autorizzazioni nei
DBMS Meccanismi di sicurezza nei DBMS Autorizzazioni in RDBMS Basi di dati multilivello Architetture di DBMS sicuri
SI 04-05 32
accesso
accesso
Transazioni come Soggetti/Oggetti
SI 04-05 33
Esempi di regole di accesso Modello a 3 componenti: <subj,obj,right> nato per SO, esteso alle bd Modello a 4 componenti: <subj,obj,right, constraint> vincoli dipendenti dal
contenuto subj obj right constraint
mgr EMP ALL = mgr of NAME
NAME READ NOT mgr of NAME
ADDRESS
employee NAME READ,UPDATE employee=NAME
AGE
ADDRESS
NAME READ mgr(NAME)=
AGE mgr(employee)
ADDRESS
SI 04-05 34
Regole di accesso per le bd Modello a 5 componenti: <gtor, gtee, obj, right,
constraint, prop_rule>
prop-rule: nessuna propagazione: solo privilegio USE propagazione incondizionata (UP): privilegi USE e
PROPAGATE propagazione limitata (BP): orizzontale/verticale problema della modifica delle regole di accesso
(REVOCA)
SI 04-05 35
Authorization Tablegtor gtee obj right constraint prop rule
creator creator EMP ALL NO UP
creator mgr EMP ALL =mgr(NAME) BPmgr employee NAME READ mgr(NAME) BP AGE =mgr(employee) ADDRESS
creator employee NAME READ employee=NAME NO AGE UPDATE ADDRESS
SI 04-05 36
Regole e Autorizzazioni Modalità di specifica di autorizzazioni di accesso
ai dati nella BD: regole di accesso nel profilo utente nella descrizione dell’oggetto
Meccanismi per la specifica di autorizzazioni: Query Language /Data Manipulation Language (DML)
del DBMS Data Definition Language (DDL) del DBMS Comandi di SO
SI 04-05 37
Regole e Autorizzazioni In RDBMS
GRANT INSERT, SELECT ON EMP TO John Viste: EMP(Codice,Nome,Codice_Reparto,Mansione,Qualifica)
CREATE VIEW D50(Codice,Nome,Qualifica) AS SELECT Codice,Nome,Qualifica FROM EMP WHERE Codice_Reparto=50
GRANT SELECT ON D50 TO John
SI 04-05 38
Query modificationGRANT SELECT ON EMP TO John WHERE Stipendio<1500
JohnSELECT *FROM EMP
DBMSSELECT *FROM EMPWHERE Stipendio < 1500
SI 04-05 39
Esempio Oracle In Oracle:
soggetti: utenti, gruppi, ruoli gruppo PUBLIC ruoli definiti dall’amministratore (comando GRANT) organizzazione gerarchica dei ruoli (GRANT sui ruoli) comando SET ROLE per assegnazione di ruoli ad
applicazioni (abilitazione attraverso password) oggetti: BD, tabelle, viste, cataloghi, procedure,
etichette a livello di relazione
SI 04-05 40
Oracle modi di accesso: select,insert,delete,update,alter, drop,
index, reference, execute privilegi:
connect: collegamento alla BD e esecuzione di operazioni autorizzate su tabelle
resource: creazione di tabelle e concessione di autorizzazioni ad altri
DBA: tutti i privilegi (anche creazione di user account)
SI 04-05 41
Oracle audit: comando per l’amministratore; audit trail
(SO/DB) amministrazione delle autorizzazioni:
decentralizzata qualunque utente può essere autorizzato a creare
una tabella utente che crea tabella ne è il proprietario il proprietario ha tutti i privilegi e può concedere
(GRANT) privilegi sulla tabella eventualmente con GRANT OPTION
solo il proprietario può cancellare la tabella
SI 04-05 42
Autorizzazioni dinamiche: problema della revoca Ogni utente che possiede un privilegio P con GO su tabella T
può revocare P Un utente autorizzato può revocare solo le autorizzazioni a lui
concesse ------>
problema: autorizzazioni concesse con GO richiedono
REVOCA RICORSIVA (cascading) Revoca di P su T all’utente Y da parte dell’utente X
---------------> è come se tutte le autorizzazioni per P su T concesse da X a Y non fossero mai state concesse
Uso di timestamp associati alle autorizzazioni revocate
SI 04-05 43
Basi di dati multi-livello Regole per la classificazione degli elementi nella BD Multi-Level Relation (MLR)
R(A1,C1,...,An,Cn, TC)
SI 04-05 44
2.21 Esempio di relazione multilivello
Name CName Department CDepartment Salary Csalary TC
Bob S Dept1 S 10K S S
Ann S Dept2 S 20K TS TS
Sam TS Dept2 TS 30K TS TS
SI 04-05 45
2.22 a) Istanza SecretName CName Department CDepartment Salary Csalary TC
Bob S Dept1 S 10K S S
Ann S Dept2 S -- S S
SI 04-05 46
2.22 b) Istanza TopSName CName Department CDepartment Salary Csalary TC
Bob S Dept1 S 10K S S
Ann S Dept2 S 20K TS TS
Sam TS Dept2 TS 30K TS TS