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

Slides:



Advertisements
Presentazioni simili
Introduzione ai DBMS I Sistemi di Gestione di Basi di Dati sono strumenti software evoluti per la gestione di grandi masse di dati residenti su memoria.
Advertisements

© 2007 SEI-Società Editrice Internazionale, Apogeo Unità B1 Introduzione alle basi di dati.
Sicurezza e concorrenza nelle basi di dati
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità D3 Sicurezza e concorrenza nelle basi di dati.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità C1 Il linguaggio SQL.
Basi di dati attive Dispongono di un sottosistema integrato per definire e gestire regole di produzione (regole attive) Regole di tipo: Evento-Condizione-Azione.
Basi di Dati prof. A. Longheu
Amministrazione di una rete con Active Directory
Amministrazione di una rete con Active Directory.
Amministrazione di una rete con Active Directory
SQL Structured Query Language
Interfaccia del file system
Realizzazione del file system
La Modifica dei Dati in una Base Dati La modifica dei dati contenuti allinterno di una base dati è unoperazione delicata Infatti, ogni potenziale problema.
19/01/2014 Viste. 19/01/2014 Viste Le Viste Logiche o Viste o View possono essere definite come delle tabelle virtuali, i cui dati sono riaggregazioni.
Sicurezza della Base di Dati
Tipo Documento: unità didattica 1 Modulo 14 Compilatore: Antonella Bolzoni Supervisore: Data emissione: Release: Indice: A.Scheda informativa B.Introduzione.
David Clark e David Wilson 1987 Prof. Stefano Bistarelli
Laboratorio di Basi di Dati Introduzione ad Access 2ª Parte.
Basi di dati Università Degli Studi Parthenope di Napoli
SQL: Lezione 7 Nataliya Rassadko
SQL Per la definizione di basi di dati SQL per definire ed amministrare Ogni utente puo definire una base di dati di cui diventa lamministratore potendo.
Security Enhanced Linux (Selinux) A cura di : De Pascale Filippo 1.
Software di base Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità di alto livello Es.organizzazione dei.
JAVA Security. Jdk1.0 sandBox Ilo sistema di sicurezza JAVA si basa sulla struttura della seandBox. In base a tale politica tutte le applicazioni eseguite.
Le transazioni Itis Max Planck.
Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.
Vincoli di integrità generici Con i costrutti visti sinora, non è sempre possibile definire tutti i possibili vincoli di integrità. Per questo esiste listruzione.
Progettazione di una base di dati
Manipolazione dei dati I comandi SQL che permettono di modificare il contenuto di una base di dati sono insertdeleteupdate insert ha la seguente sintassi:
Transazioni.
Viste. Cosè una vista? è possibile creare un subset logico di dati o una combinazione di dati una vista è una tabella logica basata su una tabella o su.
Creazione e manipolazione tabelle. TABELLE una tabella può essere creata in qualsiasi momento,anche quando gli utenti stanno usando il database la struttura.
SQL basato su ANSI (American National Standards Institute) – standard SQL SQL – Structured Query Language è un linguaggio dichiarativo e permette di comunicare.
Gestione dell’Informazione: Aspetti Introduttivi
Sicurezza in Windows NT Fabrizio Inguglia. Tratteremo: Struttura generale di Windows NT 4 Gestione delle politiche di sicurezza.
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
DAGLI ARCHIVI AI DATABASE
Fabrizio Grossi Verifica delle attività. L'operato degli amministratori di sistema deve essere oggetto, con cadenza almeno annuale, di un'attività
Docente: Roberto Basili Fond Inf (a.a ) Introduzione alla Progettazione Concettuale R. Basili.
Introduzione a Oracle 9i
Basi di Dati e Sistemi Informativi
Un problema importante
CORSI DI FORMAZIONE - Basi di Dati: MySql - Parte 4 - Dicembre Utenti e privilegi del database - 1 Root è lutente amministratore predefinito, ma.
Dati e DBMS DBMS relazionali SQL Progettazione di una base di dati Programma del Corso.
Laboratorio informatico I
I DATABASE.
SQL (IV) Data Definition Language/ Data Manipulation Language.
FUNZIONI Dichiarazione: Definizione:
I DBMS BASI DI DATI (DATABASE) Insieme organizzato di dati utilizzati
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità D3 Sicurezza e concorrenza nelle basi di dati.
Diagramma delle Classi
Il Linguaggio SQL. Le interrogazioni in SQL (continua…) La parte di SQL dedicata alla formulazione di interrogazioni fa parte del DML. SQL esprime le.
SQL (III) Data Definition Language/ Data Manipulation Language.
Basi Dati e Laboratorio (6 + 6) crediti – curriculum Sistemi e Reti Basi dati 1 e Basi dati 2 prec.ordin. docenti: Barbara Demo Giuseppe Berio mail :
Database Elaborato da: Claudio Ciavarella & Marco Salvati.
Introduzione alle basi di dati
Sicurezza dei sistemi informatici Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione Terza lezione 19/5/2007.
Progettazione di una base di dati Ciclo di vita di un sistema informativo Studio di fattibilità definisce le varie alternative possibili, i relativi costi.
IL MODELLO DI BELL-LAPADULA
ACCESS CONTROL MATRIX STUDENTE: COCUZZI NICOLETTA MATR.:
Informatica Introduzione alle basi di dati Lezione 1 Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
Procedure operative di sicurezza di un sistema informatizzato in un dipartimento servizi.
Le basi di dati.
Linguaggi per basi di dati Linguaggi di definizione dei dati Utilizzati per definire gli schemi e le autorizzazioni per l’accesso Linguaggi di manipolazione.
Linguaggio SQL prima parte Linguaggio SQL prima parte A. Lorenzi, E. Cavalli INFORMATICA PER SISTEMI INFORMATIVI AZIENDALI Copyright © Istituto Italiano.
Basi di Dati attive. Sistemi Informativi DEE - Politecnico di Bari E. TinelliBasi di dati attive2 Definizione Una base di dati si dice attiva quando dispone.
Elementi di statistica con R e i database LEZIONE 2 Rocco De Marco rocco.demarco(a)an.ismar.cnr.it Ancona, 12 Aprile 2012.
Linguaggio SQL. Linguaggi per database La diffusione del modello relazionale ha favorito l’uso prevalente di linguaggi non procedurali: in questo modo.
Introduzione alle basi di dati e ai sistemi di gestione di basi di dati.
Transcript della presentazione:

