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.

Slides:



Advertisements
Presentazioni simili
Memoria Virtuale in Linux
Advertisements

1 Introduzione ai calcolatori Parte II Software di base.
Gestione della memoria centrale
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità D1 Architetture di rete.
Gestione della memoria
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità D1 Architetture di rete.
La riduzione dei privilegi in Windows
Corso aggiornamento ASUR10
Safe.dschola.it Attenti alle sovrapposizioni! Procedure Reali Procedure Qualità Procedure Privacy Le politiche per la privacy e la sicurezza non si risolvono.
Il Sistema Operativo.
INTERNET FIREWALL Bastion host Laura Ricci.
Gestione della Memoria
Interfaccia del file system
Strutture dei Sistemi Operativi
Realizzazione del file system
Interfaccia del file system
INTRODUZIONE AI SISTEMI OPERATIVI
La Modifica dei Dati in una Base Dati La modifica dei dati contenuti allinterno di una base dati è unoperazione delicata Infatti, ogni potenziale problema.
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
Sicurezza della Base di Dati
Struttura dei sistemi operativi (panoramica)
File System NTFS 5.0 Disco: unità fisica di memorizzazione
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.
2) Sistemi operativi Lab. Calc. AA2004/05 - cap.2.
TCP_Wrapper Le richieste per un determinato servizio (ad. es. telnet, ftp, rsh, etc.) vengono soddisfatte soltanto se lindirizzo IP del richiedente rientra.
Organizzazione della Memoria (Unix) Text contiene le istruzioni in linguaggio macchina del codice eseguibile, può essere condiviso in caso di processi.
Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di.
1 LINUX: struttura generale The layers of a UNIX system. User Interface.
Il sistema operativo Vito Perrone
SOFTWARE I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono il cosiddetto Hardware (alla lettera, ferramenta). La struttura.
Labortaorio informatica 2003 Prof. Giovanni Raho 1 INFORMATICA Termini e concetti principali.
1 Titolo Presentazione / Data / Confidenziale / Elaborazione di... ASP. Net Web Part e controlli di login Elaborazione di Franco Grivet Chin.
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.
STRUTTURA GENERALE DI UN ELABORATORE
Software e sistema operativo 19-22/5/08 Informatica applicata B Cristina Bosco.
Seconda Università degli Studi di Napoli Facoltà di Economia Corso di Informatica Prof.ssa Zahora Pina.
Configurazione in ambiente Windows Ing. A. Stile – Ing. L. Marchesano – 1/23.
Il Sistema Operativo: il File System
Configurazione di una rete Windows
ECDL Patente europea del computer MODULO 1 Concetti di base della tecnologia dellinformazione 1.5 Sicurezza.
Universita’ degli Studi Roma Tre
Sistema Operativo (Software di base)
I processi.
1 Gestione della Memoria. 2 Idealmente la memoria dovrebbe essere –grande –veloce –non volatile Gerarchia di memorie –Disco: capiente, lento, non volatile.
Informatica Lezione 8 Scienze e tecniche psicologiche dello sviluppo e dell'educazione Anno accademico:
1 Sommario degli argomenti  Sistemi operativi: DOS, Unix/Linux,Windows  Word processors: Word  Fogli elettronici: Excel  Reti: TCP/IP, Internet, ftp,
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
Gestione della Memoria
PiattaformePiattaformePiattaformePiattaforme Antonio Cisternino 28 Gennaio 2005 OpenSourceOpenSourceOpenSourceOpenSource e ProprietarieProprietarieProprietarieProprietarie.
Sistemi operativi di rete Ing. A. Stile – Ing. L. Marchesano – 1/18.
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
1 1. Introduzione alla gestione della memoria 2. Swapping 3. Memoria virtuale 4. Implementazione 5. Algoritmi di sostituzione Gestione della Memoria.
Informatica Lezione 6 Psicologia dello sviluppo e dell'educazione (laurea magistrale) Anno accademico:
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
UNITA’ 02 Malware.
Procedure operative di sicurezza di un sistema informatizzato in un dipartimento servizi.
Sicurezza e attacchi informatici
Cloud SIA V anno.
Procedure operative di sicurezza di un sistema informatizzato in un dipartimento servizi Corso aggiornamento ASUR10.
31 ottobre Security Assessment per Cassa Centrale Analisi delle modalità di deployment di server e di postazioni utente. Simulazione di consulente.
Le basi di dati.
PPT- Postecert PEC – 05/2009 Postecert Posta Elettronica Certificata.
Migrazione a Win2003 Server a cura del Prof. Arturo Folilela.
Gestione delle periferiche. Le periferiche sono dispositivi che permettono le operazioni di input/output.
Sicurezza nei sistemi aziendali. La complessità dei sistemi informatici, la sempre maggiore integrazione tra elementi eterogenei, la crescita dell’accessibilità.
La sicurezza informatica Davide Bacciardi 1B_A.S 2014/2015.
La gestione della rete e dei server. Lista delle attività  Organizzare la rete  Configurare i servizi di base  Creare gli utenti e i gruppi  Condividere.
Transcript della presentazione:

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

