1 SICUREZZA MULTILIVELLO Curzi Claudio 0000321770 2 ATTACCHI MISTI Le minacce miste sono quelle applicazioni in grado di diffondersi come dei normali virus o worm, ma che hanno anche la capacità di propagarsi (o di attaccare) attraverso la vulnerabilità di sicurezza insite nel software e nei sistemi operativi. Un virus misto tenta di infettare un sistema o un’applicazione attraverso il mass mailing, diffondendosi massicciamente attraverso la posta elettronica, oppure intaccando un software non aggiornato e sfruttando le falle di sistema non ancora scoperte. Un virus misto è in grado di: - distruggere o alterare file presenti su HD; - aprire backdoor, che consentono agli hacker di entrare; - deposistare dei trojan. Le minacce miste creano gli hacker “virtuali”, perché automatizzano l’entrata degli hacker in un sistema. Le 3 minacce miste più famose sono: - Code Red - Nimda - JS/Scob-A 3 CODE RED Code Red è un worm in grado di attaccare i computer che eseguono il software Internet Information Server (ISS) di Microsoft. Il primo attacco é stato rilevato il 12 luglio 2001, ed il 19 luglio è stato osservato il maggior numero di host infettati: 359.000. Code Red trae vantaggio da una vulnerabilitá in IIS, produce un buffer overflow (stringa di caratteri ‘N’ arbitrariamente lunga) affinché risieda nella memoria del server, successivamente, per propagarsi, controlla gli indirizzi IP sulla porta 80 del computer per verificare se il server web è vulnerabile. Sfruttando il buffer overflow non controllato, Code Red provocava il crash dei server web basati su NT ma eseguiva il codice sui sistemi Windows 2000. 4 NIMDA Nimda è un worm, scoperto nel settembre 2001. Si è diffuso rapidamente, offuscando il danno economico causato da precedenti worms, come ad esempio “Code Red”. I vettori a propagazione multipla hanno permesso a Nimda di diventare il più diffuso worm/virus di Internet nell’arco di appena 22 minuti. A causa della data di rilascio, alcuni media cominciarono immediatamente a speculare a proposito di un (possibile) collegamento tra il virus e Al Qaeda, sebbene questa correlazione si sia rivelata essere non veritiera. Nimda ha colpito sia “computer client” che utilizzavano Windows 95, 98, Me, NT o 2000, sia computer di tipo server che si servivano di Windows NT e 2000. Nimda è stato così efficace perché, a differenza di altri worms famosi come Code Red, utilizzava 5 diversi vettori di infezione: 1. Via email 2. Tramite una rete condivisa aperta 3. Attraverso la navigazione di siti web compromessi 4. Attraverso lo sfruttamento delle vulnerabilitá di Microsoft IIS 5. Usando le back doors degli altri worm, come ad esempio Code Red. 5 JS/SCOB-A L’attacco da parte del virus JS/Scob-A avvenuto a cavallo tra giugno e luglio 2004 ha attirato l’attenzione su questa nuova forma di minaccia in grado di usare Internet per diffondere il proprio codice maligno. I computer di ignari visitatori di alcuni siti infetti si ritrovavano a loro volta attaccati dal virus, che sfruttava a questo scopo delle vulnerabilità presenti in Internet Explorer e in alcuni server Web. Quando i visitatori capitavano sui siti infetti subivano un reindirizzamento verso un sito russo dove, a loro insaputa e attraverso un trojan, venivano infettati da un keylogger. L’insidia rimaneva presente sul computer infetto, aspettando di rilevare una visita a determinati siti (di solito siti bancari) e a quel punto il keylogger iniziava a registrare tutto quello che veniva digitato sulla tastiera. In questo modo, tutte le informazioni riservate (username, password, numero di conto) venivano trasferite direttamente al computer dell’hacker situato in Russia. 6 DEFINIZIONI OGGETTI: Una qualunque entità passiva che necessita di essere protetta (file, pagine di memoria, segmenti, drive, record, stampanti …). SOGGETTI: Una qualunque entità attiva che può manipolare gli oggetti (persone, processi). SECURITY POLICY: l’insieme di principi e regole per definire i possibili accessi al sistema. Un sistema operativo può essere considerato trusted solo in relazione alla sua security policy, cioè alle esigenze di protezione che il sistema dovrebbe soddisfare. Due tipi di security policy: Militari Commerciali 7 SECURITY POLICY MILITARI (1/3) Le security policy militari sono basate sulla protezione delle informazioni classificate: ogni informazione viene classificata con un particolare livello di importanza. Non classificato Limitato Riservato Segreto Top secret 8 SECURITY POLICY MILITARI (2/3) I vari livelli formano una gerarchia e riflettono un ordine di sensibilitá crescente: le informazioni a un particolare livello sono meno sensibili delle informazioni nel livello superiore e piú importanti di quelle del livello sottostante. L’accesso alle informazioni è limitato dalla regola deve-conoscere: l’accesso ai dati sensibili è consentito solo ai soggetti che devono conoscere quei dati per eseguire il loro lavoro. Ogni informazione classificata puó essere associata ad uno o piú progetti, chiamati scomparti, che descrivono il soggetto delle informazioni. Uno scomparto puó coprire le informazioni a un solo livello, oppure puó includere le informazioni a diversi livelli di sensibilitá. Una persona che richiede l'accesso alle informazioni deve essere autorizzata per accedervi, il livello di autorizzazione indica che a una particolare persona, e non ad un'altra, è stata concessa la fiducia per accedere a particolari informazioni di un determinato livello; non è detto, ovviamente, che la stessa persona possa accedere ad informazioni di un livello superiore. La combinazione <livello; scomparto> é chiamata classe o classificazione di un’informazione. In questo moto è possibile imporre la regola deve-conoscere sia per il livello di sicurezza, sia per argomento. 9 SECURITY POLICY MILITARI (3/3) Una relazione <, chiamata dominanza, viene definita per gli insiemi di oggetti e soggetti. Si esprime: s domina o se o < s. La dominanza viene utilizzata per limitare la sensibilità e il contenuto delle informazioni a cui un soggetto può accedere. Un soggetto infatti può leggere un oggetto solo se: - Il livello di autorizzazione del soggetto è alto almeno quanto quello delle informazioni - Il soggetto deve conoscere tutti gli scomparti per cui vengono classificate le informazioni. Con queste condizioni si può affermare che il soggetto domina l’oggetto. La sicurezza militare impone sia i requisiti di sensibilità che i requisiti deve-conoscere: i primi sono detti gerarchici perché riflettono la gerarchia dei livelli di sensibilità, mentre le limitazioni deve-conoscere sono non gerarchiche perché gli scomparti non riflettono necessariamente una struttura gerarchica. Questo modello è adatto per un’impostazione in cui l’accesso è controllato in modo rigido da una autorità centrale. 10 SECURITY POLICY COMMERCIALI Le imprese commerciali hanno problemi di protezione significativi, e nonostante il loro sistema sia meno rigido e strutturato, si trovano concetti comuni alle security policy militari. In questa realtá sono presenti i reparti, composti dai soggetti che svolgono funzioni dello stesso tipo, e i progetti che necessitano di parti dei dati aziendali per poter essere svolti. I dati di qualsiasi livello possono avere diversi gradi di sensibilitá: Pubblico Proprietario Interno Funzione principale di questa security policy è garantire l’integrità dei dati, infatti, ad esempio in una banca, se i dati dei vari conti correnti potessero essere alterati, si creerebbero grossi effetti per quanto riguarda la finanza e la fiducia degli individui verso il mondo finanziario. 11 MODELLI DI SICUREZZA Specifiche formali che descrivono l’implementazione di una determinata politica di sicurezza in modelli ideali. Utilizzati per: - Verificare la completezza e la coerenza di un particolare policy; - Documentare una policy; - Aiutare a concettualizzare e progettare un’implementazione; - Controllare se un’implementazione soddisfa i suoi requisiti. Esistono due tipi di modelli di sicurezza: - Discretionary Access Control (DAC); - Mandatory Access Control (MAC). 12 DAC Meccanismo attraverso il quale gli utenti possono liberamente decidere di garantire revocare l’accesso a determinati oggetti. PROPRIETA’: 1) Gli utenti amministrano i dati che possiedono; 2) Il proprietario dei dati può autorizzare (GRANT) altri utenti all’accesso; 3) Il proprietario può definire il tipo di accesso da concedere ad altri (lettura, scrittura, esecuzione); 4) Accessi selettivi (basati su nome, contenuto, parametri di sistema, storia, aggregazione dati). 13 MAC Meccanismo attraverso il quale le decisioni di accesso sono basate su delle etichette che contengono informazioni rilevanti circa la sicurezza di un oggetto. PROPRIETA’: 1) Classificazione dei dati (livello di sensibiltà); 2) Classificazione dei soggetti (autorizzazione); 3) Classe di sicurezza: <livello; scomparto>; 4) Ordinamento tra le classi di sicurezza (relazione domina); 5) I meccanismi di sicurezza devono garantire che tutti i soggetti abbiano accesso solo ai dati per cui possiedono le autorizzazioni appropriate (regole soggetti-oggetti ); 6) Non si possono propagare privilegi (GRANT). 14 MODELLI TIPICI DI MAC Diversi approcci alle politiche di sicurezza: - Confidenzialitá BELL-LA PADULA - Integrità BIBA - Ibrido Chinese Wall 15 MODELLI DI SICUREZZA MULTILIVELLO Modelli che rappresentano un gruppo di sensibilità e che riflettono l’esigenza di separare i soggetti dagli oggetti per i quali non dovrebbero disporre l’accesso. Una generalizzazione del modello militare per la protezione delle informazioni è stata adottata come modello per la protezione dei dati all’interno dei sistemi operativi. Bell e La Padula sono stati i primi a descrivere le proprietá della politica militare con una notazione matematica, mentre Denning ha formalizzato per primo la struttura di questa politica. Il modello generalizzato è chiamato modello reticolare di protezione, perché i suoi elementi formato una struttura matematica chiamata reticolo. Il modello di protezione militare rappresenta uno schema chiamato reticolo. La relazione di dominanza in questo modello è la relazione per il reticolo: la relazione < è transitiva e anti-simmetrica. L’elemento più grande del reticolo è: <top secret; tutti gli scomparti> e domina tutti gli elementi. Questa tecnica può essere applicata anche all’ambiente commerciale, utilizzando etichette diversi per i gradi di sensibilità. 16 MODELLO RETICOLARE 60 12 4 20 6 2 30 10 3 1 15 5 17 MODELLO BELL-LA PADULA (1/2) E’ una descrizione formale dei percorsi consentiti per il flusso delle informazioni in un sistema sicuro. L’obiettivo del modello è identificare le vie di comunicazione utilizzabili quando è importante mantenere la segretezza. Enfasi sulla confidenzialità. E’ una formalizzazione della security policy militare (livelli di sensibilità). Le entità in questo modello sono: - soggetti -> a cui sono assegnati dei clearence levels; - oggetti -> a cui sono assegnati i sensitivity levels. I clearance levels e i sentitivity levels sono chiamati access classes (classi di accesso), e consistono di 2 componenti: 1) Security level: elemento basato sull’ordinazione, è costituito da una classificazione gerarchica (top secret > segreto > riservato > …); 2) Category set: insieme di categorie dipendenti dall’applicazione in cui i dati sono usati, indica il settore di appartenenza (prodotti commerciali, posta elettronica,…) - 18 MODELLO BELL-LA PADULA (2/2) Ogni soggetto può accedere agli oggetti attraverso diversi access modes (modi di accesso): read, append, execute, write. Una classe di accesso (L,C) domina un’altra classe di accesso (L’,C’) se e solo se - L’ ≤ L - C’ C. E’ nescessario espandere il modello addizionando un gruppo di categorie per ogni classificazione di sicurezza. Ogni categoria descrive una specie di informazioni. Queste categorie risultano dal principio del “need to know”: gli stati in cui i soggetti non possono leggere gli oggetti a meno che non è necessario per eseguire determinate funzioni. 19 PROPRIETÁ BELL-LA PADULA: - C(S) è l’insieme delle classi di accesso di un soggetto S. - C(O) è l’insieme delle classi di accesso di un oggetto O. Il flusso sicuro delle informazioni è caratterizzato da due proprietà: 1) Simple Security Condition: S può leggere O se e solo se C(O) < C(S). 2) *-Property (Star property): S che ha accesso in lettura su O, puó avere accesso in scrittura su un oggetto P solo se C(O) < C(P). Quest’ultima proprietá afferma che il contenuto di un oggetto sensibile puó essere scritto solo negli oggetti con una classe alta almento quanto la classe del contenuto. Nel modello militare ció si rispecchia nel fatto che una persona che ottiene informazioni a un livello puó passare quelle informazioni solo a persone con livelli non inferiori rispetto al livello delle informazioni; ció impedisce la scrittura su un livello inferiore che si verifica quando un soggetto con accesso a dati di alto livello trasferisce quei dati mediante la scrittura in un oggetto di basso livello. 20 ESEMPIO BELL-LA PADULA CATEGORIE: posta elettronica (E), prodotti commerciali (C), amministrazione (A). INSIEME DI CATEGORIE: Ø, {E}, {C}, {A}, {E,C}, {E,A}, {C,A}, {E,C,A}. Paul George DocA DocB DocC (SEGRETO, {E, C, A}) (SEGRETO, {C, A}) (RISERVATO, {A}) (SEGRETO, {E, C}) (TOP-SECRET, {E, C}) {E,C,A} {E,C} Paul Paul DocC George dom dom dom dom DocA DocB DocB DocA {E} Paul ha accesso in lettura su DocA e DocB. George ha accesso in lettura su DocA. Paul puó scrivere (divulgare) il contenuto di DocB in DocC. {C,A} {E,A} {C} Ø {A} 21 MODELLO DI BIBA Il sistema consiste in un insieme S di soggetti, O di oggetti e un insieme I di livelli di integrità (ordinati). Enfasi sull’integrità (non è importante chi legge l’informazione ma chi la produce e/o modifica). Alle classi di protezione (della riservatezza) del modello di Bell-La Padula fanno da controparte nel modello di Biba le classi di integrità I(S), I(O). Proprietà dell'integrità semplice: Un soggetto S può avere accesso in lettura ad un oggetto O solo se I(O) < I(S). Proprietà * dell'integrità: Se un soggetto S ha accesso in lettura a un oggetto O, allora S può avere accesso in scrittura a un oggetto P solo se I(P) < I(O). Nel modello di Biba, scrittura è intesa come possibilità di modifica dell'informazione ciascuno dei due modelli reticolari visti protegge uno solo di due aspetti della sicurezza, entrambi fondamentali. Allo stato attuale, nessun modello formale di largo impiego li copre entrambi in misura soddisfacente. 22 MODELLO CHINESE WALL (1/3) 23 MODELLO CHINESE WALL (2/3) La politica di sicurezza della Muraglia Cinese è una politica di sicurezza che garantisce la confidenzialità e l’integrità delle informazioni attraverso regole di lettura e scrittura. L’idea base è di controllare il flusso di dati tra aziende concorrenti, limitando l’accesso alle informazioni riservate di una data compagnia da parte di consulenti finanziari. Impedire che sorgano conflitti d’interesse. C’è conflitto di interesse quando un soggetto compie un’azione che potrebbe produrre un vantaggio per l’attore dell’azione stessa. La politica di sicurezza Chinese Wall distingue pertanto le informazioni in due aree: 1) Insider area: contenente informazioni riservate sulla società, al quale possono accedere solo alcuni soggetti. 2) Public area: contenente informazioni che le società distribuiscono obbligatoriamente e quindi accessibili a tutti, ad es. l’annuale rendiconto degli stackholder. 24 MODELLO CHINESE WALL (3/3) All’interno della muraglia tutte le informazioni riservate sono archiviate gerarchicamente in 3 livelli: - Al livello più basso, troviamo gli OGGETTI - Nel livello intermedio, si posizionano i CD (Company Dataset) - Al livello più alto, le CD COI (Conflict Of Interest) class. OGGETTI: files contenenti singoli dati delle società. Ad ogni oggetto è associato il nome della CD al quale si riferisce e il nome della COI class al quale la CD appartiene. CD: tutti gli oggetti che si riferiscono ad una data società vengono raggruppati insieme in un database. COI: tutte le CD delle società in concorrenza tra loro vengono raggruppate insieme e costituiscono la CD Classe di conflitti d’interesse. 25 PROPRIETÁ CHINESE WALL: Sicurezza Semplice: L’idea base della politica della Muraglia Cinese consiste nel far in modo che le persone entrino in possesso di informazioni che non siano in conflitto con quelle già possedute dallo stesso (i soggetti per poter accedere alle informazioni non devono essere dalla parte sbagliata del muro). Regole di accesso: - Regole di lettura - Regole di scrittura. Regola di Lettura: Un soggetto S puo’ leggere un oggetto O se: - O e’ nello stesso Dataset di uno gia’ letto da S, sono cioè all’interno del muro - O appartiene a una Classe di COI diversa in cui S non ha ancora letto alcuna informazione. Regola di Scrittura: Un soggetto S puo’ scrivere un oggetto O se: - S puo’ leggere O in base alla regola di lettura - Non e’ stato letto alcun oggetto appartenente ad un Dataset diverso a quello contenente O. 26 SICUREZZA NEI SISTEMI OPERATIVI Un S.O. controlla l’interazione tra soggetti e oggetti, pertanto è necessario considerare la protezione in ogni aspetto della progettazione: la struttura del S.O. deve includere le definizioni degli oggetti che saranno protetti e dei soggetti che avranno accesso agli oggetti. Un S.O. “normale” utilizza particolari funzioni che riguardano la sicurezza: - Autenticazione degli utenti - Protezione della memoria - Controllo degli accessi alle periferiche di I/O e ai file - Allocazione e controllo degli accesso agli oggetti generici - Rafforzamento della condivisione - Garanzia di servizio equo - Sincronizzazione e comunicazione tra processi - Protezione dei dati di protezione del sistema operativo 27 SICUREZZA NEI SISTEMI OPERATIVI 28 SISTEMA OPERATIVO TRUSTED I S.O. trusted incorporano una tecnologia relativa sia alle funzionalitá sia alla fiducia. Funzionalità: - Autenticazione e identificazione utente - Controllo degli accessi obbligatorio (MAC) - Controllo degli accessi discrezionale (DAC) - Protezione del riutilizzo degli oggetti - Mediazione completa - Percorso trusted - Controllo (audit) - Riduzione del registro di controllo - Rilevamento intrusioni 29 SISTEMA OPERATIVO TRUSTED 30 SISTEMA OPERATIVO TRUSTED 3 modalitá di progettazione di un sistema operativo trusted: 1) Basata sul kernel 2) Isolamento 1) Strutturazione a strati 31 1) KERNEL DI SICUREZZA Il kernel di sicurezza fornisce le interfacce di protezione tra l’hardware, il sistema operativo e altre parti del sistema informatico; generalmente il kernel di sicurezza è contenuto nel kernel del sistema operativo. Vantaggi: o Copertura o Separazione o Unità o Modificabilità o Compattezza o Verificabilità Svantaggi: Prestazioni La parte piú importante di un kernel di sicurezza è il monitor di riferimento, cioè la porzione che controlla gli accessi agli oggetti. 32 MONITOR DI RIFERIMENTO Funge da muro intorno al sistema operativo, deve essere: - A prova di intrusione - Invocato sempre quando è richiesto l’accesso a un qualsiasi oggetto - Abbastanza piccolo da essere soggetto ad analisi e verifiche, da cui puó esserne garantita la completezza. Chiaramente puó controllare gli accessi in modo efficace solo se non puó essere modificato o aggirato da un processo rouge, ed è il singolo punto da cui devono passare le richieste di accesso; inoltre deve funzionare correttamente per adempiere al suo ruolo cruciale per l’impostazione della protezione. Visto che la probabilitá di comportamenti corretti diminuisce con l’aumento della complessitá, la migliore garanzia di impostazione corretta delle policy è la costruzione di un piccolo e semplice monitor di riferimento. 33 2) ISOLAMENTO I S.O. dovrebbero isolare ogni utente dagli altri, consentendo solamente interazioni controllate. 4 modi per separare un processo dagli altri: 1) Fisica: processi diversi utilizzano diverse infrastrutture hardware; ad esempio, i calcoli sensibili possono essere eseguiti su un sistema informatico riservato, mentre le attivitá non sensibili vengono invece eseguite su un sistema pubblico 2) Temporale: processi diversi eseguiti in tempi diversi 3) Crittografica: processi diversi eseguiti contemporaneamente, attraverso la crittografia dei dati sensibili 4) Logica: quando un processo come un monitor di riferimento separa gli oggetti di un utente da quelli di un altro. 34 3) STRATI Sottoprocessi dei processi utente Processi utente Compilatori, gestori di db Modulo autenticazione utente Funzioni di utilitá File system Pianificazione, condivizione, gestione della memoria S.O. Sincronizzazione, allocazione Kernel S.O. Kernel sicurezza Funzioni di protezione hardware 35 SICUREZZA MULTILIVELLO NEI DB La sicurezza dei dati in un DB non puó essere suddivisa in 2 sole categorie: dati sensibili e non sensibili, ma deve tener conto di 3 caratteristiche fondamentali: 1) La sicurezza di un singolo elemento puó essere diversa dalla sicurezza di altri elementi dello stesso record o da altri valori dello stesso attributo; 2) Due livelli non sono adeguati per rappresentare situazioni di protezione esaustive, di norma i gradi di protezione formano un reticolo; 3) La sicurezza di un dato aggregato puó essere diversa dalla sicurezza dei singoli elementi. Questi principi portano a un modello di protezione non diverso dal modello militare di sicurezza, in cui la sensibilitá di un oggetto è definita come uno degli n livelli ed è ulteriormente separata in scomparti per categoria. A causa della ridotta granularitá degli elementi, l’implementazione della sicurezza multilivello nei DB è piú difficile di quella nei sistemi operativi. 2 modalitá di progettazione: - Separazione - Struttura DB sicuri 36 1) SEPARAZIONE La separazione è necessario per limitare gli accessi. Meccanismi: 1) PARTIZIONAMENTO: database diviso in livelli separati ognuno con il proprio livello di sensibilitá. 2) CRITTOGRAFIA: ogni livello di dati sensibili puó essere memorizzato in una tabella crittografata con una chiave univoca per il livello di sensibilitá. 3) BLOCCO DELL’INTEGRITA’: ogni elemento viene “dipinto” con un colore che ne denota la sensibilitá; la colorazione viene tenuta insieme all’elemento. Questo blocco è composto da un dato, una sensibilitá e un checksum crittografico, quest’ultimo utilizzato come codice di rilevamento degli errori. 4) BLOCCO DI SENSIBILITA’: combinazione tra un identificatore univoco e il livello di sensibilitá: data l’univocitá dell’indentificatore, ogni blocco è relativo ad un particolare record. 37 CRITTOGRAFIA Se un dato sensibile è cifrato, un utente che riceve accidentalmente questo dato non può interpretarlo: di conseguenza ogni livello di dati sensibili può essere memorizzato in una tabella cifrata con un'unica chiave. Questa tecnica comporta alcuni svantaggi, infatti un utente può effettuare un attacco chosen plaintex (testo in chiaro conosciuto). Una soluzione puó essere quella di utilizzare una chiave crittografica diversa per ogni record, peró ció comporta la decrittazione di ogni campo anche durante l’esecuzione di operazioni standard sul database. 38 BLOCCO DELL’INTEGRITA’ Il blocco è un modo per fornire integritá e accesso limitato a un database; l’operazione viene soprannominata “vernice spray” perché ogni elemento viene dipinto, in senso figurato, con un colore che ne denota la sensibilitá. La colorazione viene mantenuta insieme all’elemento. Il testo viene mantenuto in chiaro per un fatto di efficienza. 39 BLOCCO DI SENSIBILITA’ Un lock di sensibilità è una combinazione di un identificatore unico (il numero di un record) e il suo livello di sensibilità. Poichè l'identificatore è unico, ciascun lock d'integrità si riferisce ad un particolare record. Molti elementi diversi possono avere lo stesso livello di sensibilità. Un soggetto malevolo non dovrebbe poter identificare due elementi che hanno identico livello di sensibilità o valori identici dei dati solo guardando alla porzione di livello di sensibilità del Lock. A causa della cifratura, i contenuti del Lock, specialmente il livello di sensibilità, sono celati alla vista. Il Lock è associato ad un record specifico e protegge la segretezza del livello di sensibilità di quel record. 40 2) STRUTTURE DB SICURI Diverse strutture possibili per avere database sicuri a piú livelli, tali strutture offrono compromessi tra efficienza, flessibilitá, semplicitá e attendibilitá. - BLOCCO D’INTEGRITA’: soluzione a breve termine, inefficienza dovuta allo spazio necessario per archiviare un elemento che deve essere aumentato per contenere l’etichetta della sensibilitá. - FRONT END TRUSTED: sfrutta gli strumenti giá esistenti, migliorando la sicurezza di essi con modifiche minime al sistema; funge da filtro unidirezionale, scartando i risultati delle query a cui l’utente non dovrebbe essere in grado di accedere; poco efficiente perché vengono recuperati piú dati del necessario. - FILTRI COMMUTATIVI: analizza la richiesta dell’utente e la riformatta in modo da restituire all’utente solo i dati con il livello di sensibilitá appropriato. - DATABASE DISTRIBUITI: un front end trusted controlla l’accesso a due DBMS: uno per i dati a bassa sensibilitá e uno per i dati con sensibilitá alta; poco utilizzato perché il front end deve essere complesso e potrebbe includere la maggior parte delle funzionalitá di un intero DBMS. 41 STRUTTURA BLOCCO DELL’INTEGRITA’ 42 STRUTTRA FRONT END TRUSTED 43 FILTRI COMMUTATIVI Un semplice esempio è la query: retieve NAME where (( OCCUP = PHYSICIST) AND (CITY = WASHDC)) Si supponga che alcuni fisici di Washington lavorino su un progetto molto sensibile, in modo che l'utente corrente non sia abilitato ad accedere ai nomi dei fisici. Un DBMS convenzionale potrebbe avere accesso a tutti i record e potrebbe quindi passare il risultato di questa query all'utente. Tuttavia, come abbiamo visto, l'utente potrebbe essere capace di inferire dati sui fisici di Washington che lavorano su un progetto segreto senza avere accesso direttamente a questi campi. Il filtro commutativo riformula la query originale in maniera fidata, in modo che le informazioni sensibili non siano mai estratte dal DB. Una riformulazione della query potrebbe essere: retrieve NAME where (( OCCUP = PHYSICIST) AND (CITY = WASHDC)) from all record R where (NAME-SECRECY-LEVEL (R) <= USER-SECRECY-LEVEL) AND (OCCUP-SECRECY-LEVEL (R) <= USER-SECRECY-LEVEL) AND (CITY-SECRECY-LEVEL (R) <= USER-SECRECY-LEVEL) 44 STRUTTURA FILTRI COMMUTATIVI 45 STRUTTURA DATABASE DISTRIBUITI 46 SICUREZZA MULTILIVELLO NELLA RETE Il modello Multi Layer Securtity (MLS) si basa su 4 livelli di intervento: Network Layer Security: IPSec Transport Layer Security: SSL Application Layer Security: S/MIME: security e-mail DNS security extensions SSH: secure telnet Client Layer Security: Controllo della sicurezza degli host 47 BIBLIOGRAFIA • • • • • • • • http://en.wikipedia.org/wiki/Nimda_(computer_worm) http://en.wikipedia.org/wiki/Code_Red http://it.wikipedia.org/wiki/Politiche_di_sicurezza_militari C. Pfleeger, S. Pfleeger: “Sicurezza in informatica” Matt Bishop: “Introduction to Computer Security” William Stallings: “Sicurezza delle reti” http://it.wikipedia.org/wiki/Modello_di_riservatezza_di_Bell-LaPadula http://www.websense.com/docs/WhitePapers/AvoidingNewestSecurityThr eatswebisanattackvector_IT.pdf • http://www.cs.stthomas.edu/faculty/resmith/r/mls/ • http://www.postini.com/legal/security_backgrounder.php • http://www.iit.cnr.it/staff/fabio.martinelli/mf2-2005.pdf