SI Sicurezza della Base di Dati Mariagrazia Fugini Barbara Pernici Politecnico di Milano Sistemi Informativi

SI 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 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 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)

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

SI Controlli di accesso: politiche Insieme di regole per limitare gli accessi:  Pattern di Regola 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 richiesta di accesso esiste una regola che autorizza l’accesso? sìno accesso permesso accesso negato Regole di Accesso accessi autorizzati Controllo accessi: sistema chiuso

SI esiste una regola che nega l’accesso? nosi accesso permesso accesso negato Regole di Accesso accessi negati richiesta di accesso Controllo accessi: sistema aperto

SI 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 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 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 Controllo di accesso mandatorio Classificazione dei dati (livello di sensitività) Classificazione dei soggetti (clearance) Classe di sicurezza: 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 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 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 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, 2 m 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 Tipi di controllo accessi alle bd

SI R Accesso basato sul nome EMP PERSONNEL MANAGER MAILROOM CLERK namesalarymanagerdept B10k Jcomp A eval skill g netw 20kJfin s acc 15kHcompm PC D 18kJ adminm payroll

SI Accesso basato sul contenuto EMP VISTE 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 Accesso basato sul tipo di accesso

SI MODELLI DI SICUREZZA

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

SI 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 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 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 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 Mitre Corp stati-transizioni entità : divise in set astratti di soggetti e oggetti proprietà formali o assiomi che descrivono stati sicuri e transizioni che conservano la sicurezza Sistema = (S,O,X) + funzione F che associa clearance a soggetti (F s ), classificazione agli oggetti (F o ) e livello di sicurezza corrente di un soggetto (F c ) BELL-LA PADULA