Contenuto della lezione Linee guida della sicurezza Linee guida della sicurezza Sicurezza nei sistemi operativi Sicurezza nei sistemi operativi

Linee guida per la progettazione di sistemi sicuri Semplicità Semplicità Meno cose possono andare male... Meno cose possono andare male... Un numero minore possibile di inconsistenze Un numero minore possibile di inconsistenze Facile da capire Facile da capire Restrizioni Restrizioni Minimizzare gli accessi Minimizzare gli accessi Inibire la comunicazione Inibire la comunicazione

Minimo Privilegio Un soggetto deve possedere solo i diritti di cui ha bisogno per svolgere i propri compiti Un soggetto deve possedere solo i diritti di cui ha bisogno per svolgere i propri compiti I diritti sono concessi in base alla funzione, non all’identità I diritti sono concessi in base alla funzione, non all’identità I diritti sono aggiunti quando servono e quando non servono più sono revocati I diritti sono aggiunti quando servono e quando non servono più sono revocati Non tutti i sistemi, a causa della granularità dei permessi, sono in grado di soddisfare tale principio Non tutti i sistemi, a causa della granularità dei permessi, sono in grado di soddisfare tale principio

Fail-Safe Defaults Per default, l’accesso di un soggetto ad un oggetto deve essere negato Per default, l’accesso di un soggetto ad un oggetto deve essere negato Ogni diritto deve essere concesso esplicitamente Ogni diritto deve essere concesso esplicitamente Inoltre se un’azione fallisce il sistema deve restare sicuro, come se l’azione non fosse stata svolta Inoltre se un’azione fallisce il sistema deve restare sicuro, come se l’azione non fosse stata svolta

Economia del Meccanismo Tenere il sistema più semplice possibile: Tenere il sistema più semplice possibile: nel progetto, implementazione, numero di operazioni, interazioni con altre componenti, addirittura nella specifica nel progetto, implementazione, numero di operazioni, interazioni con altre componenti, addirittura nella specifica Semplice significa anche che ci sono meno cose da controllare Semplice significa anche che ci sono meno cose da controllare In caso di errori è più facile identificarli e correggerli In caso di errori è più facile identificarli e correggerli Particolare attenzione deve essere posta nelle interfacce ad altri moduli (possono fare assunzioni non verificate) Particolare attenzione deve essere posta nelle interfacce ad altri moduli (possono fare assunzioni non verificate) esempio: finger esempio: finger

Completa Mediazione Controllare ogni accesso Controllare ogni accesso Di solito il controllo è fatto al primo accesso Di solito il controllo è fatto al primo accesso Ad esempio in UNIX il controllo di accesso in lettura ad un file è fatto solo all’apertura del file e non ad ogni operazioni di lettura Ad esempio in UNIX il controllo di accesso in lettura ad un file è fatto solo all’apertura del file e non ad ogni operazioni di lettura Se i permessi cambiano durante l’operazione, si possono generare accessi non validi Se i permessi cambiano durante l’operazione, si possono generare accessi non validi

