Acquisizione di memorie di massa con DEFT (Marco

Marco Giorgi
Palazzo di Giustizia di Torino
30 marzo 2012

Post mortem (Dopo lo spegnimento del sistema)
◦ Si smonta il dispositivo e lo si collega ad un PC dedicato all'acquisizione

Live forensics (Direttamente sul sistema posto ad analisi)
◦ Nel caso di sistemi RAID l'acquisizione "al volo" è quasi obbligatoria

Su network
◦ Sia nel caso di acquisizione post mortem, sia nel caso di acquisizione
on the fly è possibile salvare l'output direttamente durante la fase di
acquisizione in altri PC o dischi della LAN appositamente configurati
◦ Gli strumenti utilizzati sono
◦ netcat
◦ ssh
30 marzo 2012 - Torino - DEFT Conference 2012: Acquisizione di memorie di massa con DEFT Linux - Marco Giorgi
2

Individuazione del device da acquisire

Essere certi di avere accesso in sola lettura al device

Calcolo hash del device

Acquisizione del device con creazione hash

Verifica degli hash calcolati

Copia su un altro supporto dell’immagine acquisita con
relativa verifica hash
30 marzo 2012 - Torino - DEFT Conference 2012: Acquisizione di memorie di massa con DEFT Linux - Marco Giorgi
3

Gruppo di continuità

Write blocker hardware

Adattatori di ogni genere o almeno quelli più comuni

Tanto spazio su hard disk locale o su rete (PC dedicato o
NAS) per memorizzare i dati acquisiti
◦ Tutti i sistemi ed i dispositivi utilizzati per l'acquisizione vanno
collegati ad un gruppo di continuità
◦ Un write blocker è un dispositivo hardware che viene collegato
al disco da acquisire in modo da bloccarne l'accesso in
scrittura
◦ Preferibilmente certificato da un ente terzo attendibile (es.
NIST)
◦ SATA, IDE, SAS, Firewire, USB
30 marzo 2012 - Torino - DEFT Conference 2012: Acquisizione di memorie di massa con DEFT Linux - Marco Giorgi
4
30 marzo 2012 - Torino - DEFT Conference 2012: Acquisizione di memorie di massa con DEFT Linux - Marco Giorgi
5
A causa delle limitazioni fisiche del supporto di destinazione
(es. backup su DVD) oppure per motivi di compatibilità di
filesystem (es. FAT32, nel caso in cui più periti debbano
lavorare con sistemi eterogenei), l’immagine deve essere divisa
in file più piccoli.
E’ possibile dividerla direttamente in fase di acquisizione
utilizzando il comando split.
#dd if=/dev/sda | split -d -b 4500m - image.split.
Nel caso dell'utilizzo di tool di acquisizione più evoluti (es. dcfldd,
ewfaquire, aimage, guymager) è possibile dividere le immagini
nativamente senza l’uso di altri tools.
30 marzo 2012 - Torino - DEFT Conference 2012: Acquisizione di memorie di massa con DEFT Linux - Marco Giorgi
6

Garantisce che la copia del device sia inalterata ed identica
all'originale

Si utilizzano funzioni hash

Gli algoritmi più utilizzati sono MD5 e SHA-1, ma ne
esistono altri

E' possibile ripetere la verifica sulle copie forensi o sui
supporti originali in qualsiasi momento per dimostrare che
i dati non sono stati alterati
30 marzo 2012 - Torino - DEFT Conference 2012: Acquisizione di memorie di massa con DEFT Linux - Marco Giorgi
7

L'algoritmo restituisce una stringa di numeri e lettere
(detto digest) a partire da un qualsiasi flusso di bit di
qualsiasi dimensione finita

La stringa di output è univoca per ogni documento
identificandolo. Perciò, l'algoritmo è utilizzabile per la
firma digitale

La lunghezza del digest varia a seconda degli algoritmi
utilizzati

L'algoritmo non è invertibile, cioè non si può ricavare la
sequenza di bit in ingresso a partire dal digest
30 marzo 2012 - Torino - DEFT Conference 2012: Acquisizione di memorie di massa con DEFT Linux - Marco Giorgi
8

MD5 (RFC 1321)
Prende in input una stringa di lunghezza arbitraria e ne
produce in output un'altra a 128 bit (con lunghezza fissa
di 32 valori esadecimali, indipendentemente dalla stringa
di input)

SHA-1 (RFC 3174)
Prende in input una stringa di lunghezza arbitraria e ne
produce in output un'altra a 160 bit (con lunghezza fissa
di 40 valori esadecimali, indipendentemente dalla stringa
di input)
30 marzo 2012 - Torino - DEFT Conference 2012: Acquisizione di memorie di massa con DEFT Linux - Marco Giorgi
9