SI Definizioni Stato del sistema si dice sicuro se i soli modi di accesso permessi dei soggetti sugli oggetti sono conformi alla POLITICA di sicurezza Tipi di accesso: read only, append, execute, read-write Determinare se un modo di accesso x è permesso = confrontare clearance del soggetto s con classificazione dell'oggetto o, e determinare se s ha l'autorizzazione per il modo x -- > fatto matematicamente quindi si hanno sistemi formalmente verificabili

SI 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 F s (s) domina F o (o) Condensata in No Read Up

SI 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 F c (s) <= F o (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 F c (s) = F o (o) Si condensa in No Write Down

SI

SI 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 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 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 Componenti delle regole di accesso Autorizzatori:  owner (appropriato per ambienti con bd separate)  funzione di controllo (appropriato per bd centralizzata) Soggetti:  utenti (user profiles) amministratori e programmatori appl.vi  gruppi o classi  transazioni o applicativi se l’utente è in più gruppi e/o usa varie applicativi --> soggetto = {USER_ID,GROUP_ID} oppure {USER_ID,APPL_ID} Oggetti:  scelta della granularità è cruciale (efficacia/efficienza) es: tabella, colonna, tupla, elemento (solo in update)  occorre proteggere anche gli schemi  transazioni e programmi anche come oggetti

SI accesso Transazioni come Soggetti/Oggetti

SI Esempi di regole di accesso Modello a 3 componenti: nato per SO, esteso alle bd Modello a 4 componenti: 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 Modello a 4 componenti constraint: espresso mediante protection view il modello fornisce:  controllo dell’accesso dipendente dal nome  controllo dell’accesso dipendente dal contenuto per le basi dati mancano:  controlli su amministrazione del set di regole di acceso  delega dei privilegi di accesso

SI Regole di accesso per le bd Modello a 5 componenti: 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 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

SI Sicurezza e DBMS: DAC e MAC Autenticazione dell’utente (anche mediante il SO) DAC  concessione/revoca di privilegi, ownership sui dati della BD  accesso dipendente dal nome/contenuto/tipo di accesso  accesso dipendente dal contesto (in combinazione con SO) MAC  protezione e gestione di dati multi-livello (in combinazione con SO) e delle etichette  Trusted Computing Base (TCB) raggruppa tutti i meccanismi che realizzano le politiche di sicurezza MAC (concetto di Reference Monitor)

SI 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 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 Regole e Autorizzazioni In pacchetti add-on come RAC-F PERMIT Employee-ID(John) Nel DDL del DBMS  clausola di controllo accesso associata alla dichiarazione degli elementi dello schema RECORD NAME IS Emp … ACCESS-CONTROL LOCK FOR GET IS ‘nome_lock’

SI Regole e Autorizzazioni Nel Query Language In RDBMS con DDL,DML,QL unificati tipo SQL Nel profilo utente  ‘SIGN-ON PROFILE’  associare a ogni utente un ‘PROFILE SEGMENT’ per transazioni modi di accesso  usare poi facilities per la manipolazione di profili

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

SI DAC in DBMS relazionali: sintassi delle regole amministrative GRANT ON TO [WITH GRANT OPTION] GRANT TO [IDENTIFIED BY passwd] GRANT RUN ON TO [WITH GRANT OPTION] REVOKE ON FROM REVOKE FROM REVOKE RUN ON FROM ::= SELECT | INSERT | UPDATE | DELETE | ALTER | INDEX ::= CONNECT | RESOURCE | DBA ::= user-ID | GROUP nomegruppo | PUBLIC | ALL

SI DAC in DBMS: ruoli Concetto di ruolo  le autorizzazioni sono associate al ruolo  gli utenti sono autorizzati a ricoprire il ruolo  SQL3 GRANT lista permessi ON Tabella TO Nomeruolo GRANT Nomeruolo TO Utente GRANT Nomeruolo TO Nomeruolo REVOKE Nomeruolo FROM Utente Flessibilità nella gestione di autorizzazioni, aderenza alla struttura organizzativa

SI 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 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 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 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 Oracle: Viste Proprietario della vista V è chi l’ha creata (es., utente B) Il proprietario può concedere accessi selettivi (controllo accessi basato sul contenuto) IF B possiede privilegio P (con GrantOption= su tutte le tabelle T i usate in V THEN B può concedere P su V (con GrantOption) ad altri unteti U i AND (successivamente revocare P) Problemi:  differenti privilegi su diversi sotto-insiemi dei dati di una tabella --> viste diverse  INSERT e UPDATE su viste difficili da gestire

SI Oracle: Viste Esempio  B ha privilegio READ su EMP con GO e definisce la Vista r&d DEFINE VIEW r&d (Codice, Nome, Qualifica) AS SELECT Codice,Nome,Qualifica FROM EMP WHERE Reparto = “RicercaSviluppo” ==>  ==> C può eseguire SELECT su r&d anche se non ha READ su EMP  REVOKE READ ON EMP FROM B ==> REVOKE READ ON r&d FROM B REVOKE READ ON r&d FROM C

SI Regole di accesso in DBMS MAC Simple Security property (NO READ UP)  Un soggetto S è autorizzato ad accedere in lettura a un oggetto O solo se L(S) >=  L(O) *-property (NO WRITE DOWN)  Un soggetto S è autorizzato ad accedere in scrittura a un oggetto O solo se L(S) <= L(O) Queste regole, combinate, impediscono flussi di dati tra soggetti “high” e “low”

SI Implementazione di protezione in DBMS MAC Accesso controllato ai dati multi-livello (TCB) Memorizzazione e gestione delle etichette di classificazione Etichette a vari livelli:  livello di relazione  livello di attributo  livello di record (tupla)  livello di elemento (singolo dato)  memorizzazione: 1. direttamente nella BD 2. nella BD in forma cifrata 3. in una BD separata gestita da un filtro VARIANO LE PRESTAZIONI

SI Basi di dati multi-livello Regole per la classificazione degli elementi nella BD Multi-Level Relation (MLR) R(A 1,C 1,...,A n,C n, T C )

SI Esempio di relazione multilivello Name CName Department CDepartment Salary Csalary TC Bob S Dept1 S 10KS S Ann S Dept2 S 20KTS TS Sam TS Dept2 TS 30KTS TS

SI a) Istanza Secret Name CName Department CDepartment Salary Csalary TC Bob S Dept1 S 10KS S Ann S Dept2 S --S S

SI b) Istanza TopS Name CName Department CDepartment Salary Csalary TC Bob S Dept1 S 10KS S Ann S Dept2 S 20KTS TS Sam TS Dept2 TS 30KTS TS