Open Design La sicurezza non dovrebbe dipendere dalla segretezza nella progettazione o dell’implementazione del sistema La sicurezza non dovrebbe dipendere dalla segretezza nella progettazione o dell’implementazione del sistema Si potrebbe intendere che il codice sorgente dovrebbe essere pubblico Si potrebbe intendere che il codice sorgente dovrebbe essere pubblico “Sicurezza mediante oscurità” ? “Sicurezza mediante oscurità” ? Non va bene con informazioni tipo passwords o chiavi crittografiche Non va bene con informazioni tipo passwords o chiavi crittografiche

Separazione dei Privilegi Non si può concedere un diritto in base ad una condizione sola Non si può concedere un diritto in base ad una condizione sola ad esempio in molti Unix per diventare root bisogna ad esempio in molti Unix per diventare root bisogna 1. conoscere la password di root 2. far parte del gruppo wheel Perciò si devono richiedere più condizioni per garantire un privilegio Perciò si devono richiedere più condizioni per garantire un privilegio Separazione dei compiti: in un’azienda chi scrive gli assegni non deve firmarli Separazione dei compiti: in un’azienda chi scrive gli assegni non deve firmarli “Defense in depth”: mettere più ostacoli ad un eventuale attaccante “Defense in depth”: mettere più ostacoli ad un eventuale attaccante

Least Common Mechanism I meccanismi di accesso alle risorse dovrebbero essere condivisi il meno possibile I meccanismi di accesso alle risorse dovrebbero essere condivisi il meno possibile L’informazione può fluire attraverso i canali condivisi L’informazione può fluire attraverso i canali condivisi “Covert channels” “Covert channels” Isolamento Isolamento Virtual machines Virtual machines Sandboxes Sandboxes

Accettabilità psicologica I meccanismi di sicurezza non dovrebbero rendere più difficile l’accesso alle risorse I meccanismi di sicurezza non dovrebbero rendere più difficile l’accesso alle risorse Nascondere la complessità introdotta dai meccanismi di sicurezza: chiarezza nei messaggi errori Nascondere la complessità introdotta dai meccanismi di sicurezza: chiarezza nei messaggi errori Facilità di installazione, configurazione e uso Facilità di installazione, configurazione e uso I fattori umani sono critici in questo punto I fattori umani sono critici in questo punto

Sicurezza nei sistemi operativi Strumenti di protezione hardware Strumenti di protezione hardware Controllo di accesso a file Controllo di accesso a file Progettazione di S.O. fidati Progettazione di S.O. fidati Esempi di implementazione Esempi di implementazione

Sistema operativo La sicurezza in un sistema operativo è essenziale in quanto il software applicativo agisce (quasi) esclusivamente “sul” sistema operativo La sicurezza in un sistema operativo è essenziale in quanto il software applicativo agisce (quasi) esclusivamente “sul” sistema operativo Ogni falla del sistema operativo è quindi estremamente grave e può portare a danni molto maggiori di falle nei programmi applicativi Ogni falla del sistema operativo è quindi estremamente grave e può portare a danni molto maggiori di falle nei programmi applicativi

Protezione degli oggetti I maggiori problemi di sicurezza nei sistemi operativi sono dati (oltre che dalla rete) dalla multiprogrammazione I maggiori problemi di sicurezza nei sistemi operativi sono dati (oltre che dalla rete) dalla multiprogrammazione Gli oggetti che devono essere protetti sono Gli oggetti che devono essere protetti sono memoria memoria dispositivi condivisibili, come i dischi o le stampanti dispositivi condivisibili, come i dischi o le stampanti programmi e procedure condivisi programmi e procedure condivisi rete rete dati dati

