Il garbaging è una delle tecniche più semplici e molto utilizzate dagli hacker che vogliono scoprire qualcosa in più sul loro bersaglio. Come dice la parola stessa, si tratta letteralmente di rovistare nella spazzatura alla ricerca di qualche documento che, gettato via nella convinzione che ciò lo distruggesse definitivamente, resta a disposizione per diverso tempo. Questo scenario è completamente analogo nel caso di documenti in formato digitale in cui la cancellazione di un file non ne determina la distruzione definitiva.
In questo articolo cercheremo, quindi, di illustrare le tecniche che ci permettono di cancellare con sicurezza un file dal nostro disco. Inoltre vedremo come è possibile recuperare file eliminati in maniera accidentale e come crittografare i nostri i dati in modo da non renderli accessibili a nessun altro.
Come funziona un disco rigido
Per meglio comprenderne il perché facciamo un richiamo semplificato sul funzionamento di un disco rigido: i file vengono memorizzati magnetizzando settori ben definiti dell'hard disk (facendo riferimento ai sistemi tradizionali). La disposizione dei file sul disco viene controllata e gestita da una struttura dati - differente a seconda del filesystem utilizzato - che possiamo immaginare come una "tabella" in cui sono indicizzati tutti i nostri file: dove è memorizzato il file (inizio e fine del settore assegnatogli), se il file è frammentato ossia scritto su più settori non contigui, dimensione, percorso del file ecc...
In questo modo il sistema operativo sa immediatamente dove trovare un file e le operazioni di modifica risultano molto veloci. Questo spiega perché il "taglia e incolla" di un file da una cartella a un'altra è immediato a prescindere dalla dimensione mentre copiare un file è molto più laborioso. Nel primo caso infatti è necessario unicamente modificare gli attributi (in questo caso il path) del file nella tabella citata prima, nel secondo, invece, non sarà sufficiente modificare la tabella ma bisognerà riscrivere sul disco una copia esatta del file in questione.
Lo scenario è analogo nel caso si cancelli un file: l'operazione infatti si traduce unicamente nell'eliminazione della voce relativa a quel file nella tabella di indicizzazione. In questo modo lo spazio occupato da quel file verrà messo a disposizione per eventuali altre scritture, ma fino a questo evento vi resterà memorizzato il nostro vecchio file.
È necessaria una puntualizzazione: per "cancellazione di un file" ci riferiamo all'operazione di "svuota cestino". Finché si trovano nel cestino i file sono stati semplicemente spostati in una cartella speciale e il recupero è una operazione immediata.
Cancellare in modo sicuro i file
In base a quanto detto in precedenza il file cancellato rimarrà presente sul disco finchè lo spazio che occupa non verrà utilizzato per memorizzare altri dati. Proprio su questo concetto si basano i programmi che permettono di cancellare, in modo definitivo, il file scrivendo altri dati (pseudo casuali) sullo spazio occupato.
Un esempio è Eraser: dopo una semplice installazione, tramite l'interfaccia del programma, possiamo scegliere se pianificare una cancellazione periodica (magari di una cartella in cui metteremo i file da eliminare con sicurezza) o una cancellazione immediata selezionando file, cartelle o anche lo spazio libero dei nostri dischi rigidi (onde evitare il pericolo di recupero dei dati descritto prima).
Successivamente sarà possibile selezionare il tipo di cancellazione desiderata (raggiungibile da Edit / Preferences / Erasing) che determinerà i dati da utilizzare nelle sovrascritture e la ripetizione delle stesse:
Le possibili opzioni vanno dal metodo Gutmann (messo a punto da Peter Gutmann dell'università di Auckland) agli standard americani US DoD 5220 messi a punto dal Dipartimento della Difesa statunitense fino ad arrivare a metodi più semplici come la scrittura di dati pseudo casuali, la sovrascrittura dei primi e ultimi 2k del settore interessato o del metodo elaborato da Bruce Schneier. Da notare nella colonna di destra il numero di "passate" che eseguirà il programma. Questo valore è modificabile chiaramente solo per le metodologie non standard. Molto interessante, inoltre, è la possibilità di definire un nostro personale sistema di sicurezza (tasto New), definendo "passata per passata" i dati da utilizzare nella sovrascrittura.
Ma perché sono necessarie diverse sovrascritture per eliminare le tracce dei nostri dati e non una sola? Immaginate di cancellare del testo scritto a matita da un foglio per poi riscriverci qualcosa: ebbene sarà ancora possibile distinguere il vecchio testo semplicemente osservando i solchi lasciati dalla punta della matita; quindi cancellazioni e sovrascritture renderanno impossibile questa operazione.
Analogamente i dati lasciano sul disco rigido un residuo di magnetizzazione che, anche dopo diverse sovrascritture, permette di ricostruire i dati cancellati. Chiaramente sono necessarie attrezzature, procedimenti e macchine particolari, ed è ciò che fanno le aziende che si occupano di "data recovery" (che spesso salvano la carriera a utenti particolarmente distratti).
Recuperare un file cancellato
Nel caso di disco danneggiato o di cancellazione definitiva di un file (con il metodo delle sovrascritture citato in precedenza), il recupero dei nostri file deve essere affidato a una delle aziende di data recovery. Ma, nel caso in cui avessimo accidentalmente cancellato un file in maniera tradizionale e svuotato il cestino del nostro sistema operativo, molto probabilmente saremmo ancora in tempo per recuperarlo. In questo caso infatti ci vengono in aiuto diversi strumenti software, tra cui FreeUndelete: un programma gratuito che supporta file system NTFS, FAT32 e FAT16. L'interfaccia è molto intuitiva: basta selezionare un disco ed eseguire la scansione:
Il programma elencherà tutti i file che ancora non sono stati sovrascritti permettendoci di ripristinarli in un percorso a scelta, semplicemente cliccando sul tasto "Undelete".
Crittografare i dati
Le cancellazione sicura di un file ci mette al sicuro da eventuali malintenzionati che volessero recuperare i dati che abbiamo cancellato. Ma ciò non ci mette di certo al riparo da chi volesse leggere i dati ancora presenti sul nostro hard disk (magari dopo aver rubato il vostro portatile o dopo esservisi infiltrato).
La soluzione è rendere i file illegibili a chiunque, se non a voi, tramite la cifratura degli stessi mediante uno dei molteplici algoritmi esistenti. Lo stato dell'arte dei programmi per PC che realizzano questa funzionalità è TrueCrypt: un software gratuito open source estremamente potente (già esaminato su su html.it) .
TrueCrypt non è di immediato utilizzo come i precedenti, ma basta poco per prendere sufficiente confidenza: il primo passo da fare è creare un "container", ovvero una struttura dati che conterrà i nostri dati cifrati. Successivamente bisognerà scegliere se il volume sarà nascosto o meno. Bisognerà poi selezionare un path sul nostro disco dove sarà memorizzato il container, l'algoritmo di cifratura (TrueCrypt supporta AES,Twofish e Serpent, tutti finalisti nella storica competizione vinta dall'algoritmo di Rijndael) e di hashing, la dimensione e infine, la password che può anche essere rappresentata da un file. In questo caso il possesso del file equivarrà alla conoscenza della password.
A questo punto sarà necessario formattarlo con un file system a nostra scelta, per prepararlo a ricevere i nostri file. Durante questa operazione verrà chiesto di muovere velocemente il mouse, creando così delle variazioni casuali di dati nel nostro sistema che verranno utilizzate nella creazione delle chiavi di cifratura
Il passo finale per utilizzare il nostro archivio cifrato è l'associazione dello stesso con un disco virtuale. L'operazione viene chiamata "mount" (suonerà molto familiare a chi usa linux) e viene eseguita dalla schermata principale del programma:
Da questo momento il disco virtuale comparirà tra quelli reali nel nostro "Risorse del Computer". Le operazione eseguibili su questo disco, nell'immagine di esempio G:, sono esattamente quelle dei dischi reali con la differenza che tutto andrà a finire nel container cifrato creato in precedenza.
La potenzialità di TrueCrypt risiede nel fatto che la cifratura/decifratura dei file avviene in tempo reale, in modo del tutto trasparente all'utente. I file sono infatti cifrati automaticamente quando vengono scritti nel container/disco virtuale e decifrati quando vengono caricati in memoria per l'esecuzione. L'unico momento in cui si inserisce la password è nel "mount" del container sul disco virtuale. Potremmo quindi creare più container, portarli nella nostra pendrive o nel nostro hard disk USB, per poi montarli all'occorrenza su qualsiasi PC su cui sia stato installato TrueCrypt.
Un'ultima opzione, proposta al momento della creazione del container, è quella di cifrare il contenuto di una intera partizione del nostro disco. In questo caso bisognerà valutare più attentamente i requisiti prestazionali del programma ma il funzionamento sarà del tutto analogo a quello appena illustrato.
L'operazione finale, forse la più importante, è ricordarsi di smontare tutti i container che altrimenti sarebbero accessibili a chiunque senza dover inserire la password!
Quest'ultima nota sembrerà superflua ma nulla lo è in ambito di sicurezza, specialmente gli accorgimenti banali e elementari poiché sono questi ad essere spesso tralasciati. Ed è sempre su accorgimenti elementari che comincia un sistema complesso di sicurezza: ricordiamoci sempre che la loro mancanza vanificherebbe ogni tentativo di cifratura o cancellazione sicura dei dati.