Download - Deftcon 2012 - Marco Giorgi - Acquisizione di memorie di massa con DEFT Linux

Transcript
Page 1: Deftcon 2012 - Marco Giorgi - Acquisizione di memorie di massa con DEFT Linux

Marco Giorgi

Palazzo di Giustizia di Torino 30 marzo 2012

Page 2: Deftcon 2012 - Marco Giorgi - Acquisizione di memorie di massa con DEFT Linux

Post mortem (Dopo lo spegnimento del sistema) ◦ Si smonta il dispositivo e lo si collega ad un PC dedicato all'acquisizione

On the fly (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

Page 3: Deftcon 2012 - Marco Giorgi - Acquisizione di memorie di massa con DEFT Linux

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

Page 4: Deftcon 2012 - Marco Giorgi - Acquisizione di memorie di massa con DEFT Linux

Gruppo di continuità ◦ Tutti i sistemi ed i dispositivi utilizzati per l'acquisizione vanno

collegati ad un gruppo di continuità

Write blocker hardware ◦ Un write blocker è un dispositivo hardware che viene collegato

al disco da acquisire in modo da bloccarne l'accesso in scrittura

◦ Possibilmente deve essere certificato dal Dipartimento della Giustizia U.S.A.

Adattatori di ogni genere o almeno quelli più comuni ◦ SATA, IDE, SAS, Firewire, USB

Tanto spazio su hard disk locale o su rete (PC dedicato o

NAS) per memorizzare i dati acquisiti

30 marzo 2012 - Torino - DEFT Conference 2012: Acquisizione di memorie di massa con DEFT Linux - Marco Giorgi 4

Page 5: Deftcon 2012 - Marco Giorgi - Acquisizione di memorie di massa con DEFT Linux

30 marzo 2012 - Torino - DEFT Conference 2012: Acquisizione di memorie di massa con DEFT Linux - Marco Giorgi 5

Page 6: Deftcon 2012 - Marco Giorgi - Acquisizione di memorie di massa con DEFT Linux

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.

30 marzo 2012 - Torino - DEFT Conference 2012: Acquisizione di memorie di massa con DEFT Linux - Marco Giorgi 6

#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.

Page 7: Deftcon 2012 - Marco Giorgi - Acquisizione di memorie di massa con DEFT Linux

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

Page 8: Deftcon 2012 - Marco Giorgi - Acquisizione di memorie di massa con DEFT Linux

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

Page 9: Deftcon 2012 - Marco Giorgi - Acquisizione di memorie di massa con DEFT Linux

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

Page 10: Deftcon 2012 - Marco Giorgi - Acquisizione di memorie di massa con DEFT Linux

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

Si è riusciti a generare una collisione negli algoritmi HAVAL, RIPEMD, MD2, MD4, MD5 e SHA-1 dimostrando che non sono sicuri

30 marzo 2012 - Torino - DEFT Conference 2012: Acquisizione di memorie di massa con DEFT Linux - Marco Giorgi 10

Page 11: Deftcon 2012 - Marco Giorgi - Acquisizione di memorie di massa con DEFT Linux

Per ovviare a problemi di collisione si devono:

Usare algoritmi più sofisticati (ma spesso la legge considera validi solo alcuni algoritmi)

Validare i risultati con due algoritmi diversi

◦ Impossibile generare una collisione per entrambi gli hash contemporaneamente

30 marzo 2012 - Torino - DEFT Conference 2012: Acquisizione di memorie di massa con DEFT Linux - Marco Giorgi 11

Page 12: Deftcon 2012 - Marco Giorgi - Acquisizione di memorie di massa con DEFT Linux

Per verificare l’integrità di un’immagine è possibile procedere in diversi modi:

30 marzo 2012 - Torino - DEFT Conference 2012: Acquisizione di memorie di massa con DEFT Linux - Marco Giorgi 12

#afinfo –v image.aff

# md5sum image.dd # sha1sum image.dd

#ewfverify image.E01

RAW:

EWF:

AFF:

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

Page 13: Deftcon 2012 - Marco Giorgi - Acquisizione di memorie di massa con DEFT Linux

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

Page 14: Deftcon 2012 - Marco Giorgi - Acquisizione di memorie di massa con DEFT Linux

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

Page 15: Deftcon 2012 - Marco Giorgi - Acquisizione di memorie di massa con DEFT Linux

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

Page 16: Deftcon 2012 - Marco Giorgi - Acquisizione di memorie di massa con DEFT Linux

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

Page 17: Deftcon 2012 - Marco Giorgi - Acquisizione di memorie di massa con DEFT Linux

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

Page 18: Deftcon 2012 - Marco Giorgi - Acquisizione di memorie di massa con DEFT Linux

Riga di comando

◦ dd

◦ dcfldd

◦ dc3dd

◦ ddrescue

◦ dd_rescue

◦ ewfaquire

◦ aimage

◦ cyClone

30 marzo 2012 - Torino - DEFT Conference 2012: Acquisizione di memorie di massa con DEFT Linux - Marco Giorgi 18

GUI

◦ dhash

◦ guymager

Page 19: Deftcon 2012 - Marco Giorgi - Acquisizione di memorie di massa con DEFT Linux

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

Page 20: Deftcon 2012 - Marco Giorgi - Acquisizione di memorie di massa con DEFT Linux

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

Page 21: Deftcon 2012 - Marco Giorgi - Acquisizione di memorie di massa con DEFT Linux

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

Page 22: Deftcon 2012 - Marco Giorgi - Acquisizione di memorie di massa con DEFT Linux

30 marzo 2012 - Torino - DEFT Conference 2012: Acquisizione di memorie di massa con DEFT Linux - Marco Giorgi 22

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

Page 23: Deftcon 2012 - Marco Giorgi - Acquisizione di memorie di massa con DEFT Linux

30 marzo 2012 - Torino - DEFT Conference 2012: Acquisizione di memorie di massa con DEFT Linux - Marco Giorgi 23

# 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

Locale

#dd if=/dev/sda - | ssh [email protected] “cat > /mnt/img/image.dd”

#nc -l -p 2525 | dd of=/mnt/store/image.dd

#dd if=/dev/sda bs=512 | nc $ip_server 2525

Server

Client

Page 24: Deftcon 2012 - Marco Giorgi - Acquisizione di memorie di massa con DEFT Linux

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

Page 25: Deftcon 2012 - Marco Giorgi - Acquisizione di memorie di massa con DEFT Linux

30 marzo 2012 - Torino - DEFT Conference 2012: Acquisizione di memorie di massa con DEFT Linux - Marco Giorgi 25

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

Page 26: Deftcon 2012 - Marco Giorgi - Acquisizione di memorie di massa con DEFT Linux

30 marzo 2012 - Torino - DEFT Conference 2012: Acquisizione di memorie di massa con DEFT Linux - Marco Giorgi 26

Page 27: Deftcon 2012 - Marco Giorgi - Acquisizione di memorie di massa con DEFT Linux

30 marzo 2012 - Torino - DEFT Conference 2012: Acquisizione di memorie di massa con DEFT Linux - Marco Giorgi 27

Page 28: Deftcon 2012 - Marco Giorgi - Acquisizione di memorie di massa con DEFT Linux

30 marzo 2012 - Torino - DEFT Conference 2012: Acquisizione di memorie di massa con DEFT Linux - Marco Giorgi 28

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

Page 29: Deftcon 2012 - Marco Giorgi - Acquisizione di memorie di massa con DEFT Linux

30 marzo 2012 - Torino - DEFT Conference 2012: Acquisizione di memorie di massa con DEFT Linux - Marco Giorgi 29

Page 30: Deftcon 2012 - Marco Giorgi - Acquisizione di memorie di massa con DEFT Linux

30 marzo 2012 - Torino - DEFT Conference 2012: Acquisizione di memorie di massa con DEFT Linux - Marco Giorgi 30

Page 31: Deftcon 2012 - Marco Giorgi - Acquisizione di memorie di massa con DEFT Linux

30 marzo 2012 - Torino - DEFT Conference 2012: Acquisizione di memorie di massa con DEFT Linux - Marco Giorgi 31

Page 32: Deftcon 2012 - Marco Giorgi - Acquisizione di memorie di massa con DEFT Linux

[email protected]

30 marzo 2012 - Torino - DEFT Conference 2012: Acquisizione di memorie di massa con DEFT Linux - Marco Giorgi 32

Marco Giorgi