Quando due sequenze di bit differenti generano lo stesso
hash si parla di collisione

La qualità di una funzione di hash è misurata direttamente
in base alla difficoltà nell'individuare due testi che
generino una collisione

Anche se si è riusciti a generare una collisione negli
algoritmi HAVAL, RIPEMD, MD2, MD4, MD5 e SHA-1,
a noi non interessano perchè le acqusizioni non sono un
contesto
vulnerabile
a
collision
attack.
A noi interessano i preimage attack e questi al momento
non sembrano ragionevolmente attuabili.
30 marzo 2012 - Torino - DEFT Conference 2012: Acquisizione di memorie di massa con DEFT Linux - Marco Giorgi
10
Per ovviare a problemi di collisione si devono:

Usare algoritmi più sofisticati

Validare i risultati con due algoritmi diversi
◦ Non si conoscono attacchi simultanei su algoritmi di hash
diversi
◦ Il doppio hash previene ipotetici preimage attack, per i
quali comunque non si ha notizia di metodi praticabili su
nessuno degli algoritmi che usiamo
30 marzo 2012 - Torino - DEFT Conference 2012: Acquisizione di memorie di massa con DEFT Linux - Marco Giorgi
11
Per verificare l’integrità di un’immagine è possibile procedere
in diversi modi:
RAW:
# md5sum image.dd
EWF:
#ewfverify image.E01
AFF:
#afinfo –v image.aff
# sha1sum image.dd
E’ possibile verificare l’hash delle immagini anche con Dhash
importando il file contenente l’hash da verificare e indicando
il file immagine o il device
30 marzo 2012 - Torino - DEFT Conference 2012: Acquisizione di memorie di massa con DEFT Linux - Marco Giorgi
12
Fare sempre un’ulteriore copia dell’immagine acquisita e
verificarne l'integrità
30 marzo 2012 - Torino - DEFT Conference 2012: Acquisizione di memorie di massa con DEFT Linux - Marco Giorgi
13
I formati di acquisizione più utilizzati sono:

RAW

EWF (Expert Witness Compression)

AFF (Advanced Forensics Format)
30 marzo 2012 - Torino - DEFT Conference 2012: Acquisizione di memorie di massa con DEFT Linux - Marco Giorgi
14
RAW

Copia bit a bit del device da acquisire

Nessuna compressione

E' supportato da tutti i tools di analisi forense

Non supporta i metadati all'interno dell'immagine
30 marzo 2012 - Torino - DEFT Conference 2012: Acquisizione di memorie di massa con DEFT Linux - Marco Giorgi
15
EWF (Expert Witness Compression)




Standard de facto per le analisi forensi
E' supportato dai software di analisi open source (Autopsy, PyFlag)
E' supportato dai software commerciali (EnCase, Ftk, ecc...)
E' possibile includere metadati (anche se in modo limitato)
nell'immagine acquisita:
◦
◦
◦
◦
◦




Data/ora acquisizione
Nome esaminatore
Note extra
Password
Hash MD5 dell'intera immagine
Supporta la compressione dell'immagine
Ricerca all'interno dell'immagine acquisita
Immagini divisibili e "montabili" al volo
Formato proprietario (la compatibilità è ottenuta tramite il reverse
engineering) 
30 marzo 2012 - Torino - DEFT Conference 2012: Acquisizione di memorie di massa con DEFT Linux - Marco Giorgi
16
AFF (Advanced Forensics Format)

E' supportato dai software open source

Supporta la compressione dell'immagine

Supporta la cifratura dell'immagine

Dimensione immagine illimitata (non è necessario splittare)

Immagini divisibili

E' possibile includere un numero illimitato di metadati (anche
in un file xml separato)

Formato open source 
30 marzo 2012 - Torino - DEFT Conference 2012: Acquisizione di memorie di massa con DEFT Linux - Marco Giorgi
17
Riga di comando
◦ dd
◦ dcfldd
◦ dc3dd
◦ ddrescue
◦ dd_rescue
◦ ewfaquire
◦ aimage
◦ cyClone
GUI
◦ dhash
◦ guymager
30 marzo 2012 - Torino - DEFT Conference 2012: Acquisizione di memorie di massa con DEFT Linux - Marco Giorgi
18
dd è il padre di tutti i tools di acquisizione, consente di
acquisire i dati bit a bit in formato raw.
Nativamente non supporta la compressione dei dati, ma è
possibile comprimere il data stream tramite l’uso delle pipe.
#dd if=/dev/sda - | bzip2 > /mnt/image.dd.bz2
30 marzo 2012 - Torino - DEFT Conference 2012: Acquisizione di memorie di massa con DEFT Linux - Marco Giorgi
19