Separazione L’idea di base della sicurezza è tenere separati gli oggetti di ogni utente L’idea di base della sicurezza è tenere separati gli oggetti di ogni utente separazione fisica separazione fisica separazione temporale separazione temporale separazione logica separazione logica separazione crittografica separazione crittografica Questo ordine è crescente in complessità e per i primi tre decrescente in sicurezza Questo ordine è crescente in complessità e per i primi tre decrescente in sicurezza

Condivisione Non è possibile separare solamente Non è possibile separare solamente Gli utenti devono poter condividere alcune risorse Gli utenti devono poter condividere alcune risorse Il sistema operativo può a tal scopo Il sistema operativo può a tal scopo Non proteggere le risorse Non proteggere le risorse Isolare i processi Isolare i processi Gestire oggetti pubblici e privati Gestire oggetti pubblici e privati Gestire le capabilities Gestire le capabilities Limitare l’uso degli oggetti Limitare l’uso degli oggetti

Protezione della memoria Sistemi “fence”: ogni processo ha una zona di memoria definita dal valore del registro base B e del registro limite L Sistemi “fence”: ogni processo ha una zona di memoria definita dal valore del registro base B e del registro limite L In tal modo il processo può accedere solo alle locazioni comprese tra B e B+L In tal modo il processo può accedere solo alle locazioni comprese tra B e B+L Ad ogni cambio di contesto B e L devono essere caricati con i valori relativi al processo corrente Ad ogni cambio di contesto B e L devono essere caricati con i valori relativi al processo corrente Si può anche separare zona codice e zona dati Si può anche separare zona codice e zona dati

Protezione della memoria Architettura tagged: ogni locazione di memoria (o gruppi di locazione) ha uno o più bit di protezione che indicano i diritti di accesso Architettura tagged: ogni locazione di memoria (o gruppi di locazione) ha uno o più bit di protezione che indicano i diritti di accesso Segmentazione: la memoria è gestita a segmenti Segmentazione: la memoria è gestita a segmenti Ogni segmento ha un indirizzo iniziale e una lunghezza e viene assegnato ad un processo Ogni segmento ha un indirizzo iniziale e una lunghezza e viene assegnato ad un processo

Protezione della memoria Il S.O. mantiene una tabella dei segmenti Il S.O. mantiene una tabella dei segmenti Gli indirizzi logici che un programma può usare sono nella forma Gli indirizzi logici che un programma può usare sono nella forma L’indirizzo logico viene convertito in indirizzo fisico aggiungendo all’offset l’indirizzo base del segmento L’indirizzo logico viene convertito in indirizzo fisico aggiungendo all’offset l’indirizzo base del segmento Ogni accesso alla memoria è filtrato (hardware e S.O.) Ogni accesso alla memoria è filtrato (hardware e S.O.)

Protezione della memoria Ogni segmento può avere una certa classe di protezione (sola lettura, sola esecuzione,...) Ogni segmento può avere una certa classe di protezione (sola lettura, sola esecuzione,...) Paginazione: la memoria è suddivisa in pagine fisiche della stessa grandezza Paginazione: la memoria è suddivisa in pagine fisiche della stessa grandezza Lo spazio accessibile ad un programma è suddiviso a sua volta in pagine logiche Lo spazio accessibile ad un programma è suddiviso a sua volta in pagine logiche Ogni pagina logica corrisponde ad una pagina fisica (se non c’è la memoria virtuale) Ogni pagina logica corrisponde ad una pagina fisica (se non c’è la memoria virtuale)

Protezione della memoria Il S.O. mantiene una tabella di corrispondenza tra pagine logiche e pagine fisiche Il S.O. mantiene una tabella di corrispondenza tra pagine logiche e pagine fisiche Un indirizzo logico è una coppia e viene tradotto in un indirizzo fisico Un indirizzo logico è una coppia e viene tradotto in un indirizzo fisico Non è semplice associare i diritti sulle pagine Non è semplice associare i diritti sulle pagine E’ possibile però combinare paginazione e segmentazione E’ possibile però combinare paginazione e segmentazione

