Sicurezza del File System Luigi Catuogno [email protected] BARONISSI 30 maggio 2002 Cos’è un file system Luigi Catuogno - Sicurezza del File System 2 1 Cos’è il filesystem • Una parte del sistema operativo… – Interfaccia con i dispositivi (ramdisk, dischi etc.) – Organizzazione dei dati – Accesso ai dati – Interfaccia con le applicazioni Luigi Catuogno - Sicurezza del File System 3 Interfaccia con i dispositivi • Traduzione delle richieste di accesso delle applicazioni (o del s.o.) in chiamate a basso livello al device driver del dispositivo • Cache e buffer management Luigi Catuogno - Sicurezza del File System 4 2 Organizzazione dei dati • Rappresentazione • Indicizzazione/reperibilità • Gestione dello “spazio” – Ricerca ed allocazione – Rilascio Luigi Catuogno - Sicurezza del File System 5 Organizzazione dei dati/2 • Suddivisione (logica) del disco in blocchi • Procedure per: – – – – – Ricerca di un certo blocco Lettura/scrittura di dati nei blocchi Ricerca ed allocazione di blocchi liberi Recupero di blocchi non più utilizzati Controllo dell’impiego di spazio Luigi Catuogno - Sicurezza del File System 6 3 Organizzazione dei dati/3 • Dipende dal tipo di filesystem in uso (FAT32, NTFS, EXT2…) • Impostata sul disco all’atto della formattazione Luigi Catuogno - Sicurezza del File System 7 Accesso ai dati • Accesso ai dati: – – – – – Memorizzazione Identificazione Lettura Scrittura Rimozione Luigi Catuogno - Sicurezza del File System 8 4 Accesso ai dati/2 • Raggruppamento dei dati in file • Identificazione dei file – Associazione blocchi-file – Associazione file-nome – Raggruppamento dei file in directory Luigi Catuogno - Sicurezza del File System 9 Accesso ai dati/3 • Operazioni sui file: – – – – Creazione/modifica Lettura/scrittura Rimozione …esecuzione Luigi Catuogno - Sicurezza del File System 10 5 Interfaccia con le applicazioni • I file system espongono per le applicazione un’interfaccia composta da un insieme di funzioni che implementano le diverse operazioni di accesso Luigi Catuogno - Sicurezza del File System 11 Interfaccia con le applicazioni/2 • Ad esempio il file system ext2 fornisce, tra le altre: ext2_read(), ext2_write(), ext2_open(), etc. • Il set di funzioni è “specializzato” per il file system che lo implementa. Luigi Catuogno - Sicurezza del File System 12 6 Interfaccia con le applicazioni/3 Sistema operativo Ext2_read Ext2_write Read block x Write block… 001 110… File system ext2 Device driver Dispositivo Luigi Catuogno - Sicurezza del File System 13 Interfaccia con le applicazioni/4 ufs_read Sistema operativo ufs_write File system ufs File system ext2 Luigi Catuogno - Sicurezza del File System Device driver Dispositivo Device driver Dispositivo 14 7 Interfaccia con le applicazioni/5 Sistema operativo Appl. read write Virtual file system File system ufs File system ext2 Device driver Dispositivo Device driver Dispositivo Luigi Catuogno - Sicurezza del File System 15 Virtual File System • Fornisce una interfaccia omogenea per i diversi tipi di file system • Si occupa di tradurre le system call dell’applicazione utente nelle chiamate specialistiche del file system in uso Luigi Catuogno - Sicurezza del File System 16 8 File system distribuiti Virtual File system Appl. FS client RETE FS File system server ext2 Luigi Catuogno - Sicurezza del File System Device driver Dispositivo 17 Network File System (NFS) NFS NFS NFS client NFS client rete NFS server FS remoto Luigi Catuogno - Sicurezza del File System • Introdotto dalla SUN negli anni 80 • Consente a più macchine (client) di condividere via rete un file system “esportato” da una di esse (server) • Ogni client “vede” il file system importato (quasi) come se fosse uno dei suoi dischi 18 9 Gestione dei file system Luigi Catuogno - Sicurezza del File System 19 Setup • Installazione dell’ hardware • Partizionamento e formattazione • Configurazione – Criteri di accesso – Quote – Condivisione Luigi Catuogno - Sicurezza del File System 20 10 Manutenzione • Verifica dell’integrità – Crash recovery • Backup – Conservazione dei dati – Data recovery • Gestione accessi – Utenti – Condivisione Luigi Catuogno - Sicurezza del File System 21 Tecniche di protezione dei file 11 Cifratura manuale dei file L’utente: • Cifra i file “riservati” con apposite utility (es. il comando crypt di UNIX, PGP) • Decifra i file protetti ogni volta che vuole accedervi • Gestisce autonomamente strategie di protezione e chiavi di cifratura Luigi Catuogno - Sicurezza del File System 23 Cifratura manuale dei file Svantaggi: • Durante il loro utilizzo i file non sono protetti • L’utilizzo dei file cifrati e’ piuttosto macchinoso • L’utente deve provvedere alla protezione di tutti i file creati dalle applicazioni • La gestione delle chiavi (una per file) e’ completamente a carico dell’utente Luigi Catuogno - Sicurezza del File System 24 12 Applicazioni che cifrano i dati Le applicazioni: • Gestiscono le operazioni di cifratura sui file che utilizzano/producono • Assistono l’utente nella gestione dei file cifrati Luigi Catuogno - Sicurezza del File System 25 Applicazioni che cifrano i dati Svantaggi: • L’aggiornamento puo’ essere laborioso • Lavorano soltanto sui “loro” file • La gestione delle chiavi (una per applicazione) e’ ancora a carico dell’utente Luigi Catuogno - Sicurezza del File System 26 13 Cifratura a livello di sistema • Trasparente all’utente ed alle applicazioni • Maggiore robustezza Luigi Catuogno - Sicurezza del File System 27 Cifratura a livello di sistema •Protezione hardware del disco •Dischi virtuali protetti •File System cifrato Luigi Catuogno - Sicurezza del File System 28 14 Cifratura a livello di sistema Dischi con protezione Hardware: Vantaggi: •Buone prestazioni •Affidabilita’ •Trasparenti alle applicazioni Luigi Catuogno - Sicurezza del File System 29 Cifratura a livello di sistema Dischi con protezione Hardware: Svantaggi: •Costo elevato •Nessuna protezione dei backup •Inadatti ad ambienti distribuiti Luigi Catuogno - Sicurezza del File System 30 15 Cifratura a livello di sistema Dischi virtuali protetti Vantaggi: •Costo contenuto •Flessibilita’ •Trasparenti alle applicazioni Luigi Catuogno - Sicurezza del File System 31 Cifratura a livello di sistema Dischi virtuali protetti: Svantaggi: •Nessuna protezione dei backup •Inadatti ad ambienti distribuiti Luigi Catuogno - Sicurezza del File System 32 16 Il problema del backup utente chiave dati cipher amministratore dati Unita’ di backup Disco protetto Luigi Catuogno - Sicurezza del File System 33 Il problema della condivisione server utente chiave cipher dati dati client Luigi Catuogno - Sicurezza del File System rete Disco protetto 34 17 dove introdurre la cifratura? Livello utente singoli comandi applicazioni system calls Livello sistema virtual file system device driver hardware Luigi Catuogno - Sicurezza del File System 35 in questo modo: • Non viene modificata l’organizzazione logica del disco • La cifratura ha luogo sul contenuto dei file, a valle delle system call di read/write Luigi Catuogno - Sicurezza del File System 36 18 Backup dei dati protetti utente chiave dati cipher amministratore dati Unita’ di backup dati illegibili Disco protetto Luigi Catuogno - Sicurezza del File System 37 Protezione dei dischi condivisi amministratore utente chiave manutenzione dati cipher dati Disco protetto client Luigi Catuogno - Sicurezza del File System rete server 38 19 Perché cifrare un file system? perché… • Si possono proteggere i file senza l’intervento manuale dell’utente • L’accesso ai file protetti non ne aumenta la vulnerabilita’ • Non e’ necessario alcuna modifica alle applicazioni preesistenti • Si mantiene la compatibilita’ con le normali procedure di manutenzione dei dischi Luigi Catuogno - Sicurezza del File System 40 20 Servizi e caratteristiche di un file system cifrato Principali servizi di un F.S. cifrato • Protezione di dati e meta-dati • Gestione delle chiavi • Interfaccia con l’utente/applicazione • Recupero delle chiavi • Condivisione dei file protetti • Controllo sull’integrita’ dei file Luigi Catuogno - Sicurezza del File System 42 21 Alcuni criteri di valutazione di un file system cifrato • • • • Sicurezza Efficienza Trasparenza Portabilita’ Luigi Catuogno - Sicurezza del File System 43 Sicurezza • Scelta dell’algoritmo di cifratura • Scelta delle componenti fidate • Rigore nell’implementazione Luigi Catuogno - Sicurezza del File System 44 22 Efficienza • Granularita’ della protezione – Cosa proteggere, quando e quanto • Semplicita’ del modello • Dipendenza dall’architettura/s.o. – Utilizzo di sistemi di cache per i dati – Impiego di risorse a basso livello Luigi Catuogno - Sicurezza del File System 45 Transparent Cryptographic File System (TCFS) Universita’ di Salerno, 1996 • Nasce per garantire la protezione dei dati in ambiente distribuito • Cifra singoli file o directory • E’ realizzato come modulo dei kernel Linux (2.2.x) • Fornisce la condivisione di file o directory tra gruppi di utenti Luigi Catuogno - Sicurezza del File System 46 23 Network File System (NFS) utente disco condiviso dati dati disco remoto Server NFS Client NFS client rete server Luigi Catuogno - Sicurezza del File System 47 Architettura di TCFS amministratore utente chiavi manutenzione dati disco condiviso disco remoto dati Client TCFS client dati rete Luigi Catuogno - Sicurezza del File System Server NFS server 48 24 Architettura di TCFS: client • TCFS client: riproduce tutti i servizi di un NFS, e’ realizzato come modulo del kernel • Utility di interfaccia Luigi Catuogno - Sicurezza del File System 49 Architettura di TCFS: server • NFS server standard Luigi Catuogno - Sicurezza del File System 50 25 Accesso a file su TCFS amministratore utente chiavi manutenzione dati disco condiviso disco remoto dati Client TCFS client dati rete Server NFS server Luigi Catuogno - Sicurezza del File System 51 Predisposizione di un filesystem TCFS client rete server /home/ciccio /export/ciccio dati Client TCFS dati Luigi Catuogno - Sicurezza del File System Server NFS 52 26 Gestione degli account tcfsadduser ciccio user ‘ciccio’ was successfully created tcfsrmuser ciccio Luigi Catuogno - Sicurezza del File System 53 Creazione della chiave tcfsgenkey password:(si inserisce la password di sistema) please press 10 keys:(dieci tasti a caso) Luigi Catuogno - Sicurezza del File System 54 27 Inizio di una sessione tcfsputkey password: (si inserisce la password di sistema) Luigi Catuogno - Sicurezza del File System 55 Creazione di una directory cifrata mkdir /home/ciccio/privato chattr +x /home/ciccio/privato Luigi Catuogno - Sicurezza del File System 56 28 Creazione di un file cifrato mkdir /home/ciccio/privato2 cd /home/ciccio/privato2 cp /etc/passwd ./prova chattr +x prova Luigi Catuogno - Sicurezza del File System 57 Accesso ad una directory cifrata cd /home/ciccio/privato echo ‘ciao’>saluti cat saluti ciao Luigi Catuogno - Sicurezza del File System 58 29 Termine della sessione tcfsrmkey cd /home/ciccio/privato permission denied cd /home/ciccio/privato2 cat prova permission denied Luigi Catuogno - Sicurezza del File System 59 Accesso alla directory sottostante ls /export/ciccio/privato dksdHG8sdjk cat /export/ciccio/privato/dksdHG8sdjk alksfhuih835lkI&*(35oihjs ls /export/ciccio/privato2 prova cat /export/ciccio/privato2/prova dfgsd88dsfP{KSF}KJMN$# Luigi Catuogno - Sicurezza del File System 60 30 Condivisione di file cifrati E’ possibile effettuare la condivisione di file tra gruppi di utenti secondo lo schema a soglia (n,k) In un gruppo di n utenti, per consentire la fruibilita’ dei file condivisi, almeno k di esse deve fornire a TCFS la sua porzione Luigi Catuogno - Sicurezza del File System 61 Creazione di account di gruppo tcfsaddgroup -g gruppo il sistema chiede all’utente il numero di componenti del gruppo, il valore della soglia, e le uid degli utenti group ‘gruppo’ was successfully created tcfsrmgroup -g gruppo Luigi Catuogno - Sicurezza del File System 62 31 Inizio di una sessione di gruppo tcfsputkey -g gruppo password: (si inserisce la password di sistema) La chiave di cifratura per il gruppo indicato, sara’ attiva solo quando un numero di componenti pari al valore della soglia, ha effettuato l’operazione Luigi Catuogno - Sicurezza del File System 63 Creazione di un file condiviso mkdir /home/ciccio/privato2 cd /home/ciccio/privato2 cp /etc/passwd ./prova chattr +g prova Luigi Catuogno - Sicurezza del File System 64 32 termine di una sessione di gruppo tcfsrmkey -g gruppo La chiave di cifratura per il gruppo indicato, sara’ disattivata solo quando il numero di componenti che hanno fornito la loro porzione di chiave, risultera’ inferiore al valore della soglia Luigi Catuogno - Sicurezza del File System 65 TCFS: sicurezza • Utilizza DES, 3DES, RC5, il motore di cifratura e’ modulare Luigi Catuogno - Sicurezza del File System 66 33 TCFS: sicurezza/2 • Nessun nessun dato/meta-dato circola in chiaro fuori dalla zona fidata • Le chiavi di cifratura non escono dalla zona fidata • Non e’ possibile, sul server, accedere al contenuto dei file cifrati Luigi Catuogno - Sicurezza del File System 67 TCFS: trasparenza • L’utente deve ricordare solo la sua password di sistema • Non occorrono modifiche agli applicativi • Compatibilita’ con le operazioni di manutenzione del disco (fsck, backup, etc.) Luigi Catuogno - Sicurezza del File System 68 34 TCFS: efficienza • Scalabilita’ della cifratura (possono coesistere sul filesystem file protetti e non) • I tempi di accesso(al netto della cifratura) sono confrontabili con quelli di NFS Luigi Catuogno - Sicurezza del File System 69 TCFS: portabilita’ • TCFS gira sui sistemi Linux (kernel 2.2.x), necessita di rimaneggiamenti ad ogni upgrade del kernel • Puo’ fungere da server, qualsiasi macchina server NFS. Luigi Catuogno - Sicurezza del File System 70 35 TCFS: inoltre • E’ stato realizzato un prototipo di TCFS per i sistemi operativi NetBSD ed OpenBSD • Non sono previsti meccanismi di keyrecovery Luigi Catuogno - Sicurezza del File System 71 36