1 / 46

Sicurezza della Base di Dati

Sicurezza della Base di Dati. Mariagrazia Fugini Barbara Pernici Politecnico di Milano Sistemi Informativi 2004-2005. Argomenti. Problemi di sicurezza e requisiti Politiche di sicurezza, DAC/ MAC Tipi di controlli e modelli per le basi dati

eagan
Télécharger la présentation

Sicurezza della Base di Dati

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sicurezza della Base di Dati Mariagrazia Fugini Barbara Pernici Politecnico di Milano Sistemi Informativi 2004-2005

  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

  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)

  4. Controlli sui dati 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)

  5. 3) Controlli di accesso accesso negato richiesta di accesso Procedure di Controllo accesso permesso modifica della richiesta Politiche di Sicurezza Regole di Accesso

  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)

  7. Regole di Accesso esiste una regola che autorizza l’accesso? accessi autorizzati sì no accesso permesso accesso negato Controllo accessi: sistema chiuso richiesta di accesso

  8. Regole di Accesso Controllo accessi: sistema aperto richiesta di accesso esiste una regola che nega l’accesso? accessi negati no si accesso permesso accesso negato

  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)

  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

  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)

  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 clearanceappropriata (regole soggetti-oggetti) • Non si possono propagare privilegi (No Grant)

  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

  14. TS (Secret, {Nuclear, Intelligence}) S C (Secret, {Nuclear}) U (Confidential, {Nuclear}) MAC: Classificazione • Livelli di classificazione (Sensitività dati e clearance utenti): Unclassified, Confidential, Secret, Top Secret • Categorie: • es. Nuclear, NATO, Intelligence • es. Produzione, Personale, Engineering Legenda: è contenuto in

  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 inC’ Esempi: (2, Nuclear) <= (3,(Nuclear,Nato)) verificata (2, (Nuclear,Nato) <= (3,Nato) non verificata

  16. Tipi di controllo accessi alle bd

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

  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

  19. Accesso basato sul tipo di accesso

  20. MODELLI DI SICUREZZA

  21. Modelli di sicurezza per i dati • Modelli discrezionali • propagazione privilegi • ownership (grant/revoke) • Modelli mandatori • soggetti • oggetti • classificazione e etichettatura

  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)

  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)

  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

  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

  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

  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

  28. Sicurezza e DBMS

  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

  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

  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

  32. Transazioni come Soggetti/Oggetti accesso accesso

  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

  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)

  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 ADDRESS

  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

  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

  38. Query modification GRANT SELECT ON EMP TO John WHERE Stipendio<1500 John SELECT * FROM EMP DBMS SELECT * FROM EMP WHERE Stipendio < 1500

  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

  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)

  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

  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

  43. Basi di dati multi-livello • Regole per la classificazione degli elementi nella BD • Multi-Level Relation (MLR) R(A1,C1,...,An,Cn, TC)

  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

  45. 2.22 a) Istanza Secret Name CName Department CDepartment Salary Csalary TC Bob S Dept1 S 10K S S Ann S Dept2 S -- S S

  46. 2.22 b) Istanza TopS 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

More Related