Controllo di accesso ad oggetti generali Scopi della protezione Scopi della protezione controllare ogni accesso: si può revocare un diritto mentre l’utente ha già fatto un accesso controllare ogni accesso: si può revocare un diritto mentre l’utente ha già fatto un accesso garantire il principio del minimo privilegio garantire il principio del minimo privilegio verificare gli usi accettabili di un oggetto verificare gli usi accettabili di un oggetto

Directory Creare una sorta di directory per oggetti generali per ogni utente del sistema Creare una sorta di directory per oggetti generali per ogni utente del sistema Nella directory dell’utente s si indica per ogni oggetto o quali operazioni s può fare su o Nella directory dell’utente s si indica per ogni oggetto o quali operazioni s può fare su o Problemi Problemi liste molto grandi se ci sonooggetti condivisi da tutti liste molto grandi se ci sonooggetti condivisi da tutti revoche di diritti a cascata revoche di diritti a cascata pseudonimi pseudonimi

Liste di controllo degli accessi Ogni oggetto ha una lista di controllo (ACL) che indica per ogni (o per qualche) utente quali diritti possiede su tale oggetto Ogni oggetto ha una lista di controllo (ACL) che indica per ogni (o per qualche) utente quali diritti possiede su tale oggetto E’ possibile indicare i diritti di default (che sono validi per tutti gli utenti non specificati direttamenti) E’ possibile indicare i diritti di default (che sono validi per tutti gli utenti non specificati direttamenti)

Forme elementari di protezione Tutti/nessuno: differenza solo tra file pubblici e file privati Tutti/nessuno: differenza solo tra file pubblici e file privati Permesso al singolo: accesso mediante password (o altri token) Permesso al singolo: accesso mediante password (o altri token) Protezione orientata alle procedure: non si possono eseguire accessi arbitrari agli oggetti, ma vi si può accedere solo mediante procedure “esposte” (simile alla OOP) Protezione orientata alle procedure: non si possono eseguire accessi arbitrari agli oggetti, ma vi si può accedere solo mediante procedure “esposte” (simile alla OOP)

Protezione in UNIX I file e le directory hanno 9 bit che indicano i diritti r(ead), w(rite), (e)x(ecute) per I file e le directory hanno 9 bit che indicano i diritti r(ead), w(rite), (e)x(ecute) per il possessore del file il possessore del file gli utenti del gruppo associato al file gli utenti del gruppo associato al file tutti gli altri utenti tutti gli altri utenti I diritti sono concessi dal possessore (o dal superuser) con chmod I diritti sono concessi dal possessore (o dal superuser) con chmod E’ possibile cambiare proprietario/gruppo del file con chown e chgrp E’ possibile cambiare proprietario/gruppo del file con chown e chgrp

Protezione in Unix I diritti per le directory vanno intesi I diritti per le directory vanno intesi r: si può listare il contenuto della directory r: si può listare il contenuto della directory w: si può modificare il contenuto della directory (creando, cancellando e rinominando file o directory) w: si può modificare il contenuto della directory (creando, cancellando e rinominando file o directory) x: si può entrare nella directory x: si può entrare nella directory E’ possibile proteggere anche i dispositivi di I/O E’ possibile proteggere anche i dispositivi di I/O

Limiti del sistema di protezione Il limite principale del modello di protezione in Unix è che non si riesce ad assegnare più di tre modi diversi di accesso Il limite principale del modello di protezione in Unix è che non si riesce ad assegnare più di tre modi diversi di accesso Anna non può stabilire che Anna non può stabilire che lei può fare tutto sul file X lei può fare tutto sul file X Barbara può solo leggere ed eseguirlo Barbara può solo leggere ed eseguirlo Carla lo può solo eseguire Carla lo può solo eseguire gli altri non possono accedervi gli altri non possono accedervi