SI Architetture di DBMS Sicuri

SI Architetture di DBMS sicuri I DBMS sicuri operano secondo 2 modalità:  SYSTEM HIGH  MULTILEVEL SYSTEM HIGH tutti gli utenti sono autorizzati al livello di sicurezza più alto revisione manuale dei dati prima del rilascio da parte di un responsabile ==> vantaggio: uso di tecnologia di DBMS commerciali svantaggio: costi/tempi addizionali MULTILEVEL MODE Trusted subject architecture Woods Hole architectures:  Integrity Lock  Kernelized  Replicated =====> USO DI DBMS Trusted e Untrusted

SI Architetture di DBMS sicuri: Trusted Subject Architecture high user low user UNTRUSTED UNTRUSTED FRONT-END FRONT-END TRUSTED DBMS TRUSTED OS DATABASE (dbms & non dbms data)

SI Architetture di DBMS sicuri: Woods Hole Architecture high user low user UNTRUSTED UNTRUSTED FRONT-END …. FRONT-END TRUSTED FRONT-END (REFERENCE MONITOR) UNTRUSTED DBMS DATABASE

SI Architetture di DBMS sicuri: Integrity Lock Architecture high user low user UNTRUSTED UNTRUSTED FRONT-END …. FRONT-END TRUSTED FILTER CRYPTOGRAPHIC UNIT APPEND CHECK STAMP QUERY STORE RESPONSE UNTRUSTED DBMS DATABASE