Evoluzione di dd

Permette di riversare il contenuto di un disco
direttamente su di un’altro

Permette l'acquisizione di memorie di massa che
presentano errori durante l'accesso a determinati settori
del disco impostando su zero i bit non leggibili

Durante l’acquisizione della memoria l'applicazione
fornisce aggiornamenti su quanti byte sono stati letti e
scritti, quanti errori di lettura sono stati riscontrati e la
velocità di acquisizione calcolata per byte/s.
30 marzo 2012 - Torino - DEFT Conference 2012: Acquisizione di memorie di massa con DEFT Linux - Marco Giorgi
20

Evoluzione di dd

Non è legato allo sviluppo di ddrescue

Non salta semplicemente il blocco danneggiato, ma tenta
di leggerlo ricorrendo a tecniche diverse (es. variando
dinamicamente la lunghezza dei blocchi)

Durante l’acquisizione della memoria l'applicazione
fornisce informazioni sullo stato delle operazioni correnti.
30 marzo 2012 - Torino - DEFT Conference 2012: Acquisizione di memorie di massa con DEFT Linux - Marco Giorgi
21
dcfldd è una versione avanzata di dd sviluppata dal
Dipartimento della Difesa degli U.S.A.

Calcolo al volo degli hash (MD5, SHA-1) dell’immagine

Indicatore di avanzamento sui dati acquisiti

Output simultaneo su più file (o dischi)

Output divisibile in più file

Log
30 marzo 2012 - Torino - DEFT Conference 2012: Acquisizione di memorie di massa con DEFT Linux - Marco Giorgi
22

Locale
# dd if=/dev/sda of=image.dd
# dcfldd if=/dev/sda hash=md5,sha256 md5log=image.md5
sha256log=image.sha256 of=/mnt/image.dd

Su rete
#dd if=/dev/sda - | ssh [email protected] “cat > /mnt/img/image.dd”
Server
#nc -l -p 2525 | dd of=/mnt/store/image.dd
Client
#dd if=/dev/sda bs=512 | nc $ip_server 2525
30 marzo 2012 - Torino - DEFT Conference 2012: Acquisizione di memorie di massa con DEFT Linux - Marco Giorgi
23
Wizard per l’acquisizione guidata che permette di effettuare
l’acquisizione delle immagini rispondendo a semplici
domande visualizzate a video

Acquisizione in diversi formati
(raw, ewf, aff)

Compressione (ewf, aff)

Calcolo hash

Log
30 marzo 2012 - Torino - DEFT Conference 2012: Acquisizione di memorie di massa con DEFT Linux - Marco Giorgi
24

Acquisizione in formato raw (dd)

Consente compressione (bz2)

Calcolo hash
◦ MD5
◦ SHA-1
◦ SFV

Calcolo del tempo residuo di acquisizione

10% più veloce nel calcolo degli hash rispetto a gli altri tools

Log
30 marzo 2012 - Torino - DEFT Conference 2012: Acquisizione di memorie di massa con DEFT Linux - Marco Giorgi
25
30 marzo 2012 - Torino - DEFT Conference 2012: Acquisizione di memorie di massa con DEFT Linux - Marco Giorgi
26
30 marzo 2012 - Torino - DEFT Conference 2012: Acquisizione di memorie di massa con DEFT Linux - Marco Giorgi
27

Acquisizione in diversi formati:
◦ raw
◦ ewf
◦ aff

Calcolo hash:
◦ MD5
◦ SHA-256

Inserimento metadati per formato ewf

Split per formato ewf

Utile nel caso in cui si debba fare più di un’acquisizione
contemporaneamente

Personalizzabile tramite file di configurazione

Log
30 marzo 2012 - Torino - DEFT Conference 2012: Acquisizione di memorie di massa con DEFT Linux - Marco Giorgi
28
30 marzo 2012 - Torino - DEFT Conference 2012: Acquisizione di memorie di massa con DEFT Linux - Marco Giorgi
29
30 marzo 2012 - Torino - DEFT Conference 2012: Acquisizione di memorie di massa con DEFT Linux - Marco Giorgi
30
30 marzo 2012 - Torino - DEFT Conference 2012: Acquisizione di memorie di massa con DEFT Linux - Marco Giorgi
31
Marco Giorgi
[email protected]
30 marzo 2012 - Torino - DEFT Conference 2012: Acquisizione di memorie di massa con DEFT Linux - Marco Giorgi
32