SETUID In Unix è possibile che il processo di un utente nell’eseguire un determinato file assuma momentaneamente l’identità (e quindi i diritti) del proprietario In Unix è possibile che il processo di un utente nell’eseguire un determinato file assuma momentaneamente l’identità (e quindi i diritti) del proprietario Si distingue utente e gruppo di login rispetto a utente e gruppo attuale Si distingue utente e gruppo di login rispetto a utente e gruppo attuale Tale possibilità è data attraverso il comando setuid Tale possibilità è data attraverso il comando setuid

ACL In molti sistemi operativi il sistema operativo affianca alla normale gestione degli accessi in differenziata per il possessore e per il gruppo associato al file, anche diritti ad hoc per singoli utenti o gruppi In molti sistemi operativi il sistema operativo affianca alla normale gestione degli accessi in differenziata per il possessore e per il gruppo associato al file, anche diritti ad hoc per singoli utenti o gruppi Possono essere anche presenti ulteriori tipi di diritti, oltre ai semplici r,w,x Possono essere anche presenti ulteriori tipi di diritti, oltre ai semplici r,w,x

Capabilities Una forma alternativa di gestire gli accessi è quella della capabilities Una forma alternativa di gestire gli accessi è quella della capabilities Ogni utente può ricevere dei “ticket” che gli permettono di svolgere certe operazioni su un determinato oggetto Ogni utente può ricevere dei “ticket” che gli permettono di svolgere certe operazioni su un determinato oggetto Il ticket deve essere non falsificabile Il ticket deve essere non falsificabile E’ possibile, avendone il diritto, trasferire e propagare una capability ad altri utenti E’ possibile, avendone il diritto, trasferire e propagare una capability ad altri utenti

Capabilities Le capability devono essere memorizzati in zone di memoria inaccessibili ai processi utente e gestiti solo dal S.O. Le capability devono essere memorizzati in zone di memoria inaccessibili ai processi utente e gestiti solo dal S.O. Una capability può essere revocato Una capability può essere revocato dopo la revoca il diritto non può essere più esercitato dal possessore del ticket dopo la revoca il diritto non può essere più esercitato dal possessore del ticket

Sistemi operativi fidati Autenticazione degli utenti Autenticazione degli utenti Protezione della memoria Protezione della memoria Controllo di accesso a file e dispositivi di I/O Controllo di accesso a file e dispositivi di I/O Allocazione e controllo di accesso ad oggetti Allocazione e controllo di accesso ad oggetti Condivisione Condivisione Equità di servizio Equità di servizio Comunicazione e sincronizzazione interprocesso Comunicazione e sincronizzazione interprocesso Protezione dei dati del S.O. Protezione dei dati del S.O.

Caratteristiche Autenticazione e identificazione degli utenti Autenticazione e identificazione degli utenti Controllo obbligatorio e discrezionale Controllo obbligatorio e discrezionale Protezione sul riutilizzo degli oggetti: attenzione quando si riutilizza una risorsa, potrebbe contenere dati di precedenti esecuzioni Protezione sul riutilizzo degli oggetti: attenzione quando si riutilizza una risorsa, potrebbe contenere dati di precedenti esecuzioni Completa mediazione Completa mediazione Percorso fidato: per evitare spoofing Percorso fidato: per evitare spoofing

Caratteristiche Accountability e Audit Accountability e Audit non è possibile loggare ogni istruzione non è possibile loggare ogni istruzione problema dell’ago nel pagliaio nel cercare tracce di eventuali attacchi problema dell’ago nel pagliaio nel cercare tracce di eventuali attacchi una soluzione è la riduzione del log una soluzione è la riduzione del log Strumenti di scoperta delle intrusioni Strumenti di scoperta delle intrusioni si usano tecniche statistiche per rilevare possibili intrusioni attraverso la presenza di comportamenti anomali si usano tecniche statistiche per rilevare possibili intrusioni attraverso la presenza di comportamenti anomali

Implementazioni Esistono tre grandi categorie di S.O. fidati Esistono tre grandi categorie di S.O. fidati i S.O. kernelizzati (kernelized) i S.O. kernelizzati (kernelized) minimo privilegio e economia di meccanismo minimo privilegio e economia di meccanismo i S.O. isolati i S.O. isolati estensione del minimo comun meccanismo estensione del minimo comun meccanismo i S.O. a struttura ad anello i S.O. a struttura ad anello disegno aperto e mediazione completa disegno aperto e mediazione completa

