Sicurezza dei sistemi informatici Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione Prima lezione 31/3/2007 Contenuto della lezione Motivazioni Dati sulla sicurezza I concetti di sicurezza Minacce e loro classificazione Politiche e meccanismi Modelli teorici di sicurezza Politiche per la confidenzialità Sicurezza dell’informazione 20 anni fa Sicurezza di tipo “fisico” L’informazione era principalmente su carta Chiusa a chiave (armadi, casseforti, ...) La trasmissione fisica abbastanza sicura Amministrazione della sicurezza Controllo “fisico” degli accessi alle risorse Screening del personale Auditing Sicurezza dell’informazione oggi Utilizzo emergente di Internet e dei sistemi distribuiti L’informazione digitale deve mantenuta sicura I costi dell’insicurezza Stime dell’FBI indicano che un attacco insider può produrre in media un danno da 2.8 milioni di $ Le perdite annue finanziarie dovute a falle nel sistema di sicurezza dell’informazione sono stimate tra i 5 e i 45 miliardi di $ Sicurezza dell’informazione oggi Sicurezza a livello nazionale Protezione of infrastrutture critiche Rete energetica Trasporto aereo agenzie governative e connesse con il governo Molte agenzie non hanno livelli di sicurezza accettabili Soprattutto per quanto riguarda la gestione della sicurezza interna e le misure di controllo di accesso Sicurezza di rete Ovviamente se ogni computer avesse un solo utente e non fosse collegato ad altri computer, il problema della sicurezza non si porrebbe neppure Questa situazione di isolamento tra gli utenti dei computer non si è in realtà mai verificata Sicurezza di rete Fino agli anni ‘70 i computer erano grandi e molto costosi main-frame usati da molti utenti che si connettevano da terminali (molto semplici) In questa situazione sono state sviluppate molte tecniche (HW e SW) per garantire la sicurezza di ciascun utente: distinguere utente normale dal sistema operativo autenticare gli utenti controllare gli accessi sviluppo di modelli generali di sicurezza Sicurezza di rete dagli anni ‘70 ad oggi, i terminali sono diventati PC intelligenti ed autonomi ed i mainframe sono scomparsi i PC sono ora collegati in rete sulla rete ci sono server che offrono servizi commerciali delicati per la sicurezza (banche, e-commerce…) ma anche solo la posta elettronica nasconde insidie Insidie nella sicurezza di rete 1) in un computer multi-utente, uno degli utenti può assumere l’identità di un altro utente per carpire informazioni di quest’ultimo o per spacciarsi per lui 1+) i servizi di rete sono potenzialmente aperti a tutti, quindi l’insieme degli utenti di un sistema aumenta arbitrariamente e quindi anche le interazioni tra utenti diversi e quindi i pericoli di tipo (1) Insidie nella sicurezza di rete 2 nuovo) i servizi che usano la rete internet si basano sulla trasmissione di informazioni che attraversano reti e router non sempre controllabili Per difendersi dai pericoli (1) e (1+) è fondamentale che ogni utente sia identificato e che le azioni che gli sono consentite siano decise in funzione di questa identità cioè è fondamentale che il SO attui una chiara politica di sicurezza Ulteriori problemi il fatto che i PC siano in rete (possibilmente insicura) rende più difficile autenticare gli utenti le password vanno protette e non devono passare in chiaro sulla rete Per evitare (2) si deve trasmettere in rete solo informazione criptata cioè incomprensibile da chi non abbia l’apposita chiave di decrittazione Ridimensioniamo il ruolo della crittografia insomma la crittografia è una tecnica importante per risolvere questi problemi, ma non risolve tutto … anzi Se un utente riesce a diventare system manager di un PC o di una rete non c’è crittografia che tenga Definizioni ufficiali di sicurezza Esistono diverse definizioni di sicurezza e diversi organismi di valutazione della sicurezza : •US Department of Defence Trusted Computer System Evaluation Criteria (Orange Book), 1985. radium.ncsc.mil/tpep/process/faq.html •European Information Technology Security Evaluation Criteria (ITSEC), 1991. cesg.gov.uk •Canadian Trusted Computer Product Evaluation Creteria (CTCPEC), 1993. ftp.cse-st.gc.ca/pub/criteria/CTCPEC Qualche dato sulla (in)sicurezza L’impatto economico dei virus, worm e Trojan horse è di 17.1 miliardi di $ nel 2000 (8.75 miliardi solo per il virus “I Love You”) In uno studio, una e-mail ogni 325 aveva un attachment maligno In un recente studio dell’EU, la metà di ogni messaggio di e-mail è posta non richiesta che alle imprese europee più di 2,5 miliardi all’anno in produttività persa Nella prima metà del 2005 sono state scoperte 1862 nuove vulnerabilità del software, delle quali il 60% in programmi che girano su Internet Problemi di sicurezza segnalati nei media “Computer Hacker Invades Web Site of the Justice Department”, NYT, 18 August 1996 “Hacker Group Commandeers The New York Times Web Site”, NYT, 14 September 1998 “Yahoo Blames a Hacker Attack for a Lengthy Service Failure”, NYT, 8 February 2000 “A Hacker May Have Entered Egghead Site”, NYT, 23 December 2000 “Stung by Security Flaws, Microsoft Makes Software Safety a Top Goal”, NYT, 17 January 2002 “Millions of Cisco Devices Vulnerable To Attack”, Information Week, 18 July 2003 “A method for shutting down networking devices circulates on the Internet” “New Doomjuice Worm Emerges, Targets Microsoft”,Reuters UK, 9 February 2004 Problemi di sicurezza segnalati dai media E innumerevoli altri incidenti che non sono stati pubblicizzati per paura di imbarazzo Ogni volta che viene pubblicizzato un incidente, gli esperti di sicurezza e i rivenditori di antivirus tendono ad esagerarne i costi Nel 2002, le compagnie americane hanno speso più di 4.3 miliardi di dollari solo per gli antivirus Cambiamento del tipo di attacchi Si passa da attacchi multiobbiettivo in grande scala su grandi sistemi ad attacchi mirati sui PC C’è inoltre il passaggio dall’ “hacking” malizioso ad attacchi criminali con motivi economici Furto di identità Phishing Denial-of-service Furto di identità Nell’aprile 2005, un’intrusione nel database della LexisNexis ha compromesso le informazioni personali di circa 310000 persone Nell’agosto 2004, un’intrusione aveva compromesso 1,4 milioni di record di informazioni personali all’università di Berkeley Phising Durante la prima metà del 2005 il volume delle e-mail “phishing” è cresciuto da circa 3 milioni al giorno a circa 5.7 milioni Ogni 125 messaggi di e-mail di media uno è un tentativo di phishing L’1% of US households sono state vittime of successful phishing attacks in 2004 Ciber-estorsioni Durante la prima metà del 2005 gli attacchi Denial-of-Service (DoS) sono aumentati da una media 119 a una media 927 al giorno Il 17% dei siti commerciali hanno ricevuto minacce di chiusure mediante attacchi DoS Una compagnia che si rifiuta di pagare gli estortori spende 100,000 $ all’anno per difendersi dagli attacchi DoS Botnets e Zombies SecurityFocus, 23 January 2006 " Bot herder pleads guilty to 'zombie' sales: A 20year-old California man used automated software to infect Windows systems and to create botnets — centrally controlled networks of compromised PCs — to which he sold access. " In October 2005, Dutch authorities arrested three men in the Netherlands who allegedly controlled a network of more than 1.5 million compromised computers. Aggiornamenti New York Times, 25 September 2006. ChoicePoint, CardSystems Solutions, Time Warner and dozens of universities have collectively revealed 93,754,333 private records The Commerce Department announced that between 2001 and the present, 1,137 laptops were lost, missing or had been stolen Symantec Internet Security Threat Report covering the first 6 months of 2006, 25 September 2006. The Symantec Probe Network detected 157,477 unique phishing messages Botnets have become a major part of the underground economy An average of 6,110 denial-of-service attacks per day Spam made up 54% of all monitored email traffic Considerazioni finali La sicurezza deve essere implementata secondo le esigenza personali Non esiste una soluzione che va bene per tutti La sicurezza è un’area complessa ed estesa che permea tutti i livelli di un sistema informatico, compresi quelli fisici: Hardware-OS-Application-Network-Operator E come in altri contesti, la sicurezza informatica è per la sicurezza sia l’anello più forte che quello più debole Una rassegna dei concetti di sicurezza La sicurezza deve garantire le proprietà di Confidenzialità Integrità Disponibilità La sicurezza studia le minacce e gli attacchi, in base ai quali stabilisce delle politiche e dei meccanismi Tali meccanismi sono poi implementati e verificati Confidenzialità Si ottiene la confidenzialità nascondendo ai non autorizzati informazioni o risorse In molti ambiti esistono informazioni e risorse “sensibili” a cui non possono accedere tutti Un modo per nascondere le informazioni è la crittografia Un altro modo è controllarne gli accessi Anche le risorse possono essere soggette a restrizioni Integrità L’integrità richiede che le informazioni o le risorse “sensibili” non subiscano alterazioni non autorizzate Integrità dei dati Integrità della sorgente Differenza: si può intercettare un fax in modo completo che contiene informazioni false I meccanismi per garantire l’integrità si dividono in meccanismi di prevenzione e di scoperta Integrità Integrità: è difficile da esprimere in modo preciso: è la proprietà che tutto è come dovrebbe essere Spesso si riduce nel proibire la scrittura senza autorizzazione E’ collegata alla segretezza: modificare il SO è spesso prerequisito per avere accesso a documenti proibiti problema: violazione dell’integrità del SO Disponibilità Per disponibilità si intende semplicemente la possibilità di usare una determinata risorsa o un’informazione nel tempo Alcuni attacchi, il già citato DoS, tendono a diminuire e/o ad annullare la disponibilità di alcune risorse Minacce Una minaccia è una possibile violazione della sicurezza La violazione non deve necessariamente accadere: è il fatto stesso che può accadere che la rende una minaccia E’ importante salvaguardarsi dalle minacce ed essere pronti ad eventuali violazioni La violazione effettiva è chiamata attacco e coloro che la commettono “attaccanti” Classi di minacce Disclosure: accesso non autorizzato alle informazioni Deception: accettazione di dati falsi Disruption: interruzione o prevenzione di operazioni corrette Usurpation: controllo non autorizzato di alcune parti del sistema Minacce più ricorrenti Snooping: intercettazione non autorizzata di informazioni. Disclosure passiva Modificazione o alterazione: cambiamento non autorizzato di informazioni. Deception attiva. Esempio: attacco “man-in-the-middle” Masquerading o spoofing: impersonificazione di un’entità da parte di un’altra. Deception/usurpation passiva o anche attiva. Esempio: siti “civetta”. Forme legali: delegazione Minacce più ricorrenti (2) Ripudiazione dell’origine: falso diniego che un’entità abbia inviato (o creato) qualcosa. Deception. Diniego di ricezione: falso diniego che un’entità abbia ricevuto qualcosa. Deception Ritardo: inibizione temporanea di un servizio. Usurpation. Denial of service Diniego di servizio: inibizione a lungo termine di un servizio. Usurpation. Può essere svolta sul server, sul client o in mezzo Si verifica quando un server viene sepolto sotto un enorme numero di richieste di servizi che non può trattare e quindi non riesce più a fare il suo lavoro normale E’ difficile da evitare in generale Politiche e meccanismi Una politica di sicurezza è un’indicazione di cosa è e cosa non è permesso Un meccanismo di sicurezza è un metodo (strumento/procedura) per garantire una politica di sicurezza Esempio: il lab. di inf. di un università stabilisce come politica che non si possono copiare i file dei compiti di un altro studente. Il sistema ha un meccanismo per prevenire la copia di un file da parte di un altro utente Anna non usa tale meccanismo e il sistema è violato Le politiche Una politica di sicurezza stabilisce regole che possono riguardare: le operazioni che si possono usare su certi dati e l’utente che può usarle gli utenti che possono accedere a certi dati. eventuali profili di utente con specifici diritti Politiche di sicurezza La politica di sicurezza si focalizza su: i dati (proteggere) le operazioni (controllare) gli utenti/profili (controllare) Tradizionalmente i SO hanno meccanismi che proteggono i dati. Oggi diventa più importante controllare gli utenti Meccanismi di sicurezza Data una politica, che distingue le azioni “sicure” da quelle “non sicure”, i meccanismi di sicurezza devono prevenire, scoprire o recuperare da un attacco La prevenzione significa che il meccanismo deve rendere impossibile l’attacco Spesso sono pesanti ed interferiscono con il sistema al punto da renderlo scomodo da usare Esempio unanimanente accolto: richiesta di password come modo di autenticazione Meccanismi di sicurezza (2) La scoperta significa che il meccanismo è in grado di scoprire che un attacco è in corso E’ utile quando non è possibile prevenire l’attacco, ma può servire anche a valutare le misure preventive Si usa solitamente un monitoraggio delle risorse del sistema, cercando eventuali tracce di attacchi Meccanismi di sicurezza (3) Il recupero da un attacco si può fare in due modi Il primo è fermare l’attacco e recuperare/ricostruire la situazione pre-attacco, ad esempio attraverso copie di backup Il secondo è continuare a far funzionare il sistema correttamente durante l’attacco (fault-tolerant) Assunzioni e fiducia Come possiamo essere certi che la politica descrive correttamente il livello e il tipo richiesto di sicurezza ? Esempio: per aprire una porta occorre una chiave, l'assunzione ritenuta da molti valida è che il lucchetto sia a prova di ladri In un ambiente in cui ci sono abili scassinatori tale assunzione non è più valida e il sistema non si può più ritenere sicuro Assunzioni e fiducia (2) Un meccanismo M è sicuro (rispetto ad una politica P) se non può condurre a stati non ammessi da P M è liberale se può condurre anche a stati non ammessi da P M è preciso gli stati a cui può condurre coincidono con quelli ammessi da P Come ottenere un sistema sicuro Fasi Specificazione: descrizione del funzionamento desiderato del sistema Progetto: traduzione delle specifiche in componenti che le implementeranno Implementazione: creazione del sistema che soddisfa le specifiche E’ indispensabile verificare la correttezza dei programmi Considerazioni implementative Analisi costi-benefici della sicurezza Analisi dei rischi (valutare le probabilità di subire attacchi e i danni che possono causare) Aspetti legali (ad esempio uso della crittografia negli USA) e morali Problemi organizzativi (ad esempio la sicurezza non “produce” nuova ricchezza, riduce solo le perdite) Aspetti comportamentali delle persone coinvolte Aspetti psicologici La sicurezza viene difficilmente apprezzata La maggior parte degli utenti di internet non sanno nulla di sicurezza, ma hanno bisogno di sicurezza Esiste un conflitto tra sicurezza e facilità d’uso del computer Sono necessarie maggiori risorse di calcolo, interagisce con le abitudini, la gestione della sicurezza costa Aspetti psicologici (2) D’altra parte la sicurezza è necessaria perché c’è una continua crescita delle violazioni della sicurezza informatica Esistono software d’attacco disponibili su rete Si riscontrano anche attacchi molto sofisticati che arrivano a cancellare le tracce Quindi in percentuale cresce il numero degli attacchi che hanno successo ed arrivano a compromettere il sistema attaccato Rintracciabilità Certe “garanzie” possono non bastare: anche azioni autorizzate possono causare violazioni di sicurezza ci può essere un “buco” nei controlli che abbiamo stabilito Impossibile la sicurezza al 100% E’ importante riuscire a tenere traccia di chi ha fatto le azioni che violano la sicurezza : Rintracciabilità (Auditing) Rintracciabilità L’auditing richiede: selezione delle azioni pericolose protezione dei file di log Inoltre richiede l’autenticazione degli utenti in modo da poter collegare le azioni pericolose a chi le ha compiute Sicurezza e livelli in quale livello del computer conviene inserire un meccanismo di controllo ? applicazioni servizi SO kernel del SO hardware Sicurezza e livelli livelli bassi: meccanismi di sicurezza generali, semplici, grossolani, ma dimostrabili corretti livelli alti: meccanismi ad hoc per gli utenti, sofisticati, difficili da dimostrare corretti Sicurezza e livelli il livello sottostante: ogni meccanismo di controllo definisce un perimetro di sicurezza al suo esterno ci sono le parti del sistema il cui malfunzionamento non compromette il meccanismo di controllo al suo interno ci sono invece le parti del sistema che possono essere usate per scardinare il meccanismo di protezione Sicurezza e livelli ogni meccanismo di controllo si situa ad un certo livello del computer, i livelli sottostanti sono sempre nel perimetro di sicurezza del meccanismo. come difendere i livelli sotto quello in cui si trova il meccanismo di controllo Attacchi al livello sottostante Strumenti di recupero che leggono direttamente il contenuto dei dischi o della RAM (byte per byte) ignorando l’organizzazione logica in files che questi bytes rappresentano e quindi evitando il controllo sull’accesso dei files stessi I dispositivi di I/O in Unix sono trattati come files, se i permessi d’accesso ad un disco sono definiti male ed un utente ottiene accesso al disco, esso può avere accesso a tutti i files che vi risiedono indipendentemente dal permesso di accedere ad ogni singolo file Attacchi al livello sottostante Riuso degli oggetti: in sistemi a multiprogrammazione un processo ottiene la CPU a spese di un altro processo cui viene sottratta. Un context switch copia lo stato del vecchio processo su file ed inizializza il nuovo processo. Lo switch non deve lasciare residui in memoria, cioè il nuovo processo non deve poter conoscere lo stato del processo che lo precede Attacchi al livello sottostante Backups e core dumps basta che l’attaccante acceda ai files di backup o a dei core dumps (effettuati in caso di terminazione anomala dei programmi) Visione finale computer risorse utente applic. specifico complesso ??? generico, semplice semplicità e buona garanzia, oppure specificità e minore garanzia ? Modello di Harrison-Ruzzo-Ullman E’ uno dei modelli teorici più semplici per la sicurezza informatica Si basa sui semplici concetti di soggetto, oggetto, diritto e matrice di controllo E’ alla base dei metodi di gestione della sicurezza nei sistemi operativi (capabilities, access control list, ...) Stati Uno stato di un sistema è composto dai valori correnti di tutte le locazioni di memoria dei registri del contenuto delle memorie di massa del contenuto dei dispositivi Di altre componenti del sistema Insieme degli stati P Insieme degli stati sicuri Q Insieme degli stati insicuri P-Q Q P-Q Entità Insieme di oggetti O Insieme di soggetti S, sottoinsieme di O Insieme di diritti R, operazioni che un soggetto s può compiere su un oggetto o Esempio O={file1, file2, process1, process2}, S={process1, process2}, R={read, write, own, append, execute} Matrice di controllo degli accessi Matrice A[s,o] per ogni soggetto s ed ogni oggetto o Il contenuto di A[s,o] è un sottoinsieme di R e specifica quali operazioni s può compiere su o L’operazione own assume di solito il significato di possesso totale dell’oggetto e quindi anche la possibilità di cambiare i diritti dei vari soggetti su tale oggetto Esempio di matrice process1 file1 file2 rd,wr, rd own process1 rd, wr, ex, own process2 wr process2 app rd rd,wr, ex own rd,own Spiegazione E’ chiaro cosa vuole dire che un processo può svolgere le operazioni di read, write, execute e append su un file Verso un processo read vuol dire ricevere segnali, write spedire e execute eseguirlo come sottoprocesso Hostnames Altro esempio Toadflax own Nob ftp Telegraph ftp Toadflax Nob ftp, nsf, mail, ftp, nfs, mail own Telegraph ftp, mail ftp, nsf, mail, own Stati e comandi Stato X=(S,O,A) Primitive di modifica dello stato creare un nuovo soggetto creare un nuovo oggetto aggiungere un diritto r a A[s,o] eliminare un diritto r da A[s,o] eliminare un soggetto eliminare un oggetto Transizioni di stato Un comando incondizionato è una primitiva o una sequenza di primitive Un comando C cambia lo stato corrente S in un nuovo stato S’ S |--C S’ Una sequenza di comandi C1,...,Cn cambia lo stato corrente S in un nuovo stato Sn S |--C1 S1 |--C2 ... Sn-1 |--Cn Sn Comandi condizionali if r in A[s,o] then primitiva1; ...; primitivaN if r1 in A[s1,o1] and ... and rk in A[sk,ok] then primitiva1; ...; primitivaN Esempio comando CREA(soggetto s,file f) crea nuovo oggetto f aggiungi own a A[s,f] comando CONFERISCI(soggetto s,soggetto s’,file f,diritto r) if own in A[s,f] and r in A[s,f] then aggiungi r a A[s’,f] comando RIMUOVI(soggetto s,soggetto s’, file f, diritto r) if own in A[s,f] and r in A[s’,f] then elimina r da A[s’,f] Diritti di copia e di possesso Il diritto di copia (o grant) consente al possessore di un oggetto o di concedere ad altri soggetti un diritto r su o Per il principio di attenuazione il possessore di o può concedere solo diritti che lui possiede su o Il diritto di possesso consente al possessore di o di auto-concedersi o sottrarsi diritti su o La domanda fondamentale Un sistema informatico è definito con un insieme finito di comandi validi C e un insieme finito di diritti R Come possiamo stabilire se è sicuro ? Ad esempio se esiste una sequenza di comandi che conduce ad una violazione di sicurezza ? La domanda fondamentale Esiste un algoritmo in grado di determinare se il sistema è sicuro ? In generale la risposta è NO, in quanto definendo in modo ragionevole quando un sistema è sicuro, si ottiene un problema indecidibile Ad esempio una violazione è quando un utente ottiene un diritto per cui non era autorizzato Modello take-grant E’ però possibile costruire dei modelli vincolati di cui è possibile dimostrare la sicurezza in modo algoritmico Un esempio abbastanza semplice è il modello take-grant in cui è possibile definire se un utente può prendere (take) o concedere (grant) diritti da/a un altro utente che un utente crei un nuovo oggetto, autoconcedendosi diritti su di esso che un utente tolga a se stesso un diritto su un oggetto Modello take-grant Modello take-grant Decidibilità del modello E’ possibile costruire un grafo che rappresenta i diritti che i soggetti hanno sugli altri soggetti e sugli oggetti Ragionando su tale grafo e sull’insieme di comandi validi è possibile verificare in maniera efficiente se c’è la possibilità di “furti” di diritti da parte di non autorizzati e di “cospirazioni” tra utenti Cenni al Schematic Protection Model Si basa sui concetti di ticket X/r: indica il diritto r sull’entità X tipi di soggetti e di oggetti link di collegamento tra soggetti filtro sui link X/rc indica che il diritto su X può essere copiato ad altri I diritti sono suddivisi in inerziali: non cambiano lo stato di protezione del sistema di controllo: cambiano (come take o grant) Cenni al SPM Un diritto r può essere concesso da Y a Z sulla risorsa X se Y possiede il ticket X/rc Y è collegato a Z è ammesso dal filtro il trasferimento di r su X da oggetti del tipo di Y a quelli del tipo di Z Esiste un algoritmo in grado di decidere se un sistema SPM con un certo repertorio di comandi validi è sicuro Politiche di sicurezza Una politica partiziona l’insieme degli stati Q in due parti P, stati sicuri Q-P, stati insicuri Un sistema sicuro è un sistema che partendo da uno stato sicuro non entra mai in uno stato insicuro Una falla nella sicurezza è quando un sistema entra in uno stato insicuro Politiche per la sicurezza Una politica P garantisce la confidenzialità di I rispetto a X se nessun membro di X può accedere a I l’integrita di I rispetto a X se ogni membro di X ha fiducia del contenuto di I la disponibilità di I rispetto a X se se ogni membro di X può accedere ad I Un meccanismo di sicurezza M è un entità o una procedura che rinforza una parte della politica P Tipi di politiche Politiche militari/governative: incentrate primariamente sulla confidenzialità Politiche commerciali: incentrate maggiormente sull’integrità Sono importanti anche ai fini commerciali le politiche di integrità orientate alle transazioni (consistenza delle transazioni) Tipi di controllo sugli accessi Controllo di accesso discrezionale (DAC), detto anche controllo di accesso basato sull’identità (IBAC): ogni utente può avere diritti diversi sugli oggetti è il possessore dell’oggetto che stabilisce i diritti per se e per gli altri soggetti in base all’identità dell’utente che tali diritti sono controllati Tipi di controllo sugli accessi Controllo di accesso mandatorio (MAC), detto anche rule-based access control il sistema controlla gli accessi di un soggetto s ad oggetto o in base alle informazioni su s e su o il singolo individuo non può alterare i diritti il possessore non può assegnare i diritti in maniera arbitraria agli altri soggetti Politiche per la confidenzialità Uno dei modelli più semplici è quello di BellLa Padula Ci sono n livelli di sicurezza, L1 è il livello più basso, ..., Ln è il livello più alto, quello per cui è maggiore la necessità di confidenzialità Ad esempio UC (non classificato) < C (confidenziale) < S (segreto) < TS (top secret) Modello di Bell-La Padula Ogni soggetto s ha un proprio livello di sicurezza L(s) che rappresenta il livello massimo a cui può lavorare Ogni oggetto o ha un proprio livello di sicurezza L(o) che rappresenta il livello di confidenzialità che contiene Ogni soggetto s ha eventuali diritti discrezionali di lettura e/o scrittura sugli oggetti o Esempio Livelli di sicurezza TOP SECRET Soggetti Oggetti Tamara, Thomas File personali SECRET Sally, Samuel File e-mail CONFIDENTIAL Claire, Clarence File di log UNCLASSIFIED Ursula, Urk Elenco telef. Regole di base di Bell-La Padula Il soggetto s può leggere l’oggetto o se L(o)<=L(s) e se ha diritto discrezionale di leggere o (proprietà di sicurezza semplice) Ad esempio Claire non può leggere i file personali, mentre Tamara può leggere i file di log Cosa succederebbe se Tamara copiasse una parte dei file personali sui file di log ? Regole di base Il soggetto s può scrivere l’oggetto o se L(o)>=L(s) e se ha diritto discrezionale di scrivere o (proprietà *) Quindi tutto quello che può scrivere Tamara è Top Secret (file personali), che solo Thomas, oltre a lei può leggere Un sistema è sicuro se qualunque cosa accada (cioè in qualunque stato sia possibile transire attraverso i comandi validi) le due proprietà (semplice e *) continuano a valere Categorie di oggetti Ogni oggetto è classificato in una o più categorie a seconda del contenuto Ad esempio NUC, EUR e US {NUC,EUR,US} {NUC,EUR} {EUR,US} {NUC,US} {EUR} {NUC} {US} 0 0 { } Categorie di oggetti Ogni soggetto ha un livello e un insieme di categorie a cui può accedere Ogni oggetto ha un livello e un insieme di categorie di cui tratta Principio del “need-to-know”: ogni soggetto deve sapere solo quello di cui ha strettamente bisogno Esempio George ha livello (Secret, {NUC, EUR}) Paul ha livello (Secret, {EUR, NUC, US}) DocA ha livello (Confid, {NUC}) DocB ha livello (Secret, {EUR, US}) DocC ha livello (Secret, {EUR}) Dominanza In una coppia (L,C), L è un livello di sicurezza e C è un sottoinsieme di categorie La coppia (L,C) domina la coppia (L’,C’) se L’<=L e C’ è un sottoinsieme di C Ad esempio George domina DocA in quanto Conf < Secret e {NUC} è un sottoinsieme di {NUC, EUR} George non domina DocB Regole s può leggere o se (L(s),C(s)) domina (L(o),C(o)) e s ha il diritto discrezionale di lettura su o Ad esempio George potrebbe leggere DocA e DocC, ma non DocB s può scrivere o se (L(o),C(o)) domina (L(s),C(s)) e s ha il diritto discrezionale di scrittura su o Paul non può scrivere DocA Sicurezza Se ogni comando valido preserva la condizione di semplice sicurezza e la proprietà * allora il sistema è sicuro e non si possono avere intrusioni Un problema grave è che un soggetto S non può mai comunicare con soggetti S’ di livello di sicurezza inferiore Principio di tranquillità Bisognerebbe cambiare i livelli di sicurezza di un oggetto Ma si può ? Principio di tranquillità forte: NO ! Principio di tranquillità debole: Se ciò non viola le regole delle politiche di sicurezza, ad esempio Alzare il livello di un oggetto Abbassare (dopo declassificazione) il livello di un oggetto