Upload
samuela-marini
View
958
Download
4
Tags:
Embed Size (px)
Citation preview
deft
Manuale d’uso
Stefano Fratepietro, Sandro Rossetti R. 0,6
2
GLI AUTORI ................................................................................................................................... 4
LICENZA D’USO.............................................................................................................................. 5
PREMESSA ..................................................................................................................................... 7
INTRODUZIONE ............................................................................................................................. 8
PERCHÉ DEFT È UTILIZZABILE NELL'ATTIVITÀ DI DIGITAL FORENSIC? ............................................................... 9
REQUISITI DI SISTEMA ......................................................................................................................... 10
DEFT LINUX LIVE CD ..................................................................................................................... 11
ELENCO DELLE APPLICAZIONI ................................................................................................................ 11
AVVIARE DEFT LINUX LIVE CD ............................................................................................................. 13
DEFT LINUX TEXT MODE ............................................................................................................... 15
GESTIONE DELLE MEMORIE DI MASSA ..................................................................................................... 16
MOUNT DELLE MEMORIE ..................................................................................................................... 16
File tipo dd/raw ........................................................................................................................ 17
File di tipo EWF/Encase ............................................................................................................ 19
File di tipo AFF .......................................................................................................................... 19
CALCOLO DELL’HASH........................................................................................................................... 20
Md5sum ................................................................................................................................... 20
Sha1sum ................................................................................................................................... 21
Md5 e sha deep ........................................................................................................................ 21
Dhash ....................................................................................................................................... 22
ACQUISIZIONE MEMORIE DI MASSA ........................................................................................................ 23
dd ............................................................................................................................................. 23
ddrescue ................................................................................................................................... 23
dcfldd........................................................................................................................................ 24
Dhash ....................................................................................................................................... 24
CREAZIONE DI UNA TIME LINE ............................................................................................................... 25
Fls ............................................................................................................................................. 25
Mactime ................................................................................................................................... 25
RICERCA FILE E CARTELLE ..................................................................................................................... 26
Locate ....................................................................................................................................... 26
3
Find ........................................................................................................................................... 27
DEFT LINUX GUI MODE................................................................................................................. 29
INTRODUZIONE .................................................................................................................................. 29
GESTIONE DELLA MEMORIA DI MASSA .................................................................................................... 32
CALCOLO DELL’HASH........................................................................................................................... 34
ACQUISIZIONE DI MEMORIE DI MASSA .................................................................................................... 35
Dhash ....................................................................................................................................... 35
Guymager ................................................................................................................................. 36
GESTIONE DI UN CASO CON AUTOPSY ..................................................................................................... 39
Creazione di un caso ................................................................................................................. 39
XPLICO ............................................................................................................................................. 47
Creazione di un caso ................................................................................................................. 47
DEFT EXTRA .................................................................................................................................. 51
APPENDICE 1 – PARAMETRI PER IL BOOT DEL KERNEL .................................................................. 53
APPENDICE 2 – MAN PAGE ......................................................................................................... 145
Mount ..................................................................................................................................... 145
Affuse ..................................................................................................................................... 180
Sha1sum ................................................................................................................................. 187
Md5, sha1, sha256 deep ........................................................................................................ 189
Dhash ..................................................................................................................................... 195
GREP ....................................................................................................................................... 195
DD........................................................................................................................................... 208
DD rescue ............................................................................................................................... 212
DcflDD .................................................................................................................................... 214
Fls ........................................................................................................................................... 220
Mactime ................................................................................................................................. 223
Locate ..................................................................................................................................... 225
Find ......................................................................................................................................... 230
Foremost ................................................................................................................................ 258
4
Gli autori
Stefano “youngSTEr” Fratepietro si laurea nel 2006 in Information
Technology and Management (Scienze di Internet) presso l’Università
degli studi di Bologna con tesi di laurea in Informatica Forense dal titolo
“Uno studio del caso virus Vierika”; certificato ISECOM OPST,
attualmente è un security specialist presso l’ufficio it-security del CSE
(Consorzio Servizi Bancari) ed effettua attività peritali per tribunali,
forze dell’ordine e privati partecipando come consulente tecnico a casi di
fama nazionale come “Buongiorno! Vitaminic” e “Pirelli-Telecom-Ghioni”.
Dal 2005 è creatore e project leader del sistema DEFT. Saltuariamente
effettua attività di docenza in Informatica Forense per Università italiane
e corsi privati. E’ membro IISFA (Italian Chapter) dal 2008.
Sandro “bUSBoy” Rossetti
Alessandro Rossetti vive e lavora a Roma. Molti dei suoi interessi
personali riguardano l'Information Technology, in particolare le
problematiche di security e forensic. È membro di diverse organizzazioni
indipendenti quali Isaca (Boad of Directors of the Rome Chapter), IACIS
ed IISFA (Italian Chapter).
5
Licenza d’uso
Attribuzione - Non opere derivate 2.5 Italia
Tu sei libero di riprodurre, distribuire, comunicare al pubblico, esporre in pubblico,
rappresentare, eseguire e recitare quest'opera
Alle seguenti condizioni:
• Attribuzione — Devi attribuire la paternità dell'opera nei modi indicati dall'autore
o da chi ti ha dato l'opera in licenza e in modo tale da non suggerire che essi
avallino te o il modo in cui tu usi l'opera.
• Non opere derivate — Non puoi alterare o trasformare quest'opera, ne' usarla per
crearne un'altra.
Rinuncia — E' possibile rinunciare a qualunque delle condizioni sopra descritte se ottieni
l'autorizzazione dal detentore dei diritti.
Pubblico Dominio — Nel caso in cui l'opera o qualunque delle sue componenti siano nel
pubblico dominio secondo la legge vigente, tale condizione non è in alcun modo
modificata dalla licenza.
Altri Diritti — La licenza non ha effetto in nessun modo sui seguenti diritti:
• Le eccezioni, libere utilizzazioni e le altre utilizzazioni consentite dalla legge sul
diritto d'autore;
• I diritti morali dell'autore;
• Diritti che altre persone possono avere sia sull'opera stessa che su come l'opera
viene utilizzata, come il diritto all'immagine o alla tutela dei dati personali.
Nota — Ogni volta che usi o distribuisci quest'opera, devi farlo secondo i termini di questa
licenza, che va comunicata con chiarezza.
Questo è un riassunto in linguaggio accessibile a tutti della licenza integrale:
http://creativecommons.org/licenses/by-nd/2.5/it/legalcode
6
Dedicato ad Ele e Silvia per la loro infinita pazienza.
Dedicato anche a bubu e paguro, sperando che prendano più dalle madri che dai loro
padri.
7
Premessa
Con questo manuale vogliamo fornire un'infarinatura sulle principali funzioni e
potenzialità della distribuzione LIVE DEFT.
Rappresenta quindi un punto di partenza da cui trarre spunto e stimolare la crescita delle
proprie conoscenze tecniche.
In queste pagine non sono presenti (per ora) approfondimenti sull’utilizzo di gli ogni
applicativi e comandi dei presenti. Abbiamo inserito alcuni esempi che suggeriscono
all’utente come poter svolgere alcune delle principali attività di Digital Forensic quali
l’acquisizione, la preservazione, l’analisi e la gestione di casi riguardanti memorie di massa
(dischi rigidi, penne usb, lettori mp3) e o traffico telematico su rete IP.
Buona lettura!
8
Introduzione
Stefano Fratepietro, con il supporto di Salvatore Tarantino, Massimiliano Dal Cero,
Davide Gabrini, Bartolomeo Bogliolo, Valerio Leomporra ed Alessandro Rossetti, ha
sviluppato il live CD Linux1 dedicata alla digital forensic2 DEFT3.
Deft fornisce all’operatore anche una selezione, denominata DEFT Extra, di
applicazioni Microsoft Windows (sia open source4 sia closed source) che non hanno
ancora un equivalente altrettanto valido nel mondo *nix.
La prima versione di DEFT Linux fu sviluppata nel 2005 in collaborazione con il corso
di Informatica Forense della facoltà di Giurisprudenza dell’Università degli studi di
Bologna. Questa distribuzione viene tutt’oggi utilizzata durante le ore di laboratorio
del corso di Informatica Forense sia nell’Università di Bologna sia in molte altre
università italiane ed enti privati. Al momento è una delle principali soluzioni
impiegate durante l’attività dalle forze dell’ordine italiane e internazionali.
Questo manuale contiene:
• una breve descrizione dei principali applicativi che compongono la suite
• alcuni how-to esplicativi
DEFT è distribuita gratuitamente senza alcuna garanzia di funzionamento.
1 GNU/Linux è un sistema operativo libero di tipo Unix (o unix-like) costituito dall'integrazione del kernel Linux con elementi
del sistema GNU e di altro software sviluppato e distribuito con licenza GNU GPL o con altre licenze libere. Wikipedia
2 Scienza che studia l'individuazione, la conservazione, la protezione, l'estrazione, la documentazione e ogni altra forma di
trattamento del dato informatico al fine di essere valutato in un processo giuridico e studia, ai fini probatori, le tecniche e gli
strumenti per l'esame metodologico dei sistemi informatici. Wikipedia
3 Acronimo di Digital Evidence & Forensic Toolkit. 4 Il termine indica un software i cui autori permettono il libero studio e l'apporto di modifiche da parte di altri
programmatori indipendenti.
9
Perché DEFT è utilizzabile nell'attività di Digital Forensic?
Un software è adatto per l’attività di digital forensic quando, durante il suo utilizzo,
garantisce l’inalterabilità della struttura dei file o del sistema sottoposto ad analisi.
In particolare DEFT implementa alcune caratteristiche che riducono al minimo il rischio di
alterare il dato sottoposto ad analisi.
Alcune di queste implementazioni sono:
1. Al boot, il sistema non utilizza le partizioni di swap presenti nel sistema sottoposto
ad analisi.
2. Non vi sono automatismi di mount delle memorie di massa all’avvio del sistema.
3. Non vi sono automatismi di alcun tipo durante l’attività di analisi delle evidente;
l’operatore è padrone del mezzo e deve essere consapevole delle operazioni che
sta eseguendo.
4. Tutti i software di acquisizione di memorie di massa e di traffico su rete IP non
alterano l’originalità del dato sottoposto ad acquisizione.
10
Requisiti di sistema
Per l’utilizzo delle funzionalità di DEFT, è sufficiente avviare con il CDROM di DEFT Linux
un qualsiasi sistema avente le seguenti caratteristiche:
1. Una qualsiasi CPU x86 (Intel, AMD o Citrix) con almeno 166 Mhz per eseguire
DEFT Linux in modalità testuale; 200Mhz per eseguire DEFT Linux in modalità
grafica;
2. 64 Mbyte di memoria ram per eseguire DEFT Linux in modalità testuale, 128 per la
modalità grafica;
3. Lettore cd-rom 24x o superiore o porta USB 2.0.
DEFT Linux supporta le nuove architetture Apple con processori Intel.
DEFT Extra può essere eseguito su tutti i sistemi Microsoft Windows a 32 bit. Per le
versioni a 64 bit sono state riscontrate alcune piccole limitazioni che pertanto non ne
garantiscono il totale supporto.
11
DEFT Linux live CD
Elenco delle applicazioni
DEFT Linux
sleuthkit 3.2.0 autopsy 2.24 dff 0.8 dhash 2.0.1 aff lib 3.6.4 disk utility 2.30.1 guymager 0.5.7 dd rescue 1.14 dcfldd 1.3.4.1 dc3dd 7 foremost 1.5.6 photorec 6.11 mount manager 0.2.6 scalpel 1.60 wipe 0.21 hex dump outguess 0.2 ophcrack 3.3.0 xplico 0.6.1 DEFT edition wireshark 1.2.11 ettercap 0.7.3 nmap 5.21 dmraid testdisk 6.11 ghex, light gtk hex editor vinetto 0.6
trID 2.02 DEFT edition readpst 0.6.41 chkrootkit rkhunter 1.3.4 john 1.7.2 catfish galletta 1.0 pasco 1.0 md5sum sha1sum sha224sum sha256sum sha512sum md5deep sha1deep sha256deep skype log view Xnview xmount 0.4.4 IE, Mozilla, Opera and Chrome cache viewer IE, Mozilla, Opera and Chrome history viewer Index.dat file analyzer pdfcrack cracking tool fcrackzip cracking tool clam antivirus 4.15 mc
DEFT Extra
WinAudit 2.28.2 MiTeC Windows Registry Recovery 1.5.1.0 Zeroview 1.0 FTK Imager 3 Nigilant32 0.1 Windows Forensic Toolchest 3.0.05 MoonSols Win32dd 1.0.2.20100417 MoonSols Win64dd 1.0.2.20100417 Windows File Analyzer 1.0 UltraSearch 1.40 Pre-Search xx.08
SmartSniff x86 e x64 1.71 StartupRun 1.22 MyLastSearch 1.44 Mozilla Cookie View 1.30 Opened File View 1.46 Opera Cache View 1.37 Outlook Attack View x86 e x64 1.35 Process Activity View x86 e x64 1.11 Recent File View 1.20 Regscanner x86, x64 e win98 1.82 ServiWin 1.40
12
XnView 1.97.8 X-AgentRansackk 2010 (build 762) Index.dat Analyzer 2.5 AccessEnum 1.2 Autoruns 10.03 DiskView 2.4 Filemon Process eXPlorer 12.04 RAM Map 1.1 Regmon Rootkit Revealer 1.71 VMMap 2.62 WinObj 2.15 AlternateStreamView 1.15 ChromeCacheView 1.25 CurrPorts x86 e x64 1.83 CurrProcess 1.13 FoldersReport 1.21 IE Cache View 1.32 IE Cookie View 1.74 IE History View 1.50 Inside Clipboard 1.11 Live Contacts View 1.07 Mozilla Cache View 1.30 Mozilla History View 1.25 Mozilla Cookie View 1.30
Opened File View 1.46 Opera Cache View 1.37 Outlook Attack View x86 e x64 1.35 Process Activity View x86 e x64 1.11 Recent File View 1.20 Regscanner x86, x64 e win98 1.82 ServiWin 1.40 MUI Cache View 1.01 MyEventView 1.37 SkypeLogView 1.15
USBdeview x86 e x64 1.80 User Assist View 1.01 User Profile View 1.01 Video Cache View 1.78 WhatInStartup 1.25 WinPerfectView 1.10 Password Tool ChromePass 1.10 Dialupass 3.10 IE PassView 1.20 LSA Secrets Dump x86 e x64 1.21 LSA Secrets View x86 e x64 1.21 Mail PassView 1.65 MessenPass 1.35 Network PassRecovery x86 e x64 1.30 Opera PassView 1.01 PasswordFOX 1.25 PC AnyPass 1.12 Protected Pass View 1.63 PST Password 1.12 Remote Desktop PassView 1.01 VNC PassView 1.02 Win9x Passview 1.1 WirelessKeyView x86 e x64 1.34 AViScreen Portable 3.2.2.0 Hoverdesk 0.8 File Restore Plus 3.0.1.811 WinVNC 3.3.3.2 TreeSizeFree 2.40 PCTime LTFViewer 5.2 Sophos Anti-Rootkit 1.5.4 Terminal with tools command line Spartakus 1.0 Testdisk 6.11.3 Photorec 6.11.3
13
Avviare DEFT Linux live CD
Per prima cosa ci si deve assicurare che nella configurazione del BIOS del sistema da
analizzare sia stato impostato il boot da cd-rom/dvd-rom o da memorie di massa esterne
(in base al supporto su cui è presente DEFT). Una volta configurato il BIOS, riavviate il
sistema con il cd-rom già inserito nel lettore cd/dvd o con la penna USB già collegata.
Il boat loader, oltre al cambiamento:
• della lingua del sistema (premendo F2)
• della nazionalità della tastiera (premendo F3)
Cambio lingua di sistema
14
Cambio nazionalità della tastiera
Permette di personalizzare alcuni parametri di avvio di DEFT, quali:
• acpi=off oppure noapic: al boot non vengono utilizzate le funzioni ACPI per la
gestione dell’energia elettrica usata dal proprio sistema;
• nolapic, disabilita la funzione apic per le architetture basate su cpu Intel;
• edd=on, abilita l’Enhanced Disk Drive;
• nodmraid, disabilita l’opzione del kernel dmraid per i raid di tipo software;
• vga=xxx, setta la risoluzione del framebuffer se la scheda video è in vesa mode
15
In rosso i parametri deprecati, in nero i parametri che non hanno riscontrato alcun
problema di funzionamento. maggiori informazioni sui parametri modificabili al boot, è
possibile consultare l’appendice 1.
DEFT Linux text mode
Completata la fase di boot, il sistema presenta la sessione ad interfaccia testuale (con sei
terminali utilizzabili tramite la combinazione di tasti ALT F1 -> F6) con una shell bash
dotata di permessi di root. Questa scelta implementativa è molto utile quando si avvia
DEFT Linux su computer molto vecchi che non permettono l’utilizzo ottimale
dell’interfaccia grafica oppure per l’utente esperto che preferisce operare direttamente
da linea di comando.
16
Gestione delle memorie di massa
Di seguito sono riportati alcuni comandi utili per eseguire operazioni inerenti alla gestione
delle memorie di massa:
• fdisk –l: elenco di tutte le memorie di massa e partizioni collegate al sistema.
• mmls /dev/xxx oppure mmls nomefile.dd: elenca le partizioni presenti nel device o
nell’immagine raw indicando l’offset di partenza e gli spazi non allocati.
• hdparm –Ig /dev/xxx: visualizza le caratteristiche della memoria di massa xxx.
• tail –f /var/log/messages: visualizza in tempo reale i messaggi di information,
warning e debug degli eventi che riguardano anche le memorie di massa.
Mount delle memorie
Il comando mount permette di collegare un file system a una directory di sistema. Il file
system selezionato, oltre ad essere composto da un device, può essere contenuto
DEFT Linux txt mode
17
all’interno di un file:
• nel formato “bit stream image”, meglio noto come formato dd o raw
• nel formato “Encase”, meglio noto come formato ewf
• nel formato “advanced forensic format”, meglio noto come aff.
In ambito forense, il mount diretto di un’evidence deve essere fatto, solo nei casi in cui è
realmente necessario5, in sola lettura. In questo modo viene garantita la totale
inalterabilità della memoria durante l’indagine.
File tipo dd/raw
Per eseguire il mount di file system in sola lettura di memorie fisiche o in formato raw
basterà digitare un comando di tipo:
mount –t tipo –o opzioni sorgente punto_di_mount
dove
• tipo è la tipologia del filesystem, solitamente vfat, ntfs-3g, ext3… ecc, oppure auto
quando non si conosce nel dettaglio il tipo di file system
• sorgente può essere una partizione come ad esempio /dev/hda1 o /dev/sda1,
oppure l’immagine di una partizione come ad esempio dump.dd
• punto_di_mount è solitamente una sottocartella di /media che deve essere creata
prima, ad es. con: mkdir /media/nomecartellachevoglio
• opzioni di uso frequente (-o):
o ro - read-only: monta in sola lettura
o rw - read-write: monta in scrittura (usare per la destinazione delle copia)
o loop - per montare un file immagine
o noatime - non modifica le date di ultimo accesso
o noexec - non permette l’esecuzione di file
o offset=N - quando si monta l’immagine di un disco, fornisce il numero di
byte da saltare per puntare all’inizio della partizione logica da montare
(recuperabile con mmls)
5 Le best practice indicano chiaramente che non si deve lavorare mai sulla memoria di massa originale ma sempre e solo su
una copia.
18
Esempio 1: montare in scrittura una partizione NTFS in cui eseguire un’acquisizione.
mount –t ntfs-3g –o rw /dev/sdb1 /media/dest
Esempio 2: montare in sola lettura una partizione NTFS dell’immagine di un intero disco.
tramite il comando losetup è possibile associare un device loop all’immagine della
memoria image.dd così da poter utilizzare le applicazioni funzionati su device anche su
immagini di memorie di massa:
losetup -r /dev/loop0 /media/disco1/dump.dd
tramite l’utility mmls è possibile scoprire l’offset di inizio di una partizione del disco:
mmls /dev/loop0
ed ottenere un output simile al seguente:
DOS Partition Table
Offset Sector: 0
Units are in 512-byte sectors
Slot Start End Length Description
00: Meta 0000000000 0000000000 0000000001 Primary Table (#0)
01: ----- 0000000000 0000002047 0000002048 Unallocated
02: 00:00 0000002048 0000032255 0026624000 Unknown Type (0x27)
03: 00:01 0000032256 0086598247 0000204800 NTFS (0x07)
05: ----- 0086598248 0976773167 0000002048 Unallocated
Montiamo la partizione identificata come 03 dall’output di mmls specificando l’offset
moltiplicato per 5126:
mount –t ntfs ro,noatime,noauto,noexec,offset=16515072 /dev/loop0 /media/dest
Portate a termine le operazioni sulle memorie, prima di scollegare dal sistema la periferica
montata, è necessario eseguire il comando umount:
umount /media/punto_di_mount.
6
512 byte è la grandezza di default di un settore che compone una memoria di massa
19
File di tipo EWF/Encase
Il mount di una memoria acquisita in formato EWF è possibile mediante l’applicazione
mount_ewf. Questo programma , dato uno o più file “splittati” in formato Encase,
converte “virtualmente“ i file EWF nel formato raw permettendo così il mount del device
come se fosse una memoria acquisita in formato dd.
Esempio: data la memoria disk01 suddivisa nei seguenti file
disk01.E01 disk01.E07 disk01.E13 disk01.E19 disk01.E02 disk01.E08 disk01.E14
disk01.E20 disk01.E03 disk01.E09 disk01.E15 disk01.info disk01.E04 disk01.E10
disk01.E16 disk01.E05 disk01.E11 disk01.E17 disk01.E06 disk01.E12 disk01.E18
Tramite il comando
mount_ewf /media /case1/disk01.E* /tmp/disk01
sarà possibile ricostruire lo split ed eseguire la conversione virtuale in formato raw.
L’operazione darà luogo alla creazione del fire raw /tmp/disk01/disk01, contenuto nella
cartella /tmp/disk01/, che potrà essere montato seguendo la procedura per il mount di
memorie come loop device.
File di tipo AFF
Come per il formato ewf, anche per le memorie acquisite in formato aff è possibile
eseguire il mount grazie all’utility affuse. Essa permette di utilizzare acquisizioni in
formato aff come se fossero immagini raw.
La sintassi è la seguente:
affuse /media/disk/disk01.aff /tmp/disk01/
l’output sarà il file /tmp/disk01/disk01.aff.raw che potrà essere montato seguendo la
procedura per il mount di memorie come loop device.
20
Calcolo dell’hash
L’hash di un blocco di dati (es. un file) è una sequenza di caratteri alfanumerici di
lunghezza fissa generata da una funzione matematica. Qualsiasi modifica dei dati, seppur
minima, porterà alla creazione di un hash totalmente diverso.
Questa funzione matematica è mono direzionale, cioè dato un hash è impossibile
ricostruire il blocco che lo ha originato.
All’interno del sistema Linux questa operazione è possibile mediante l’utilizzo delle
seguenti applicazioni:
• md5sum
• sha1sum
• md5, sha1 e sha256 deep
• dhash
Md5sum
L'acronimo MD5 (Message Digest algorithm 5) indica un algoritmo crittografico di hashing
realizzato da Ronald Rivest nel 1991 e standardizzato con la Request for Comments RFC
1321.
Questo tipo di codifica, presa in input una stringa di lunghezza arbitraria, ne produce in
output un'altra di 128 bit che può essere usata per calcolare la firma digitale dell'input. La
codifica avviene molto velocemente e l'output (noto anche come "MD5 Checksum" o
"MD5 Hash") restituito è tale per cui è altamente improbabile ottenere una collisione tra
due diverse stringhe in input una stessa firma digitale in output. Inoltre, come per la
maggior parte degli algoritmi di hashing, non dovrebbe esserci possibilità, se non per
tentativi (forza bruta), di risalire alla stringa di input partendo dalla stringa di output (la
gamma di possibili valori in output è infatti pari a 2 alla 128esima potenza).
Esempio:
md5sum /dev/sda
21
Sha1sum
Con il termine SHA si indica una famiglia di cinque diverse funzioni crittografiche di hash
sviluppate a partire dal 1993 dalla National Security Agency (NSA) e pubblicate dal NIST
come standard federale dal governo degli USA. L’acronimo SHA sta per Secure Hash
Algorithm.
Come ogni algoritmo di hash, l'SHA produce un message digest, o "impronta del
messaggio", di lunghezza fissa partendo da un messaggio di lunghezza variabile.
La sicurezza di un algoritmo di hash risiede nel fatto che la funzione non sia reversibile
(non sia cioè possibile risalire al messaggio originale conoscendo solo questo dato) e che
non deve essere possibile creare delle “collisioni” di hash, cioè che partendo da file
differenti si riescano a creare intenzionalmente due messaggi con lo stesso digest. Gli
algoritmi della famiglia sono denominati SHA-1, SHA-224, SHA-256, SHA-384 e SHA-512: le
ultime 4 varianti sono spesso indicate genericamente come SHA-2, in modo da
distinguerle dalle varianti precedenti. Il primo tipo produce un digest del messaggio di soli
160 bit, mentre gli altri producono digest di lunghezza in bit pari al numero indicato nella
loro sigla (SHA-256 produce un digest di 256 bit).
Attualmente Lo SHA-1 è l’algoritmo più diffuso della famiglia SHA ed è utilizzato in
numerose applicazioni e protocolli.
Esempio:
sha1sum /dev/sda
Md5 e sha deep
Md5, sha1, sha256 e sha512 deep permettono di calcolare hash di più file ricorsivamente
Esempio:
md5deep –l /root/evidence/ > hash_device.txt
La sintassi sopra citata calcola l’hash md5 di tutti i file contenuti nella cartella
/root/evidence/ e salva i valori degli hash nel file hash_device.txt
22
Dhash
Dhash, disponibile in italiano e inglese, permette (oltre alla contemporanea acquisizione e
calcolo del hash) di calcolare gli hash di file e memorie di massa fornendo in tempo reale
ulteriori informazioni durante la fase di calcolo quali il tempo stimato prima del termine
l’operazione e lo stato del calcolo; al termine è inoltre possibile generare un report in
formato html.
Da test fatti in laboratorio è risultato essere 10% più veloce rispetto agli altri tool sopra
elencati.
Esempio:
dhash -t -f /dev/sda --md5 --sha1 -l dhashlog.html
La sintassi sopra citata calcola simultaneamente l’hash md5 e sha1 sul device /dev/sda e
riporta i valori di hash nel file dhashlog.html.
Il programma è disponibile in lingua italiana ed inglese.
23
Acquisizione memorie di massa
Per acquisizione di una memoria di massa si intende l’operazione che permette una vera e
propria clonazione della memoria oggetto di attività. All’interno del sistema Linux questa
operazione è possibile mediante l’utilizzo dei seguenti tool:
• dd
• ddrescue
• dcfldd
• dhash
dd
Dd prende in input un file o un device e ne restituisce l’esatta sequenza binaria che lo
compone su un file o su un altro device.
Esempio:
dd if=/dev/sda of=/media/disco.img
il comando prende in input la memoria di massa b/dev/sda e restituisce come output il
suo clone all’interno del file disco.img salvato nella cartella /media/.
E’ possibile la clonazione della memoria non solo da memoria di massa a file (o viceversa)
ma anche da memoria di massa a memoria di massa.
Esempio:
dd if=/dev/sda of=/dev/sdb
ddrescue
Come dd, ddrescue permette di clonare il contenuto della memoria di massa di un disco
riversandolo direttamente su un’altra memoria.
ddrescue rappresenta una evoluzione di dd: permette infatti l’acquisizione di memorie di
massa che presentano errori durante l’accesso a determinati settori del disco.
L’acquisizione tramite ddrescue permette di includere anche quei settori danneggiati che
saranno acquisiti settando a zero tutti i bit non leggibili in essi contenuti. Durante
l’acquisizione della memoria l’applicazione fornisce aggiornamenti su quanti byte sono
24
stati letti e scritti, quanti errori di lettura si sono riscontrati e la velocità di acquisizione
calcolata per byte/s.
Esempio:
ddrescue /dev/sda /media/disco.img
dcfldd
dcfldd è una altra evoluzione di dd che permette il calcolo dell’hash (sia md5 che sha1,
singolarmente o contemporaneamente) durante l’acquisizione della memoria. Durante le
operazioni di acquisizione vengono fornite informazioni dettagliate su quanti dati si sono
letti e scritti.
Esempio:
dcfldd if=/dev/sda of=/media/disco.img hash=sha1 hash=md5
Dhash
Questo software permette l’acquisizione in formato dd ed il contemporaneo calcolo degli
hash risultando il 10% più veloce rispetto agli altri programmi in circolazione.
Esempio:
dhash -t -f /dev/sda --md5 --sha1-o disco.dd
La sintassi sopra citata acquisisce e calcola contemporaneamente l’hash md5 e sha1 del
device /dev/sda riportandone i valori nel file dhashlog.html.
25
Creazione di una time line
Uno degli strumenti più noti per la creazione di time line è mac-time: applicazione della
suite Sleuthkit realizzata da Brian Carrier.
Mac-time prende in input un elenco, creato mediante l’applicazione fls, completo dei dati
contenuti all’interno del file system posto ad analisi.
fls, prende come input o un file raw derivante dall’acquisizione di un memoria di massa o
direttamente la memoria stessa, e restituisce l’elenco di tutti i file, allocati e non, da
utilizzare successivamente con mac-time.
fls
Di seguito è riportato un esempio di come utilizzare fls e mac-time.
fls -z GMT -s 0 -m ‘c:’ -f ntfs -r /caso1/image-1.dd > /caso1/list-image1
dove con -z si specifica il fuso orario, -s il disallineamento in secondi dell’ora di sistema
con l’ora reale, -m l’inizio di ogni path di ogni percorso di file e cartella, -f il file system
della memoria acquisita, /caso1/image-1.dd è l’immagine che viene data come input e
/caso1/list-image1 il file contenente l’elenco file.
mactime
mactime -b /caso1/list-image -z gmt -d > /caso1/timeline.csv
con -b si specifica il file da dare in input, -z il time zone, -d > /caso1/timeline.csv
rappresenta la time line in formato csv7.
7 È preferibile l’esportazione in formato csv per facilitare la consultazione tramite applicazioni come OpenOffice o Excel.
26
La tabella seguente è utile per interpretare il significato dei valori che appaiono nella
colonna “Activity Type”. Essi indicano le azione compiute su file e cartelle in un
determinato arco temporale.
File System M A C B
Ext2/3 Modificato Acceduto Creato n/a
FAT Scritto Acceduto n/a Creato
NTFS Modificato Acceduto MFT8 modificato Creato
UFS Modificato Acceduto Creato n/a
Ricerca file e cartelle
E’ possibile eseguire attività di ricerca di file e cartelle utilizzando uno dei seguenti tool:
• locate
• find
Locate
Locate permette la ricerca di file all’interno di memorie di massa. Prima va eseguita
un’indicizzazione con il comando updatedb.
Con il comando
locate finanza –q-i
si esegue una ricerca senza alcuna distinzione maiuscole e minuscole (opzione -i) dei file
che contengono nella propria nomenclatura la parola finanza. Grazie all’opzione -q
saranno segnalati gli errori di accesso a determinate directory del sistema indicandone
anche il motivo (es. errori di tipo “access denied”).
esempio:
locate “*.png” -q
esegue una ricerca di tutti i file con estensione png.
8 Master File Table
27
Find
Find permette di eseguire la ricerca di file senza alcuna indicizzazione preventiva.
esempio:
find . -iwholename “*porn*.png”
vengono indicati tutti i file che contengono la stringa porn nel nome e che abbiano
estensione .png, senza alcuna distinzione maiuscole e minuscole.
esempio:
find . -ctime -2 > lista.txt
trova tutti i file creati negli ultimi 2 giorni riportane poi l’elenco nel file lista.txt
Carving di file
L’attività di carving consiste nel recupero di file, non più referenziati dal file system,
attraverso il riconoscimento di header ed footer9 presenti nel file.
E’ un procedimento molto lungo perché il disco è scandagliato dal primo all’ultimo bit;
metaforicamente parlando, possiamo paragonare il processo di lettura della memoria di
massa al processo di lettura di una unità nastro.
Foremost
Foremost permette il recupero di file cancellati direttamente da memorie di massa o,
preferibilmente, da file di tipo “bit stream image”.
Il comando
foremost -o outpdir dump.img
esegue il carving sul file dump.img secondo la configurazione impostata in
/etc/foremost.conf e salva i file estratti nella directory outpdir.
Il comando
foremost -t png -o outpdir dump.img
esegue il carving di tutti i file png sul file dump.img e salva i file estratti nella cartella
outpdir.
9 Header e footer sono firme che caratterizzano l’inizio e la fine di un determinato tipo di file; nel dettaglio consistono in un
gruppo di valori ottali o esadecimali consecutivi sempre presenti in una certa posizione di un determinato file all'inizio o alla
fine dello stesso.
28
Tramite il parametro –t è possibile ricercare i seguenti tipi di file:
• jpg
• gif
• png
• bmp
• avi
• exe
• mpg
• wav
• riff
• wmv
• mov
• ole
• doc
• zip
• rar
• htm
• cpp
29
DEFT Linux GUI mode
Introduzione
L’interfaccia grafica di DEFT Linux è basata sul “desktop environment” LXDE10 (Lightweight
X11 Desktop Environment). La scelta del desktop manager è caduta sul progetto LXDE per
le caratteristiche implementative del progetto; a oggi è una delle interfacce grafiche più
leggere e perforanti per il mondo Linux.
L’utilizzo di DEFT Linux in modalità grafica è necessario nei casi in cui si debbano utilizzare
programmi che non nascono per l’utilizzo a riga di comando, come ad esempio Digital
Forensic Framework (DFF) o Catfish.
Dalla versione 6 le applicazioni native per sistemi Microsoft Windows, di cui non esiste un
equivalente altrettanto potente per Linux, sono stati integrate ed emulate direttamente
da DEFT Linux mediante il software Wine11.
Per avviare l’interfaccia grafica di DEFT Linux è sufficiente digitare il comando deft-gui.
10
http://www.lxde.org
11 http://www.winehq.org/
30
Desktop DEFT Linux
Il desktop presenta i seguenti elementi:
1. Menu applicazioni
2. File manager
3. Mount manager per agganciare memorie di massa a directory
4. Programma per la creazione di screenshot
5. Visualizzare il desktop
6. Gestione audio
7. Gestione Reti
8. Ora di sistema
9. Manager per sospensione, log out, riavvio e spegnimento del sistema
10. Directory evidence utilizzata da Autopsy e da altri applicativi per salvare i file
d’interesse delle memorie sottoposte ad analisi
11. Utility per configurare i riferimenti temporali del sistema
12. Console di root
31
Nel dettaglio il Menu Applicazioni presenta le seguenti sezioni:
DEFT Linux menu
Accessories: File manager, Galculator, Image viewer, LXTerminal, Manage print job,
Xarchiver.
Disk Forensic: Autopsy, Catfish, Chrome cache view, DFF, Dhash 2, Disk Utility, Guymager,
Hb4most, Hex editor, IE cache view, IE cookie view, IE history view, Index.dat analyzer,
Mountanager, Mozzilla cache view, Mozilla history view, Opera cache view, Ophcrack,
Scite text editor, Skype log view, Take screenshot, Virus scanner, WRR, Xnview.
Network Forensic: Firefox, Wireshark, Xplico.
Sound & Video: Desktop recorder, Xfburn.
System Tools: Htop, System profiler, Task manager.
Preferences: Additional drivers, Customize look, Desktop session setting, Disk utility,
Keyboard and mouse, Language support, Monitor settings, Openbox configuration,
Preferred applications, Printing, Synaptic package manager, Time and date, User and
groups, Windows wireless drivers.
32
Gestione della memoria di massa
Le policy di gestione delle memorie di massa in DEFT Linux gui mode sono pressoché
identiche a quelle della versione a riga di comando.
Nel dettaglio:
• Di default il sistema non compie alcuna azione tolto il rilevamento dei device
collegati al sistema.
• Utilizzando il file manager, tutte le memorie di massa, interne ed esterne,
direttamente collegate al sistema saranno montate in RW (read write.)
• Utilizzando l’applicativo Mount Manager, l’operatore potrà definire policy di
mount ad hoc con cui potrà utilizzare i device a suo piacimento.
Mount in RW usando lxde file manager
33
Mount manager
Mount manager permette di tradurre semplici clic in policy di mount avanzate. Di seguito è
riportata la procedura per eseguire il mount di una memoria di massa in RO (read only) bloccando
completamente qualsiasi azione che possa alterare il file system.
Policy di mount per inalterare il file system
Nel dettaglio, per eseguire il mount è necessario associare una directory esistente a una
partizione della memoria assicurandosi che siano stati configurati i parametri noatime,
noauto, ro, noexec che garantiscono la non alterabilità della memoria di massa durante il
suo utilizzo. Solo in questo modo sarà possibile accedere al file system in sola lettura ed
usato senza aggiornare l’inode access time12.
Con Mount Manager è possibile eseguire anche il mount di file di acquisizioni in formato dd e di file
system di rete come Samba (Windows share) e NFS.
12
Informazione temporale di ultimo accesso ad una risorsa del file system
34
Calcolo dell’hash
Dhash è l’unico tool in DEFT Linux dedicato al calcolo di hash in modalità grafica .
Calcolo dell’hash di un device utilizzando dhash
Una volta avviato il programma, fate clic su “open device” per selezionare una memoria di massa o
su “open file” per selezionare un file, spuntare l’hash da calcolare (md5, sha1 od entrambi) e fare
clic su “starts”. Una volta terminata l’operazione è possibile salvare un report in html contenente i
risultati facendo clic su “save log”.
35
Acquisizione di memorie di massa
Come già indicato, in DEFT Linux è possibile acquisire memorie di massa anche tramite
interfaccia grafica utilizzando Dhash o Guymager. Il primo è adatto per le acquisizioni in
formato dd, mentre il secondo è fortemente consigliato per le acquisizioni in parallelo e in
formato ewf.
Dhash
In Dhash, la procedura per l’acquisizione è simile a quella per il calcolo dell’hash.
Selezionate il device da acquisire facendo clic su “open device” e fate clic su “Acquire”.
Potete decidere di acquisire e comprimere in formato gz spuntando la casella “Compress”
e/o scegliere se effettuare il calcolo del, o degli, hash.
Acquisizione di memoria di massa con calcolo in contemporanea dell’hash md5 e sha1
Premendo il pulsante “Starts” si avvia l’acquisizione.
Al termine delle attività, è possibile salvare un report in formato html facendo clic sul
pulsante “Save log”.
36
Guymager
A differenza di Dhash, Guymager permette una gestione più avanzata delle acquisizioni.
Gestione caso per la fase di acquisizione con Guymager
Guymager permette, oltre all’acquisizione simultanea di più memorie di massa, anche la
gestione di informazioni come:
• Codice caso.
• Catalogazione dell’evidence.
• Nome dell’operatore che sta compiendo le operazioni.
• Descrizione dell’oggetto che si sta acquisendo.
Guymager supporta tutti i principali formati di acquisizione (dd, aff ed encase) e permette
di eseguire il controllo di integrità, tramite verifica del md5 o sha256, sia dell’immagine
creata sia del device originale (anche su immagini splittate).
Per avviare il processo di acquisizione, una volta avviato il programma, fate clic con il
tasto destro del mouse sulla memoria di massa da clonare e selezionare la funzione
37
“Acquire image”. La finestra “Acquire Image” permette di specificare numerose opzioni
dedicate sia all’acquisizione sia alla gestione del caso.
Ricerca di file e cartelle
Grazie a Catfish, è possibile eseguire le stesse operazioni che si possono compiere a riga di
comando tramite i comandi find e locate.
Nell’esempio riportato nell’immagine, una volta selezionata la memoria o la cartella dove
compiere la ricerca, abbiamo lanciato una ricerca di tutti i file aventi estensione TXT
scrivendo nel campo di ricerca *.txt. Una volta terminata la ricerca è possibile aprire i vari
file in elenco con un semplice doppio clic.
Ricerca di file con Catfish
Nella finestra saranno sono riportate anche ulteriori informazioni i file riguardanti la data
dell’ultima modifica, il percorso del file e la sua dimensione sul disco.
38
Carving di file
Hunchbacked 4most, disponibile in italiano ed inglese, è un’interfaccia grafica per la
gestione delle principali funzioni di foremost.
Tramite H4m è possibile eseguire il carving di file con alcuni semplici clic.
Carving di file con Hunchbacked 4most
H4m, una volta indicati il file o il device in cui effettuare la ricerca e la cartella dove
salvare i file recuperati, ricerca e salva tutti i file con header e footer indicati
dall’operatore.
Oltre ai tradizionali formati di file supportati da Foremost, è possibile personalizzare la
ricerca indicando la posizione del file di configurazione contenente i nuovi header e
footer.
39
Gestione di un caso con Autopsy
Autopsy forensic browser è un’interfaccia grafica per la gestione delle funzionalità de “The
Sleuth Kit13”.
È principalmente usata per la gestione dei casi in cui è richiesta l’analisi di memorie di
massa.
Autopsy permette di:
• utilizzare direttamente il device o le acquisizioni in formato dd, aff e encase;
• Visualizzare informazioni sul tipo di file system;
• Analizzare ed identificare il contenuto di file e directory e i loro riferimenti
temporali;
• Recuperare file cancellati;
• Gestire un database degli hash di file del caso posto ad analisi;
• Creare ed analizzare timeline;
• Eseguire ricerche di file per parola chiave;
• Analizzare meta dati;
• Creazione di report delle evidence riscontrate.
Creazione di un caso
Una volta avviato Autopsy dalla sezione Disk Forensic del menu, viene richiesto
all’operatore se creare un nuovo caso o aprirne uno esistente.
In questo caso faremo clic su “new” per la creazione del nostro caso di prova ed
inseriremo i dati in nostro possesso per la catalogazione, come nome del caso, descrizione
del caso e i nomi degli investigatori:
13 http://www.sleuthkit.org/
40
Creazione nuovo caso
Una volta confermati i dati verrà creata una directory contenente tutti i dati del caso nella
directory /root/evidence/nome caso.
All’interno di un caso possono essere aggiunti una o più oggetti (raffiguranti o i soggetti
appartenenti o i sistemi informatici) facendo clic su “add host” all’interno del caso ed
inserire i dati richiesti:
41
Aggiunta di oggetti che compongono il caso
Ad ogni oggetto può essere aggiunta una o più memorie di massa: è sufficiente fare clic su
“add image file” ed inserire nel campo “location” o il collegamento diretto ad una
memoria di massa (del tipo /dev/sdx) o il path contenente il file dell’acquisizione (del tipo
/media/forensic/disco001.dd) e specificare se la memoria che stiamo aggiungendo è una
partizione o l’intera memoria di massa; per quanto riguarda l’import method, per
comodità d’uso è caldamente consigliato lasciare il valore predefinito, cioè symlink.
42
Aggiunta di memoria di massa all’interno dell’oggetto
Una volta aggiunta la memoria vi verrà chiesto se calcolare, o di inserire manualmente se
già calcolato, il valore dell’hash md514 e di specificare il nome simbolico della partizione e
il suo file system.
14 Autopsy supporta solo l’algoritmo di hash md5.
43
Gestione valore dell’hash e tipo di file system della/e partizioni
Al termine delle precedenti operazioni la creazione dell’oggetto Disco001 è completa ed è
possibile o continuare ad aggiungere altre memorie all’oggetto o possiamo iniziare la
nostra analisi facendo clic su “Analyze”.
44
Gestione dell’oggetto Disco001 appartenente al caso
L’interfaccia del modulo di analisi permette all’operatore di visualizzare l’albero delle
directory della partizione sottoposta ad analisi e, una volta selezionato un file, ne viene
visualizzata un’anteprima del contenuto.
L’accesso al file è in sola lettura in modo da non alterarne ne i riferimenti temporali e ne i
suoi metadati.
Nella schermata di analisi è visualizzato:
• Il nome file/directory e il suo percorso
• I valori temporali come data creazione, ultimo accesso ed ultima modifica
• Il tipo di dato
• Se il dato è stato cancellato o no (in rosso se vi è stata richiesta l’azione di
cancellatura del dato).
45
File analysis in Autopsy
Un’altra funzione interessante è la ricerca per parola chiave. Tale funzione permette la
ricerca mediante il comando grep e si estende su tutto l’albero del file system, compreso
lo spazio non allocato. Tale funzione può essere molto lenta nel caso in cui si lanci la
ricerca su memorie contenenti molti file o memorie di grandi dimensioni. In questi casi
suggeriamo di avviare la ricerca per parola chiave utilizzando una shell di sistema ed
eseguire il grep a riga di comando.
La stessa raccomandazione è valida per la creazione di time line.
46
Ricerca di file per argomento
47
Xplico
il progetto DEFT ha sempre sostenuto, sin dalle primissime release di DEFT Linux,
l’evoluzione del progetto Xplico15.
L’utilizzo di Xplico è molto semplice: dato in input un file pcap16 contenente un dump di
rete IP, il programma è in grado di ricostruire i contenuti dei dati transitati in quel
momento nella rete IP rendendoli disponibili e consultabili grazie ad una comoda
interfaccia web.
Creazione di un caso
Avviamo Xplico dalla sezione Network Forensic del menu di DEFT ed inseriamo le seguenti
credenziali per ottenere l’accesso al gestore casi:
15 Il tool, reperibile presso questo indirizzo http://www.xplico.org/, è diventato nel tempo uno dei più potenti Network
Forensic Tool open source.
16 Questo tipo di file contiene pacchetti di dati catturati tramite i programmi "packet sniffing". Solitamente sono pacchetti
che sono stati registrati durante la trasmissione in una rete.
Login Xplico
48
user: xplico
password: xplico
Queste credenziali riguardano l’utente predefinito che può creare e gestire solo i casi ma
non modificare le impostazioni dell’applicazione.
Per poter personalizzare le impostazioni del pannello di controllo, creare nuovi utenti, ecc,
è necessario eseguire la login con le credenziali di administrator:
user “admin”
password “xplico”.
Nell’esempio sotto riportato abbiamo creato un nuovo caso denominato Pippo dove
stiamo acquisendo ed analizzando tutto il traffico che in quel momento passa attraverso
l’interfaccia eth0 della nostra postazione.
Gestione casi Xplico
Al Termine della fase di acquisizione, Xplico avrà già provveduto a decodificare e
ricostruire tutti i tipo di dati supportati, cioè:
49
http
dns
web mail
smtp
pop3
imap
sip
telnet
ftp
tftp
rtp
pjl
facebook chat
msn
irc
Report dati ricostruiti
Nell’esempio precedente abbiamo visitato il sito http://www.libero.it richiesto dall’utente
intercettato. La lista contenente le ricostruzioni di tutti i siti web e di tutti i contenuti
visualizzati è consultabile alla voce “site” del menu web.
50
Lista di tutte le get eseguite dal browser
Va tenuto conto che l’elenco di tutte le get17 eseguite comprenda anche quelle che
l’utente esegue involontariamente come ad esempio tutte le richieste che vengono fatte
dalla pagina web ai vari url contenenti pubblicità o script per il tracciamento.
17 Richiesta ad un web server per la visualizzazione di un determinato url
51
DEFT Extra
DEFT Extra Sys info
DEFT Extra è una interfaccia grafica, utilizzabile solo sui sistemi operativi della famiglia
Microsoft Windows che hanno pre installato il framework .net, che permette l’esecuzione
di una selezione di programmi (e le loro relative descrizioni e potenzialità d’uso) per la
Digital Forensic utilizzati principalmente durante le fasi di pre analisi di un sistema
informatico. All’avvio della GUI viene chiesto all’utente dove salvare il file txt che conterrà
il report delle attività svolte; nel caso in cui viene annullata l’operazione, DEFT Extra non
terrà traccia delle operazioni compiute.
L’utilizzo di DEFT Extra e dei tool che la compongono, potrebbe alterare alcuni dati del
sistema sottoposto ad analisi, come:
• chiavi del registro di Windows che memorizzeranno l’avvio di DEFT Extra
mediante l’autorun (se abilitato);
• data ultimo accesso del file posto ad analisi;
52
• processo DEFT-Extra-3.0.exe in esecuzione;
• scrittura del report in formato txt nel caso in cui l’utilizzatore decidesse di salvare
il report all’interno della memoria di massa del sistema (e non su un supporto
esterno).
Per maggiori dettagli sull’utilizzo di ogni singola applicazione si rimanda alle guide scritte
dai rispettivi sviluppatori.