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