jump to navigation

File System Steganografici per Linux January 4, 2006

Posted by laspinanelfianco in Sicurezza.
1 comment so far

La democrazia e lo stato di diritto come noi li conosciamo sono una realtà soltanto per una parte della popolazione mondiale. Solo 122 delle 267 nazioni del nostro pianeta sono democrazie e solo il 46% della popolazione mondiale gode delle stesse garanzie politiche e legali a cui noi siamo abituati. Per gran parte della popolazione che risiede nei restanti paesi del mondo, la libertà, la riservatezza delle informazioni e persino la propria incolumità fisica sono delle difficili conquiste quotidiane. Uno dei problemi che queste persone si trovano a dover affrontare ogni mattina è quello di nascondere informazioni importanti agli spietati agenti di polizia del governo locale.

Si badi bene ad un dettaglio: il problema non è soltanto quello di nascondere le informazioni alla parte avversa. Il vero problema è quello di nascondere l’esistenza stessa di queste informazioni. Si, perchè se la controparte dovesse sospettare della loro esistenza, potrebbe facilmente ricorrere alla tortura per estorcerle. Ma come si fa a nascondere l’esistenza stessa di queste informazioni?

Tradizionalmente, uno dei pochi mezzi efficaci è la steganografia, cioè l’arte di nascondere una scrittura all’interno di un altra. Nel caso dei computer, questo significa quasi sempre nascondere un insieme di dati, come un file di testo, una registrazione audio, una foto od un filmato, all’interno di un altro insieme di dati, come una file contentente un brano di musica classica od un anonimo film hollywoodiano.

Esistono molti programmi che permettono di inserire un file di quasi qualunque tipo all’intero di un altro file, di solito audio o video, alla sola condizione che il file ospitante sia molto più grande del file ospitato. Di conseguenza, è abbastanza facile trovare sui PC dei dissidenti alcuni filmati di grandi dimensioni (spesso di tono apertamente pornografico) che vengono usati come “contenitori” steganografici per il materiale compromettente.

Purtroppo, proprio per questo motivo è abbastanza pericoloso tenere filmati e file musicali sui PC in molti paesi del mondo. La loro semplice presenza potrebbe accendere la curiosità di alcuni personaggi al cui confronto l’inquisizione spagnola potrebbe sembrare una associazione di boy scout.

La soluzione migliore a questo problema di segretezza sono i file system steganografici. Questi file system sono in grado di disseminare le informazioni da nascondere tra le pieghe (gli “inode”) di un file system convenzionale (ext2 o ext3, ad esempio). In questo modo, solo chi sa come accedere a questo file system nascosto può accedere alle informazioni sensibili. Se il disco o la partizione ospite è abbastanza grande, ed è stata precedentemente riempita con dati casuali, nemmeno una accurata analisi statistica può rilevare la presenza dei dati nascosti.

Un esempio di file system steganografico per Linux è StegFS, reperibile qui:

http://www.mcdonald.org.uk/StegFS/

http://stegfs.sourceforge.net/

Altri sono elencati qui:

http://koeln.ccc.de/archiv/drt/crypto/linux-disk.html

http://www.seifried.org/security/index.php/Linux_File_System_and_File_Security

Purtroppo, lo sviluppo di questi sistemi si è quasi completamente arrestato dopo l’attacco alle torri gemelle del World Trade Center e lo scoppio della guerra al terrorismo internazionale.

StegFS è ancora pienamente utilizzabile con kernel precedenti il 2.4 ma soffre di un difetto noto: la sua implementazione permette di creare fino a nove livelli steganografici all’interno del file system ospite. Di conseguenza, all’inquisitore di turno è sufficiente assicurarsi di avere ottenuto accesso a questi nove livelli per sapere che la vittima non ha più nulla da nascondere. Per il malcapitato (che magari ha attivato solo i primi 3 livelli) questo può significare una morte atroce, dopo giorni e giorni di tortura. Questa carenza di StegFS è un vero peccato perchè per il resto si tratta di un programma veramente eccellente. Tra l’altro, StegFS è implementato come patch del kernel e non può quindi essere scoperto rovistando tra i moduli del kernel o tra i programmi in spazio utente di Linux.

Non rimane che sperare che qualcuno riprenda lo sviluppo di questi sistemi, li aggiorni al kernel 2.6 ed alla sua nuova tecnologia del VFS. Se le grandi sfide non vi spaventano, potete visitare i link che ho già elencato per avere maggiori informazioni.