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