Kernelized Design Il kernel (nucleo) è la parte del S.O. che esegue le funzioni al livello più basso Il kernel (nucleo) è la parte del S.O. che esegue le funzioni al livello più basso Si usa un security kernel che si occupa di garantire i meccanismi di sicurezza dell’intero sistema Si usa un security kernel che si occupa di garantire i meccanismi di sicurezza dell’intero sistema Tutti gli accessi ad oggetti protetti devono passare attraverso il security kernel Tutti gli accessi ad oggetti protetti devono passare attraverso il security kernel E’ più semplice tracciare le operazioni, modificare e verificare formalmente la correttezza del security kernel E’ più semplice tracciare le operazioni, modificare e verificare formalmente la correttezza del security kernel

Monitor Un primo modo per avere un S.O. kernelizzato è usare i reference monitor Un primo modo per avere un S.O. kernelizzato è usare i reference monitor Controlla tutti gli accessi ad un oggetto Controlla tutti gli accessi ad un oggetto Deve essere Deve essere non manomettibile non manomettibile sempre invocato sempre invocato piccolo, per essere meglio analizzato e testato piccolo, per essere meglio analizzato e testato

Trusted Computing Base Porzione del S.O. che rinforza le politiche di sicurezza del S.O. Porzione del S.O. che rinforza le politiche di sicurezza del S.O. Differenza tra software TCB e non TCB Differenza tra software TCB e non TCB In TCB In TCB attivazione processi attivazione processi esecuzione di processi in domini diversi esecuzione di processi in domini diversi protezione memoria protezione memoria operazioni di I/O operazioni di I/O

Isolamento Il miglior modo per costruire S.O. basati sull’isolamento è la virtualizzazione Il miglior modo per costruire S.O. basati sull’isolamento è la virtualizzazione Si basa sull’emulazione, attraverso delle macchine virtuali, delle risorse di un computer Si basa sull’emulazione, attraverso delle macchine virtuali, delle risorse di un computer Ha bisogno di aiuti anche hardware Ha bisogno di aiuti anche hardware E’ un’estensione del concetto di memoria virtuale E’ un’estensione del concetto di memoria virtuale

Design a livelli Costruire un S.O. a vari livelli Costruire un S.O. a vari livelli I livelli più interni sono quelli più fidati, sono delegati a svolgere le operazioni più delicate I livelli più interni sono quelli più fidati, sono delegati a svolgere le operazioni più delicate La struttura a livelli garantisce l’incapsulamento, nascondendo e proteggendo i dettagli La struttura a livelli garantisce l’incapsulamento, nascondendo e proteggendo i dettagli Inoltre si limitano i danni Inoltre si limitano i danni

Assurance Verificare che il S.O. rispetta le politiche desiderate controllando il modello, la progettazione e l’implementazione Verificare che il S.O. rispetta le politiche desiderate controllando il modello, la progettazione e l’implementazione

Vulnerabilità frequenti Gestione dell’I/O: difficile da controllare, in alcuni casi si scavalca il S.O. Gestione dell’I/O: difficile da controllare, in alcuni casi si scavalca il S.O. Ambiguità nelle politiche di accesso: conciliare isolamento e condivisione Ambiguità nelle politiche di accesso: conciliare isolamento e condivisione Mediazione incompleta Mediazione incompleta Generalità: utilizzo di pacchetti di terze parti che devono operare a livello di S.O. Generalità: utilizzo di pacchetti di terze parti che devono operare a livello di S.O.

Metodi di accertamento Testing Testing “Penetration testing” “Penetration testing” Verifica formale Verifica formale Validazione Validazione

Valutazione Orange Book USA Orange Book USA ITSEC Europa ITSEC Europa Combined Federal Criteria USA Combined Federal Criteria USA