La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Sicurezza della Base di Dati

Presentazioni simili


Presentazione sul tema: "Sicurezza della Base di Dati"— Transcript della presentazione:

1 Sicurezza della Base di Dati
Mariagrazia Fugini Barbara Pernici Politecnico di Milano Sistemi Informativi SI 04-05 1 1 1

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 dati 2) Controlli di inferenza accesso indiretto
1) 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 3) Controlli di accesso accesso negato richiesta di Procedure accesso
Controllo accesso permesso modifica della richiesta Politiche di Sicurezza Regole 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 Controllo accessi: sistema chiuso
richiesta di accesso esiste una regola che autorizza l’accesso? no accesso permesso negato Regole di Accesso accessi autorizzati SI 04-05

8 Controllo accessi: sistema aperto
richiesta di accesso Regole di Accesso esiste una regola che nega l’accesso? accessi negati no si accesso permesso accesso negato 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 8 13 13

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 14

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 es. Nuclear, NATO, Intelligence
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 9 15 15

15 Sistemi mandatori: esempio
Livelli di classificazione: 0 = Unclassified 1 = Confidential 2 = Secret 3 = Top Secret Categorie: 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 in C’ Esempi: (2, Nuclear) <= (3,(Nuclear,Nato)) verificata (2, (Nuclear,Nato) <= (3,Nato) non verificata SI 04-05

16 Tipi di controllo accessi alle bd

17 Accesso basato sul nome
EMP PERSONNEL MANAGER name salary manager dept eval skill B 10k J comp g netw s A 20k J fin acc R 15k H comp m PC payroll D 18k J admin m MAILROOM CLERK SI 04-05 6 11 11

18 Accesso basato sul contenuto
VISTE John può vedere solo gli impiegati del reparto 50 EMP CREATE VIEW D50 (Codice, Nome,Qualifica) AS SELECT Codice, Nome, Qualifica FROM EMP WHERE Codice_Reparto=50; GRANT SELECT ON D50 TO John 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
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 SISTEMI MULTILIVELLO 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 SI 04-05

26 Condensata in No Read Up
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 Si condensa in No Write Down
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 Sicurezza e DBMS 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 10 16 16

32 Transazioni come Soggetti/Oggetti
accesso accesso 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 NAME READ mgr(NAME)= AGE mgr(employee) 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 Table gtor gtee obj right constraint prop rule
creator creator EMP ALL NO UP creator mgr EMP ALL =mgr(NAME) BP mgr employee NAME READ mgr(NAME) BP AGE =mgr(employee) ADDRESS creator employee NAME READ employee=NAME NO AGE UPDATE 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 modification GRANT SELECT ON EMP TO John WHERE Stipendio<1500
FROM EMP DBMS WHERE 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 Dept S 10K S S Ann S Dept S 20K TS TS Sam TS Dept TS 30K TS TS SI 04-05

45 2.22 a) Istanza Secret Name CName Department CDepartment Salary Csalary TC Bob S Dept S 10K S S Ann S Dept S S S SI 04-05

46 2.22 b) Istanza TopS Name CName Department CDepartment Salary Csalary TC Bob S Dept S 10K S S Ann S Dept S 20K TS TS Sam TS Dept TS 30K TS TS SI 04-05


Scaricare ppt "Sicurezza della Base di Dati"

Presentazioni simili


Annunci Google