L'autopsia di un disco rigido rappresenta l'attività basilare nella computer forensics. Gli strumenti a disposizione dell'investigatore sono molti ed ognuno presenta caratteristiche proprie che ne consigliano o meno l'utilizzo in determinate occasioni. Foremost è un ottimo programma su piattaforma Linux per il recupero di file, cancellati o nascosti, direttamente da hard disk o da immagini ricavate attraverso i principali tool di duplicazione (dd, EnCase, Safeback ecc..).
L'interfaccia a linea di comando e la configurazione manuale di questo tool sviluppato dall'U.S. Air Force Office of Special Investigation possono a torto indirizzare l'operatore verso programmi di recupero più immediati che, non sempre, si rivelano la scelta ottimale in analisi ad ampio spettro.
Analizziamo innanzitutto la sintassi del programma:
#
foremost [-h|V] [-qv] [-s num] [-i
-h Stampa il messaggio d'aiuto ed esce
-V Stampa le informazioni di copyright ed esce
-v Modalità Verbose
-q Modalità Quick. Ricerca l'header solo all'inizio del settore
-i Legge i file da analizzare nel file passato come parametro
-o Imposta la directory nella quale saranno salvati i file recuperati
-c Imposta il file di configurazione da utilizzare
-s Salta il numero di bytes specificato prima di iniziare la ricerca
-n Estrae i file senza aggiungere l'estensione
La maggior parte dei parametri è autoesplicativa,
mentre è bene soffermarsi su alcune opzioni che si rivelano
fondamentali ai fini del risultato.
La modalità Quick
(-q ) obbliga il programma a ricercare l'header solo
all'inizio di ogni settore per la lunghezza massima dell'header più
lungo presente nel file di configurazione, tralasciando il resto dei
dati. Ciò velocizza di molto la ricerca ma potremmo lasciare
indietro alcuni file interessanti, ad esempio quelli inglobati in
altri file.
Se non è impostata una directory di output
( -o ), foremost salva i file in una cartella predefinita
chiamata foremost-output, contenuta nella directory corrente
che potrebbe non avere abbastanza spazio od essere destinata ad
altro. La directory di output dev'essere vuota o al limite non
esistere, penserà foremost a crearne una di default.
Il
flag -s ci permette di partire da un determinato offset per
dividere la scansione in più parti o perfezionare la ricerca
di determinati file.
Vediamo alcuni esempi:
foremost
-v -o /mnt/usbDisk/recupero/ /home/immagine1.dd
Analizza
l'immagine contenuta in /home e salva i risultati nella directory
recupero di un hard disk USB.
foremost -v -c
/home/anconelli/foremost.conf /dev/sda1
Legge il file di
configurazione nella home dell'utente ed analizza il device /dev/sda1
foremost -o /home/prove/ -s 681574400
/mnt/immagini/disco1.dd
Inizia a scansire l'immagine
disco1.dd dall'offset 681574400
File di configurazione
Il file di configurazione guida il comportamento di foremost
durante la ricerca ed è sostanzialmente un elenco delle
caratteristiche da ricercare per ogni file. Le righe che iniziano col
carattere # sono considerate commenti e non vengono prese in
considerazione dal programma. Ogni riga è divisa in sezioni
con gli attributi dei file:
|
extension |
case sensitive |
size |
header |
footer |
opzioni |
|
|
|
|
|
|
|
|
mpg |
y |
4000000 |
\x00\x00\x01\xba |
\x00\x00\x01\xb9 |
REVERSE |
|
|
|
|
|
|
|
Foremost nomina numericamente ogni file recuperato, partendo
da 00000000 ed aggiungendo l'estensione specificata nel campo
extension. E' possibile inserire NONE nel suddetto campo per
fare in modo che nessuna estensione sia aggiunta al nome del file.
Case sensitive può essere impostato 'y' o 'n' e
riguarda il trattamento di header e footer.
Size
rappresenta il massimo numero di byte che foremost recupera se non
trova un footer.
L'header ed il footer possono essere
specificati con valori esadecimali, ottali o in caratteri, lo spazio
è rappresentato da \s. I valori esadecimali sono
rappresentati come \x[0-f][0-f], quelli ottali come
\[0-3][0-7][0-7] . L'esempio riportato nel file di configurazione
stesso è il seguente:
\x4f\123\I\sCCI è
equivalente a “OSI CCI”
Un'utile accorgimento è
l'inserimento di una wildcard per stringhe contenenti byte variabili
: il carattere utilizzato di default è '?' (es.
????????\x6d\x6f\x6f\x76) che può essere cambiato
modificando la relativa stringa nel file di configurazione.
Il
campo footer è l'unico opzionale e, in molti casi, è
utile eliminarlo per affidarsi alla dimensione massima specificata.
Oltre a questi parametri esistono due opzioni che possono essere
appese alla riga di specifica per plasmare il comportamento di
foremost in casi particolari:
REVERSE – Foremost esegue la scansione dall'header alla dimensione massima specificata, poi ripercorre il percorso a ritroso fino alla prima occorrenza del footer. Utile nei casi di file con più istanze del footer all'interno (i file PDF appartengono a questa categoria, troverete infatti il parametro REVERSE settato di default nel file di configurazione originale)
NEXT – La scansione si arresta alla prima occorrenza del footer che è escluso dal file recuperato. In questo modo è possibile concludere il recupero quando è presente una stringa che sappiamo per certo non appartenere alla tipologia del file ricercato ma, è altresì possibile recuperare file dei quali non conosciamo il footer concludendo il recupero ed avviando il successivo alla prima occorrenza dello stesso header.
Rapporto
Nella directory in cui sono immagazzinati i dati recuperati, Foremost crea un
file dal nome audit.txt, ovvero un report contenente i dettagli
dell'operazione effettuata tra i quali è da evidenziare
l'offset di partenza originale del file recuperato ( Found at
Byte). Ho trovato questo parametro molto utile per approfondire
una prima ricerca di base. Cercando ad esempio alcune immagini create
con Photoshop 7, possiamo impostare l'header in modo che trovi una
caratteristica unica dell'immagine ( la stringa Adobe\sPhotoshop).
Sapendo che l'occorrenza dell'header è collocata all'offsett
144 (0x90) del file possiamo recuperare per intero l'immagine
calcolando il byte di partenza del file impostandolo come punto di
avvio della ricerca con l'opzione -s.
Le possibilità
di Foremost dipendono molto dalla fantasia dell'investigatore.
Giocate con i file di configurazione, analizzate i dati recuperati
con un buon editor esadecimale, variate le opzioni e createvi
configurazioni ad hoc per le tipologie di recupero più
frequenti: scoprirete che a volte può valer la pena
abbandonare programmi più comodi per tornare alla vecchia e
sobria line di comando.

| Per
informazioni contattare staff@cybercrimes.it
Il logo cybercrimes.it e le immagini relative sono di proprietà del sito. La documentazione presente nel sito è soggetta alla licenza Creative Commons ed è quindi liberamente riproducibile riportando il nome dell'autore originale. |