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