Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

2,207 views
2,122 views

Published on

Il manuale della versione 7 di Deft Linux

Published in: Software
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,207
On SlideShare
0
From Embeds
0
Number of Embeds
12
Actions
Shares
0
Downloads
21
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

  1. 1. 1 Manuale DEFT 7 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 Offensive Security OSCP e 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. Sandro “bUSBoy” Rossetti Alessandro Rossetti vive e lavora a Roma. Molti dei suoi interessi personali riguardano l'Information Technology, in particolare le problematiche di intelligence e forensic. È membro di diverse organizzazioni indipendenti quali ISACA ed IACIS. Paolo Dal Checco Ha conseguito il titolo di Dottore di Ricerca nel 2006 presso l’Università degli Studi di Torino, nel Gruppo di Sicurezza del Dipartimento di Informatica. Ha svolto docenza in ambiti universitari, ICT e aziendali oltre a collaborazioni con aziende che operano nel settore della sicurezza e privacy delle comunicazioni. È socio fondatore dello studio di consulenza informatica forense “Digital Forensics Bureau” (www.difob.it) di Torino. È Socio Amministratore della Digit Law Srl (www.digitlaw.it). Effettua attività di consulenza tecnica per tribunali e procure, forze dell’ordine e privati.
  2. 2. 2 Manuale DEFT 7 Licenza d’uso Attribuzione - Non commerciale 3.0 Italia Tu sei libero di riprodurre, distribuire, comunicare al pubblico, esporre in pubblico, rappresentare, eseguire, recitare e di modificare 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 commerciale — Non puoi usare quest'opera per fini commerciali. Rinuncia — È 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-nc/3.0/it/legalcode
  3. 3. 3 Manuale DEFT 7 Dedicato ad Ele ed a Silvia per la infinita pazienza. Dedicato anche a Stefano e Alessandro, sperando che prendano più dalle madri che dai loro padri. A Samanta e Kim.
  4. 4. 4 Manuale DEFT 7 Ringraziamenti Ci teniamo a ringraziare quanti nel corso degli ultimi anni hanno contribuito alla nostra crescita personale. Ringraziamo anche chi ha lavorato dietro le quinte per la realizzazione di DEFT, contribuendo anche indirettamente alla realizzazione del manuale d’uso. Massimiliano Dal Cero Davide “Rebus” Gabrini Bartolomeo “Meo” Bogliolo Valerio Leomporra Marco Giorgi Emanuele Gentili Un doveroso ringraziamento va anche a Simone e Ivan per il loro aiuto nel ricontrollare questo manuale. Vogliamo infine ringraziare Architecture Technology Corporation per averci permesso di inserire “Dropbox Reader™” in questa distribuzione.
  5. 5. 5 Manuale DEFT 7 Premessa Tramite questo manuale vogliamo dare al lettore un assaggio delle principali funzioni e potenzialità della distribuzione DEFT, un punto di partenza per stimolare la crescita delle proprie conoscenze tecniche. Non troverete quindi in queste pagine spiegazioni esaustive sull’utilizzo di tutti gli applicativi e comandi attualmente presenti nella distribuzione. Per cercare di facilitare lo studio, abbiamo inserito alcuni esempi che suggeriscono all’utente come poter svolgere alcune delle principali attività di Digital Forensics quali: l’acquisizione e preservazione di memorie di massa (dischi rigidi, penne USB, lettori mp3, Smartphone, ecc.) o traffico telematico su rete IP; l’analisi e la gestione di casi. Buona lettura!
  6. 6. 6 Manuale DEFT 7 Sommario CAPITOLO 1: INTRODUZIONE.................................................................................................. 9 1.1 COS’È DEFT?............................................................................................................................ 9 1.2 PERCHÉ DEFT È IMPIEGABILE NELL'ATTIVITÀ DI DIGITAL FORENSICS?.................................................. 10 CAPITOLO 2: REQUISITI DI SISTEMA.......................................................................................11 2.1 DEFT..................................................................................................................................... 11 2.2 DART.................................................................................................................................... 11 CAPITOLO 3: ELENCO DELLE APPLICAZIONI............................................................................12 3.1 DEFT LINUX............................................................................................................................ 12 3.2 DART 1.0 .............................................................................................................................. 13 CAPITOLO 4: AVVIARE DEFT LINUX LIVE DVD.........................................................................15 4.1 VERIFICARE L’INTEGRITÀ DELL’IMMAGINE DI DEFT SCARICATA DA INTERNET ........................................ 15 4.2 MASTERIZZARE DEFT LINUX SU UN SUPPORTO OTTICO.................................................................... 16 4.3 CREARE UNA PENNA USB AVVIABILE CONTENENTE DEFT LINUX........................................................ 17 4.4 IMPOSTAZIONE DEL BIOS E/O DEL BOOT SELECTION POPUP/MENU .................................................. 18 4.5 PARAMETRI DI AVVIO DI DEFT.................................................................................................... 19 4.6 INSTALLAZIONE DI DEFT LINUX 7 ................................................................................................ 22 CAPITOLO 5: DEFT LINUX TEXT MODE ...................................................................................24 5.1 GESTIONE DELLE MEMORIE DI MASSA ........................................................................................... 24 5.1.1 Comandi utili.............................................................................................................. 25 5.1.2 Mount delle memorie ................................................................................................ 25 5.1.3 Mount di un device (hard disk, penna USB, floppy disk, CDROM, ecc...) ................... 26 5.1.4 Mount di un file immagine DD/RAW ......................................................................... 27 5.1.5 Mount di un file immagine DD/RAW suddiviso in più file (split raw)......................... 28 5.1.6 File di tipo EWF/Encase.............................................................................................. 30 5.1.7 File di tipo AFF............................................................................................................ 30 5.2 CALCOLO DELL’HASH................................................................................................................. 31 5.2.1 Md5sum..................................................................................................................... 31 5.2.2 Sha1sum..................................................................................................................... 32 5.2.3 Md5 e sha deep.......................................................................................................... 32 5.2.4 Dhash......................................................................................................................... 32 5.3 ACQUISIZIONE MEMORIE DI MASSA .............................................................................................. 33 5.3.1 dd............................................................................................................................... 33 5.3.2 ddrescue..................................................................................................................... 33
  7. 7. 7 Manuale DEFT 7 5.3.3 dcfldd ......................................................................................................................... 34 5.3.4 Dhash......................................................................................................................... 34 5.4 CREAZIONE DI UNA TIME LINE...................................................................................................... 35 5.4.1 fls ............................................................................................................................... 35 5.4.2 mactime..................................................................................................................... 36 5.5 CREAZIONE DI UNA SUPERTIMELINE.............................................................................................. 38 5.6 RICERCA FILE E CARTELLE............................................................................................................ 42 5.6.1 Locate......................................................................................................................... 42 5.6.2 Find ............................................................................................................................ 43 5.7 CARVING DI FILE....................................................................................................................... 43 5.7.1 Foremost.................................................................................................................... 43 CAPITOLO 6: DEFT LINUX GUI MODE .....................................................................................45 6.1 INTRODUZIONE ........................................................................................................................ 45 6.2 GESTIONE DELLA MEMORIA DI MASSA........................................................................................... 48 6.3 MOUNT MANAGER ................................................................................................................... 49 6.4 CALCOLO DELL’HASH................................................................................................................. 50 6.5 ACQUISIZIONE DI MEMORIE DI MASSA........................................................................................... 50 6.5.1 Dhash......................................................................................................................... 51 6.5.2 Guymager .................................................................................................................. 52 6.6 RICERCA DI FILE E CARTELLE ........................................................................................................ 53 6.6.1 Catfish........................................................................................................................ 53 6.7 FINDWILD ............................................................................................................................... 54 6.8 CARVING DI FILE DA GUI............................................................................................................ 55 6.9 GESTIONE DI UN CASO CON AUTOPSY ........................................................................................... 57 6.10 XPLICO .............................................................................................................................. 65 6.10.1 Creazione di un caso.............................................................................................. 66 6.11 HYDRA .............................................................................................................................. 70 6.12 KEEPNOTE.......................................................................................................................... 72 6.13 MALTEGO .......................................................................................................................... 73 CAPITOLO 7: MOBILE FORENSICS...........................................................................................74 7.1 ANDROID................................................................................................................................ 76 7.2 BREVE PANORAMICA SULLE APPLICAZIONI GOOGLE ......................................................................... 77 7.2.1 Gmail.......................................................................................................................... 78 7.2.2 Market ....................................................................................................................... 79 7.2.3 File System in uso....................................................................................................... 79 7.2.4 EXT4 file system ......................................................................................................... 80
  8. 8. 8 Manuale DEFT 7 7.2.5 Policy di utilizzo delle memorie di massa................................................................... 81 7.2.6 Accesso al file system del sistema operativo ............................................................. 81 7.3 SAMSUNG GALAXY S I9000– CARATTERISTICHE HARDWARE ............................................................. 83 Processore: S5PC110 CPU, 45 nm 1 GHz ARM Cortex-A8 based PowerVR SGX 540 GPU con supporto OpenGL ES 1.1/2.0. ................................................................................................... 83 7.3.1 Procedura per il “rooting” del dispositivo .................................................................. 84 7.3.2 Samsung Galaxy S - acquisizione fisica della memoria flash interna......................... 85 7.4 SAMSUNG GALAXY S - ACQUISIZIONE FISICA DELLA MEMORIA ESTERNA ............................................... 87 7.4.1 Lavorare direttamente sullo smartphone .................................................................. 88 7.4.2 Posizione e analisi delle applicazioni e dei file di comune interesse .......................... 88 7.4.3 Esempio di analisi sull'applicazione Google Maps..................................................... 90 CAPITOLO 8: DART – DIGITAL ADVANCED RESPONSE TOOLKIT..............................................92 CAPITOLO 9: PER APPROFONDIRE .........................................................................................96 CAPITOLO 10: APPENDICE 1 – PARAMETRI PER IL BOOT DEL KERNEL ......................................97 CAPITOLO 11: APPENDICE 2 – MAN PAGE..............................................................................184 11.1 MOUNT........................................................................................................................... 184 11.2 AFFUSE............................................................................................................................ 215 11.3 SHA1SUM........................................................................................................................ 221 11.4 MD5, SHA1, SHA256 DEEP ................................................................................................. 223 11.5 DHASH ............................................................................................................................ 227 11.6 GREP .............................................................................................................................. 228 11.7 DD.................................................................................................................................. 241 11.8 DD RESCUE ...................................................................................................................... 244 11.9 DCFLDD.......................................................................................................................... 246 11.10 FLS ................................................................................................................................. 251 11.11 MACTIME ........................................................................................................................ 253 11.12 LOCATE............................................................................................................................ 254 11.13 FIND ............................................................................................................................... 259 11.14 FOREMOST....................................................................................................................... 285
  9. 9. 9 Manuale DEFT 7 Capitolo 1: Introduzione 1.1 Cos’è DEFT? La distribuzione Linux1 DEFT2 è composta da un sistema Gnu/Linux e da DART (Digital Advanced Response Toolkit), suite dedicata alle attività di digital forensics3 ed intelligence4 . È attualmente sviluppata e gestita da Stefano Fratepietro, con il supporto di Massimiliano Dal Cero, Sandro Rossetti, Paolo Dal Checco, Davide Gabrini, Bartolomeo Bogliolo, Valerio Leomporra e Marco Giorgi. La prima versione di DEFT Linux ha visto la luce nel 2005 grazie anche all’aiuto del corso di Informatica Forense della facoltà di Giurisprudenza dell’Università degli Studi di Bologna. Questa distribuzione è tutt’oggi utilizzata durante le ore di laboratorio del corso di Informatica Forense nell’Università di Bologna ed in molte altre università internazionali ed enti privati. È inoltre una delle principali soluzioni impiegate durante l’attività di Digital Forensics di molte forze dell’ordine. Oltre ad un numero considerevole di applicazioni e script linux, Deft contiene anche la suite DART contenente applicazioni Windows (sia open source5 sia closed source) di cui ancora non esiste un equivalente altrettanto valido nel mondo *nix. 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 Acronimo di Digital Evidence & Forensic Toolkit. 3 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 4 Questo aspetto della distribuzione sarà affrontato in un altro documento. 5 Il termine indica un software i cui autori permettono il libero studio e l'apporto di modifiche da parte di altri programmatori indipendenti.
  10. 10. 10 Manuale DEFT 7 1.2 Perché DEFT è impiegabile nell'attività di Digital Forensics? Un software è considerato adatto per l’attività di Digital Forensics quando assicura che la struttura e i metadati dei file6 o del sistema sottoposto ad analisi non siano alterati e sia in grado di fornisce gli strumenti idonei a garantire la catena di conservazione del reperto acquisito7 . In DEFT, a tale scopo, sono state implementate alcune caratteristiche che riducono al minimo il rischio di alterare il dato sottoposto ad analisi. Alcune di queste sono: 1. All’avvio, 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 evidenze; 4. Tutti i software di acquisizione di memorie di massa e di traffico su rete IP non alterano l’integrità del dato sottoposto ad acquisizione. 6 RFC 3227: “Minimise changes to the data as you are collecting it. This is not limited to content changes; you should avoid updating file or directory access times.” 7 Art. 247 comma 1bis con modifiche apportate dalla ratifica della Convenzione di Budapest nella L. 18 marzo 2008, n. 48: “[…] adottando misure tecniche dirette ad assicurare la conservazione dei dati originali e ad impedirne l’alterazione”
  11. 11. 11 Manuale DEFT 7 Capitolo 2: Requisiti di sistema 2.1 DEFT Per l’utilizzo delle funzionalità di DEFT, è sufficiente avviare con il CDROM o penna USB di DEFT Linux un qualsiasi sistema dotato delle seguenti caratteristiche: Lettore CD/DVD-rom o porta USB da cui il BIOS supporti il boot. Una CPU x86 (Intel, AMD o Citrix) 166 Mhz o superiore per eseguire DEFT Linux in modalità testuale, 200Mhz per eseguire DEFT Linux in modalità grafica; 64 Mbyte di memoria RAM per eseguire DEFT Linux in modalità testuale o 128 per la modalità grafica. Sono inoltre supportate le nuove architetture Apple con processori Intel. 2.2 DART La suite DART può essere eseguita in tutti i sistemi Microsoft Windows a 32bit. Nelle versioni a 64bit sono state riscontrate alcune piccole limitazioni per alcuni tool che non ne garantiscono il totale supporto. DART può essere eseguita direttamente in DEFT Linux mediante l’utilizzo di Wine8 . 8 Wine è un framework per Linux che permette l’esecuzione di applicativi Windows che possono essere installati o avviati direttamente all’interno di una distribuzione Linux (www.winehq.org)
  12. 12. 12 Manuale DEFT 7 Capitolo 3: Elenco delle applicazioni 3.1 DEFT Linux sleuthkit 3.2.3 autopsy 2.24 dff 1.2 ptk forensic 1.0.5 maltego CE keepNote 0.7.6 hunchbackeed file carver 0.6 findwild 1.3 bulk extractor 1.2 emule forensic 1.0 dhash 2.0.1 libewf 20120304 aff lib 3.6.14 disk utility 2.30.1 guymager 0.6.5-1 dd rescue 1.14 dcfldd 1.3.4.1 dc3dd 7 foremost 1.5.6 photorec 6.13 mount manager 0.2.6 scalpel 2 wipe 0.21 hex dump outguess 0.2 sqlite database browser 2.0b1 bitpim 1.0.7 bbwhatsapp database converter dropbox reader iphone backup analyzer 10/2012 iphone analyzer creepy 0.1.9 xprobe2 0.3 xmount 0.4.6trID 2.11 DEFT edition readpst 0.6.41 chkrootkit rkhunter 1.3.8 john 1.7.8 catfish pasco 1.0 md5sum sha1sum sha224sum sha256sum sha512sum md5deep sha1deep sha256deep pdfcrack cracking tool fcrackzip cracking tool clam antivirus 0.97.3 mc 4.7.0.9 dmraid testdisk 6.11 ghex, light gtk hex editor vinetto 0.6 xplico 1.0 DEFT edition wireshark 1.6
  13. 13. 13 Manuale DEFT 7 ettercap 0.7.3 nmap 5.21 hydra 7.1 log2timeline 0.60 rifiuti2 wine 1.3.28 mobius forensic 3.2 DART 1.0 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 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.15SmartSniff 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
  14. 14. 14 Manuale DEFT 7 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 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
  15. 15. 15 Manuale DEFT 7 Capitolo 4: Avviare DEFT Linux live DVD 4.1 Verificare l’integrità dell’immagine di DEFT scaricata da Internet Trattandosi di una distribuzione destinata ad attività di computer forensics è buona norma, prima di masterizzare il file scaricato da internet, verificare che corrisponda esattamente a quello presente online. La verifica può esser fatta tramite il calcolo del valore hash MD59 sull’immagine o sull’archivio scaricato e il successivo confronto con i valori presenti nel file md5.txt presente nella root della directory di download. DEFT/DART: Directory di download Ad esempio, nel caso del file “deft7.iso”, il calcolo dell’hash MD5 deve dare come risultato lo stesso indicato all’interno del file md5.txt, un valore del tipo “d98307dc53ca83358a2dfdb33afc2672”. Per calcolare il valore hash MD5 di un file è possibile utilizzare diversi tool: ad esempio md5summer10 o hashmyfiles11 (su Windows) o il tool a linea di comando md5sum per Linux/MacOS. Se l’hash del file scaricato non coincide con quello presente sul sito wew può significare che il file, seppure di dimensione uguale a quello online, presenta errori dovuti a problemi nello scaricamento o corruzione di una o più parti. 9 http://it.wikipedia.org/wiki/MD5 10 http://www.md5summer.org/ 11 http://www.nirsoft.net/utils/hash_my_files.htm . Il programma è già incluso in DART.
  16. 16. 16 Manuale DEFT 7 4.2 Masterizzare DEFT Linux su un supporto ottico DEFT 7 Linux, nella versione destinata all’utilizzo Live su macchine fisiche, viene distribuita sotto forma di un’immagine ISO che, per poter essere utilizzata, è necessario masterizzare su un supporto ottico – nel caso di DEFT 7 su un DVD12 . Per masterizzare un’immagine ISO è sufficiente utilizzare un qualsiasi programma di masterizzazione, seguendo le procedure che possono variare da programma a programma. Le immagini ISO sono una sorta di “fotografia” dell’intero filesystem (in realtà degli interi filesystem, poiché ne può essere presente più di uno) contenuto all’interno del supporto. Si può pensare a una sorta di “copia forense” del CD/DVD. Come tale, il file ISO deve essere masterizzato riapplicando in un certo senso la “fotografia” su un supporto, così come si farebbe con un’immagine DD/RAW di un disco del quale si vuole fare una copia avviabile da un nuovo supporto. La masterizzazione d’immagini ISO è possibile con quasi tutti i software di masterizzazione13 , semplicemente selezionando la voce riguardante le immagini. ImgBurn permette di scrivere file immagine su disco 12 Data la loro dimensione ridotta, DEFT 6 e precedenti potevano essere masterizzate anche su CD . 13 Su Windows suggeriamo di utilizzare, per comodità, i tool gratuiti Imgburn o Infrarecorder. Su Linux il software di masterizzazione K3B ha le funzionalità necessarie per poter masterizzare file immagine. In Mac OS è sufficiente, invece, utilizzare l’applicazione Disk Utility.
  17. 17. 17 Manuale DEFT 7 In rete sono disponibili migliaia di link e howto che illustrano in dettaglio le modalità di scrittura di immagini ISO su CD/DVD con i più disparati sistemi operativi. 4.3 Creare una penna USB avviabile contenente DEFT Linux In alternativa all’utilizzo di un supporto ottico, è possibile creare una penna USB contenente DEFT Linux e avviabile come se fosse un Live CD/DVD (sui PC che supportano l’avvio da periferica USB). Ci sono diversi modi di creare periferiche di archiviazione di massa USB contenenti DEFT Linux Live. Per sistemi Windows, Linux e Mac consigliamo l’utilizzo dell’applicazione gratuita universale UNetBootin14 . Essa permette di eseguire l’operazione di scrittura, selezionando semplicemente l’immagine ISO da riversare su penna USB e la lettera di sistema acquisita dalla penna USB. Consigliamo di formattare la chiavetta USB con filesystem FAT32, impostando possibilmente una “volume label” tale da ricordarvi, in futuro, quale distribuzione e quale versione è presente nella chiavetta. Preparazione della penna USB 14 http://unetbootin.sourceforge.net/
  18. 18. 18 Manuale DEFT 7 Avviate il programma UNetbootin – non richiede installazione – e, abilitando il radio button “Diskimage”, selezionate il file ISO che volete convertire in Live USB avviabile, scegliendo la lettera della chiavetta USB che desiderate utilizzare. UNetbootin: Schermata principale Al termine dell’operazione di scrittura otterrete una versione Live USB che potrà essere utilizzata per avviare DEFT Linux su qualsiasi PC in grado di supportare l’avvio da porta USB, funzionalità ormai peraltro diffusa su quasi tutte le più recenti macchine. 4.4 Impostazione del BIOS e/o del Boot Selection Popup/Menu È importante assicurarsi che il BIOS del sistema da analizzare sia impostato per l’avvio da CDROM/DVDROM/BDROM o da memorie di massa esterne (in base al supporto in cui è presente DEFT). In caso contrario configurate il BIOS, salvate e riavviate il sistema con il dvd già inserito nel lettore cd/dvd o con la penna USB già collegata15 . Si consiglia, in ogni caso, di modificare l’ordine di avvio delle periferiche direttamente nel BIOS per evitare che un riavvio accidentale della macchina (ad esempio dovuto a sbalzi di corrente) provochi il boot del sistema operativo originario. 15 In genere, durante l’avvio è indicato il tasto da premere per visualizzare il boot meu, spesso chiamato “Boot Selection Popup” o “Boot Device Menu”. I tasti solitamente dedicati al Boot Menu sono F8, F9 e F12, ma in alcune architetture il menù di avvio può anche essere richiamato dal tasto ESC.
  19. 19. 19 Manuale DEFT 7 4.5 Parametri di avvio di DEFT Avviato il boot loader di DEFT, ci si trova di fronte ad una schermata con diverse opzioni di avvio. La prima scelta che è richiesta riguarda la lingua dell’interfaccia di DEFT16 . Scelta della lingua Una volta selezionata la lingua, è possibile utilizzare le frecce su/giù per spostarsi nel menù a tendina. Tramite i tasti funzione è possibile impostare ulteriori parametri quali: Help (F1) Lingua (F2) Tastiera (F3) Modalità (F4) Accessibilità (F5) Altre opzioni (F6) Il tasto funzione F6 permette di personalizzare alcuni parametri di avvio di DEFT, scegliendo tra alcuni pre-impostati sul menù e potendone aggiungere altri in base alle proprie necessità. 16 Richiamabile con il tasto F2 nella finestra di impostazioni di avvio
  20. 20. 20 Manuale DEFT 7 I parametri del kernel accesibili premendo il tasto F6 sono: acpi=off Al boot non sono utilizzate le funzioni ACPI per la gestione dell’energia elettrica usata dal proprio sistema. Utile in caso di problemi ad avviare la live, nel caso in cui il PC non supporti ACPI oppure se l’implementazione ACPI crea problemi di reboot o blocchi di sistema. noapic Disabilita il controller interrupt APIC (Advanced Programmable Interrupt Controller). 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. È possibile scegliere tra le seguenti modalità: In rosso i parametri deprecati, in nero i parametri che non hanno riscontrato alcun problema di funzionamento. Per maggiori informazioni sui parametri modificabili al boot, è possibile consultare l’Appendice 1. nomodeset Per eseguire il boot di DEFT Linux su un Mac Book Air è necessario aggiungere il paramentro nomodeset17 al boot. Tale parametro permette di gestire correttamente i driver video e di poter usare il sistema senza alcun problema di visualizzazione delle schermate. 17 Tratto da www.kernel.org/doc/Documentation/kernel-parameters.txt This is a kernel boot option that tells the kernel not to enable kernel mode setting (KMS). Video support is usually a combination of a drm kernel driver and a Xorg driver working together. KMS is used with Intel, Nouveau, and Radeon kernel modules. KMS is required for Intel and Nouveau, and optional for Radeon (although, with different features). If you want to use the vesa Xorg driver, and you have hardware that uses the Intel, Nouveau, or Radeon kernel modules, you may need to boot with nomodeset, or blacklist the matching module, or just delete the module. The modules will be found in /lib/modules/<kernel-version>/kernel/drivers/gpu/drm/
  21. 21. 21 Manuale DEFT 7 toram Impone (quando possibile) il caricamento dell’intera immagine di DEFT in RAM, permettendo la rimozione del DVD o della penna USB. La velocità di esecuzione è incrementata notevolmente poiché non si rendono più necessarie operazioni di lettura da disco o da flash. È Inoltre possibile utilizzare il lettore DVD per eventuali acquisizioni forensi (ad esempio tramite guymager18 ) oppure per masterizzare dati (ad esempio tramite il programma di masterizzazione xfburn19 presente nel menù “Sound & Video”). Il parametro “toram” viene attivato solo se la memoria RAM presente è sufficiente per contenere l’immagine del DVD/USB DEFT20 . La distribuzione DEFT 7 occupa circa 1.4GB, consigliamo quindi di avviarla in modalità “toram” soltanto quando il PC dispone di almeno 2GB di memoria. La distribuzione DEFT 6, invece, occupa soltanto 700MB, è quindi avviabile in modalità “toram” anche su PC che possiedono soltanto 1GB di memoria. Per selezionare i parametri del kernel mostrati sul menù, premere la barra spaziatrice o il tasto INVIO in corrispondenza di quelli prescelti: una ‘X’ verrà inserita a confermare l’aggiunta al kernel. Nel caso in cui si desideri specificare ulteriori parametri del kernel, dopo aver premuto F6 premere il tasto “ESC” per far scomparire il menù e visualizzare sullo sfondo la riga di avvio del kernel dove potete digitate direttamente il o i parametri prescelti mantenendoli separati tra di loro con degli spazi. 18 http://guymager.sourceforge.net/ 19 http://www.xfce.org/projects/xfburn 20 Si raccomanda in ogni caso di lasciare una parte di RAM libera per le normali attività del sistema
  22. 22. 22 Manuale DEFT 7 4.6 Installazione di DEFT Linux 7 Dalla release 7 DEFT può essere installata su qualsiasi sistema x86. Di seguito sono riportati i requisiti del sistema minimi e consigliati per l’installazione: Requisiti minimi CPU x86 200Mhz 128 MB di memoria RAM Disco rigido da 20 GB Scheda Video Vesa compatibile 16MB Scheda di rete 10/100 Interfacce USB 2.0 Lettore DVD Requisiti ottimali CPU Intel dual core 2GB di memoria RAM Disco rigido SATA da 500 GB Scheda Video intel con memoria dedicata Scheda di rete 10/100/1000 - WiFi N Interfacce USB 3.0 ed e-sata Lettore DVD L’installazione del sistema avviene tramite una procedura guidata standard in cui l’utente deve rispondere ad alcune domande. L’operazione dove è richiesta maggior attenzione è il partizionamento della memoria di massa che ospiterà il sistema. Nonostante le esigenze cambino sulla base dell’esperienza e il modo di lavorare dell’operatore, ci permettiamo di dare alcuni suggerimenti sul come ottenere un’installazione ottimale: Riservare al sistema almeno 20GB di memoria; Partizionare il disco secondo le proprie esigenze creando una partizione di SWAP con un livello di swappiness21 pari a 10. in questo modo si ridurranno i rallentamenti improvvisi dovuti all’utilizzo della partizione di swap23 ; Creare un utente durante l’installazione ricordandosi però di utilizzare DEFT Linux sempre con l’account root per evitare problemi dovuti alla richiesta di permessi da parte alcuni applicativi; o Per abilitare l’account root impostandone la password digitare il comando “sudo passwd” e rispondete alle domande; o Per diventare root digitare “sudo su -” (verrà richiesta la propria password) oppure “su –“ (verrà richiesta la password di root); 21 Per maggiori informazioni https://help.ubuntu.com/community/SwapFaq 23 Nel caso in cui il computer sia dotato di più di 4GB di RAM, potrebbe essere considerata una soluzione il non creare una partizione di SWAP: in questo modo si eviteranno rallentamenti improvvisi dovuti all’utilizzo della partizione di swap.
  23. 23. 23 Manuale DEFT 7 Non rimuovere PER ALCUN MOTIVO il freezing sull’aggiornamento di alcuni pacchetti volutamente bloccato: sono parte di un processo di personalizzazione di tutti i meccanismi di protezione delle memorie di massa collegate al sistema.
  24. 24. 24 Manuale DEFT 7 Capitolo 5: DEFT Linux text mode Completata la fase di boot, il sistema presenta la sessione ad interfaccia testuale (con sei terminali accesibili tramite la combinazione di tasti ALT + F1 -> ALT + F6) con una shell bash dotata di permessi di root24 . DEFT: sessione ad interfaccia testuale 5.1 Gestione delle memorie di massa DEFT, anche in versione live, supporta le memorie di massa ed i filesystem più diffusi. Come già accennato DEFT non esegue il mount automatico tipico delle distribuzioni Live (es. Knoppix, Ubuntu, ecc...) evitando l’alterazione accidentale della memoria di massa collegata. Il contenuto di una memoria di massa può essere comunque alterato dall’operazione di mount eseguita in modalità read/write, azione che DEFT non esegue in automatico. 24 Questa implementazione si rivela 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.
  25. 25. 25 Manuale DEFT 7 5.1.1 Comandi utili Riportiamo alcuni comandi utili per eseguire operazioni inerenti alla gestione delle memorie di massa: fdisk –l: elenca tutte le partizioni e memorie di massa collegate al sistema; mmls /dev/xxx oppure mmls nomefile.dd: elenca le partizioni presenti nella periferica o nell’immagine raw indicando l’offset di partenza di ogni partizione 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: visualizza il tipo di filesystem delle memorie collegate al sistema e la modalità con la quale sono state montate (read only / read-write); df –h: visualizza informazioni sulla dimensione dei dispositivi montati e lo spazio libero. 5.1.2 Mount delle memorie Il comando mount permette di collegare un file system – presente su in una periferica oppure in un file memorizzato su disco – a una directory di sistema. Nel caso in cui si desideri eseguire il mount di un dispositivo quale hard disk, chiavetta USB, CD/DVD/CDROM, floppy disk, ecc... si utilizzerà come sorgente il device stesso che lo identifica. Avremo in questo caso: /dev/fdX25 per i floppy disk (in genere con un solo floppy si ha /dev/fd0); /dev/hdX per gli hard disk IDE; /dev/sdX per gli hard disk SATA o le periferiche USB; /dev/cdrom per i CDROM. In ambito forense, il mount diretto di un’evidence (quindi di un disco, di una chiavetta USB, ecc...) deve essere fatto in sola lettura e solo nei casi in cui è realmente necessario26 . In questo modo può essere garantita la totale inalterabilità della memoria. Il file system selezionato, oltre ad essere composto di un device, può essere contenuto all’interno di un file memorizzato su disco e contenente il dump o l’immagine forense bit- 25 La X identifica il numero di periferica presente sul sistema, così avremo /dev/sda per il primo disco e /dev/sdb per il secondo, mentre i numeri che si osservano dopo il device tramite il comando “fdisk –l” (/dev/sda1, /dev/sda2, ecc...) identificano il numero della partizione all’interno del device. 26 Le best practice indicano chiaramente che non si dovrebbe lavorare mai sulla memoria di massa originale ma sempre e solo su una copia.
  26. 26. 26 Manuale DEFT 7 stream del device acquisito. Ci troveremo di fronte, in questo caso, a immagini: nel formato “bit stream image”(dd o raw)27 ; nel formato “Encase”(ewf); nel formato “Advanced Forensic Format”(aff). 5.1.3 Mount di un device (hard disk, penna USB, floppy disk, CDROM, ecc...) Per eseguire il mount in sola lettura di file system di memorie 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., o auto quando non si è sicuri del tipo di file system28 (se si omette il parametro il mount cerca autonomamente di riconoscere il tipo di filesystem e in genere ha successo); sorgente può essere una partizione come ad esempio /dev/hda1 o /dev/sda1; punto_di_mount è solitamente una directory di /media – che deve essere creata prima di eseguire il comando di mount29 . Le opzioni di uso frequente (che devono seguire il delimitatore –o nella riga di comando di mount) sono: ro - read-only: monta in sola lettura; rw - read-write: monta in scrittura30 ; loop - per montare un file immagine; noatime - non modifica le date di ultimo accesso; noexec - non permette l’esecuzione di file; offset=N - quando si monta il file immagine di un disco (argomento approfondito nel paragrafo successivo) fornisce il numero di byte da saltare per puntare all’inizio della partizione logica da montare (recuperabile con mmls o fdisk –lu). Esempio 1: montare in scrittura una partizione NTFS sulla quale verrà salvato il dump di un device (risultato di un’acquisizione forense): mount –t ntfs-3g –o rw /dev/sdb1 /media/dest 27 Spesso il formato bit-stream viene suddiviso in file di dimensione ridotta (2-4 Gbytes l’uno) in modo da poter essere salvato su filesystem con filesize limit (es. FAT32), in tal caso viene definito split raw. 28 Se omesso in genere il comando mount riesce ad identificare autonomamente il tipo di filesystem. 29 Ad esempio con il comando mkdir /media/nomecartellachevoglio 30 Da usare per la directory dove verra salvata la copia
  27. 27. 27 Manuale DEFT 7 Esempio 2: montare in sola lettura una partizione NTFS di un disco di cui si desidera fare acquisizione forense, ad esempio per avere un’anteprima dei file in essa contenuti magari durante un’attività sul campo (è essenziale utilizzare l’opzione -o ro per impedire qualsiasi scrittura accidentale sul disco): mount –t ntfs-3g –o ro /dev/sdb1 /media/evidence 5.1.4 Mount di un file immagine DD/RAW Per eseguire il mount in sola lettura di un file immagine (contenente il dump di un intero disco, non di una singola partizione) si può utilizzare il seguente comando: mount –t tipo –o ro,loop,offset=$((512*partition-start)) opzioni file_immagine.dd punto_di_mount Le opzioni ed il formato del comando mount sono le stesse indicate nel paragrafo precedente. In questo caso però deve essere obbligatoriamente utilizzata una modalità di mount basata su loop device che “converte” (in modo virtuale, senza quindi andare ad alterare il sorgente) un file immagine (statico) in un device linux (dinamico), permettendo quindi al kernel di farne il mount come se si trattasse di un dispositivo vero e proprio. L’opzione loop permette questo tipo di astrazione e deriva dall’applicazione implicita e automatica al layer sottostante del comando losetup, tramite il quale è possibile associare un device loop all’immagine della memoria image.dd. In questo modo è possibile utilizzare le applicazioni funzionati su device anche su immagini di memorie di massa. Se si vuole vuole evitare di inserire -o loop, è necessario far precedere al mount la creazione di un loop device tramite il comando: losetup -r /dev/loop0 /media/disco1/dump.dd Tale loop device sarà utilizzato come se fosse un disco sorgente da montare nella modalità descritta precedentemente31 . Quindi, potendo utilizzare direttamente l’opzione -o loop si evita di dover creare noi stessi un loop device che poi dovremmo ricordare di rilasciare tramite il comando “losetup –d /dev/loop0”. L’altro parametro essenziale quando si fa il mount di un file immagine contenente l’acquisizione di un disco intero (e quindi non di una singola partizione) è il valore “offset”. Tramite l’utility mmls è possibile scoprire l’offset d’inizio di una partizione del disco: 31 Sarà necessario quindi un comando tipo mount –o ro /dev/loop0 /mnt/dest
  28. 28. 28 Manuale DEFT 7 mmls dump.dd l’output ottenuto sarà 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 51232 : mount –t ntfs –o ro,loop,noatime,noauto,noexec,offset=16515072 dump.dd /media/dest Invece di eseguire il calcolo dell’offset moltiplicando per 512 il punto di “Start” della partizione ricavato dal comando mmls, è possibile utilizzare un operatore di calcolo della shell: inserendo come offset il valore $((512*partition-start)), dove “partition-start” indica l’offset in byte della partizione che si intende montare (nell’esempio precedente è il valore 33256). Avremmo quindi il comando di mount: mount –t ntfs –o ro,loop,noatime,noauto,noexec,offset=$((512*32256)) dump.dd /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. Si è scritto più volte che i comandi citati possono essere utilizzati per eseguire il mount di un file contenente il dump di un intero disco. Nel caso in cui – raro ma possibile – sia fatto il dump di una singola partizione, non è necessario utilizzare il parametro “offset” in quanto l’inizio della partizione coincide con quella del file. 5.1.5 Mount di un file immagine DD/RAW suddiviso in più file (split raw) Nel caso in cui il file immagine dd/raw (quindi immagine bit-stream o bit-to-bit di un disco) sia splittato (suddiviso) in più file, è necessario preparare il file su cui si andrà a fare il comando di mount mostrato nel paragrafo precedente. 32 512 byte è la grandezza di default di un settore che compone una memoria di massa
  29. 29. 29 Manuale DEFT 7 Ipotizziamo di avere un’immagine composta dai file dump.001, dump.002, dump.003, dump.004 e dump.005. Non possiamo applicare direttamente le azioni illustrate nel paragrafo precedente, perché non abbiamo in questo caso un solo file immagine su cui lanciare il comando mount, bensì cinque33 . Per montare file immagini raw suddivisi, in formato split-raw, abbiamo a disposizione tre possibilità. Il primo metodo consiste nella concatenazione dei singoli file in un unico file immagine, riportandoci quindi al caso descritto nel paragrafo precedente di mount di un singolo file dump.dd. Lo svantaggio evidente è che, in questo caso, lo spazio richiesto per l’operazione sarà pari a quello occupato dalla somma dei singoli file poiché li copieremmo concatenandoli in un nuovo file unico34 . Il comando da eseguire è il seguente: cat dump.* > image.raw Si ottiene così un unico file image.raw contenente l’intero disco ricavato dalla concatenazione dei singoli segmenti di immagine. Su tale file andremo a operare come indicato nel paragrafo precedente. Il secondo metodo prevede l’utilizzo del comando affuse, della suite Afflib35 . Sarà utilizzato anche in seguito per il mount di immagini nel formato AFF. Con tale comando creeremo una sorta d’immagine “virtuale” (quindi visibile dal sistema ma non esistente nella realtà36 ) che sarà montata come descritto nel paragrafo precedente. Il comando da eseguire, dopo aver creato la directory /mnt/raw, sarà: affuse dump.001 /mnt/raw Tale comando produrrà, all’interno della directory /mnt/raw, un file “virtuale” contenente l’immagine dd/raw composta dalla concatenazione dei vari file che la compongono nella realtà. Tale file sarà visibile con il nome dump.001.raw e sarà utilizzabile come parametro del mount visto nel paragrafo precedente. mount –t ntfs ro,loop,noatime,noauto,noexec,offset=16515072 /mnt/raw/dump.001.raw /media/dest Va ricordato che, quando prepariamo il mount tramite il comando affuse, è necessario smontare oltre alla partizione montata anche il file “virtuale” contenente l’immagine, tramite il comando: 33 Nella realtà, nel caso di acquisizioni di grossi dischi, il numero salirà a decine o centinaia. 34 Questa soluzione è illustrata solo a scopo didattico, poiché in genere si preferisce una delle due seguenti. 35 http://afflib.org/ 36 Similmente a quanto accade ai file contenuti nella cartella /proc del filesystem
  30. 30. 30 Manuale DEFT 7 fusermount –u /mnt/raw Il terzo metodo per montare un’immagine split-raw è quello di utilizzare il tool da linea di comando xmount37 . Similmente a quanto visto con il comando affuse, xmount crea anch’esso un file virtuale contenente l’immagine composta dalla concatenazione dei singoli segmenti che la compongono nella realtà. Il comando in questo caso è: xmount --in dd --out dd dump. * /mnt/raw Sarà creato un file “virtuale” nella directory /mnt/raw, denominato “dump” senza alcuna estensione. Tale file potrà essere montato, come illustrato nel caso precedente, selezionando l’offset del filesystem desiderato in modalità read-only. 5.1.6 File di tipo EWF/Encase Il mount di una memoria acquisita in formato EWF è possibile mediante l’applicazione mount_ewf. Questo programma è in grado di convertire virtualmente i file EWF nel formato raw permettendo così il mount del device come se fosse una memoria acquisita in formato dd. Esempio: 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* /mnt/raw è possibile ricostruire lo split ed eseguire la conversione virtuale in formato raw. L’operazione darà luogo alla creazione del file raw /mnt/raw/disk01, contenuto nella cartella /mnt/raw/. Esso sarà visto dal sistema come un unico file dd, anche se virtuale, e potrà essere montato seguendo la procedura indicata nel paragrafo precedente. Esempio: mount –t ntfs –o ro,loop,offset=$((512*63)) /mnt/raw/disk01 /mnt/c 5.1.7 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. 37 http://www.forensicswiki.org/wiki/Xmount
  31. 31. 31 Manuale DEFT 7 La sintassi è la seguente: affuse /media/disk/disk01.aff /mnt/raw L’output sarà il file /mnt/raw/disk01.aff.raw che potrà essere montato seguendo la procedura per il mount di immagini raw illustrata in precedenza. 5.2 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. Questa funzione è mono direzionale: dato un hash è impossibile ricostruire il blocco che lo ha originato. Qualsiasi modifica dei dati, seppur minima, porterà alla creazione di un hash totalmente diverso. All’interno del sistema Linux quest’operazione è possibile mediante l’utilizzo delle seguenti applicazioni: md5sum; sha1sum; md5, sha1 e sha256 deep; dhash. 5.2.1 Md5sum L'acronimo MD538 (Message Digest algorithm 5) identifica un algoritmo crittografico di hashing realizzato da Ronald Rivest nel 1991 e standardizzato con la Request for Comments RFC 1321. Quest’algoritmo, presa in input una stringa di lunghezza arbitraria (ad esempio un file), ne produce in output un'altra di 128 bit utilizzabile per calcolare la firma digitale dell'input. La codifica è molto veloce e l'output restituito (noto anche come "MD5 Checksum" o "MD5 Hash") è tale per cui è altamente improbabile che avvenga una collisione (cioè l’esatta coincidenza) tra gli hash di due file diversi. Infine, come per la maggior parte degli algoritmi di hashing, la possibilità di risalire alla stringa iniziale partendo dall’hash prodotto è in pratica nulla, se non per tentativi (forza bruta)39 . Ad esempio per calcolare il valore dell’hash MD5 di un disco si utilizza il comando: md5sum /dev/sda 38 http://it.wikipedia.org/wiki/MD5 39 La gamma di possibili valori in output è infatti pari a 2 alla 128esima potenza.
  32. 32. 32 Manuale DEFT 7 5.2.2 Sha1sum Il termine SHA40 indica una famiglia di cinque diverse funzioni crittografiche di hash sviluppate dal 1993 dalla National Security Agency (NSA) e pubblicate dal NIST come standard federale dal governo degli USA. Come ogni algoritmo di hash, lo SHA produce un valore di lunghezza fissa partendo da un messaggio di lunghezza variabile tramite una funzione non reversibile. Gli algoritmi della famiglia sono denominati SHA-1, SHA-224, SHA-256, SHA-384 e SHA- 512. Il primo tipo, SHA-1, produce una stringa di soli 160 bit, mentre gli altri producono digest di lunghezza in bit pari al numero indicato nella loro sigla41 . In questo momento l’algoritmo più diffuso della famiglia SHA e lo SHA-1 ed è utilizzato in numerose applicazioni e protocolli. Per calcolare il valore di hash SHA-1, ad esempio di un disco, si utilizza il comando: sha1sum /dev/sda 5.2.3 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 5.2.4 Dhash Dhash, disponibile in italiano ed in inglese, permette di calcolare gli hash di file e memorie di massa fornendo in tempo reale informazioni quali il tempo stimato prima del termine l’operazione e lo stato di avanzamento del calcolo. Al termine è inoltre possibile generare un report in formato html42 . Da test eseguiti in laboratorio Dhash è risultato essere 10% più veloce rispetto ai tool precedentemente 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 ne riporta i valori nel file dhashlog.html. 40 Secure Hash Algorithm - http://it.wikipedia.org/wiki/Secure_Hash_Algorithm 41 Es.: SHA-256 produce un digest di 256 bit. 42 Dhash è inoltre in grado di eseguire allo stesso tempo le operazioni di acquisizione e calcolo del hash.
  33. 33. 33 Manuale DEFT 7 5.3 Acquisizione memorie di massa Per acquisizione di una memoria di massa s’intende l’operazione che permette una vera e propria clonazione della memoria fisica oggetto di analisi. All’interno del sistema Linux quest’operazione è possibile mediante l’utilizzo dei seguenti tool: dd; ddrescue; dcfldd; dhash. In aggiunta a questi comandi, il team DEFT ha creato Cyclone: un wizard eseguibile da terminale per l’acquisizione guidata tramite la semplice risposta alle domande che appaiono su schermo. 5.3.1 dd dd prende in input un file o un device e ne restituisce, su un altro file o device, l’esatta sequenza binaria che lo compone. Esempio: dd if=/dev/sda of=/media/diskimage.img Il comando prende in input la memoria di massa /dev/sda e restituisce come output il suo clone all’interno del file diskimage.img contenuto nella cartella /media/. È possibile eseguire l’acquisizione da memoria di massa a file (o viceversa) ma anche da memoria di massa a memoria di massa43 . Esempio: dd if=/dev/sda of=/dev/sdb Si raccomanda di avere la massima attenzione con quest’ultimo commando poiché il device di destinazione (nell’esempio /dev/sdb) è cancellato e sovrascritto per tutta la dimensione del device sorgente (nell’esempio /dev/sda). Ciò significa che se /dev/sda è un hard disk di 60GB e /dev/sdb un disco da 250GB, il comando sopra riportato andrà a sovrascrivere i primi 60GB del disco destinazione (/dev/sdb) con l’intero contenuto bit-a-bit del disco sorgente (/dev/sda), rendendo così completamente irricuperabile quanto ivi contenuto e compromettendo anche i dati presenti nella parte non sovrascritta del disco. 5.3.2 ddrescue Come dd, ddrescue permette di clonare il contenuto di un disco riversandolo direttamente 43 Questa è una pratica molto meno usata in campo di computer forensics.
  34. 34. 34 Manuale DEFT 7 in un’altra memoria. ddrescue rappresenta un’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 impostando su zero tutti i bit non leggibili in essi contenuti. 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. Esempio: ddrescue /dev/sda /media/disco.img 5.3.3 dcfldd dcfldd è un’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 sono fornite informazioni dettagliate su quanto è stato letto e scritto. Esempio: dcfldd if=/dev/sda of=/media/disco.img hash=sha1 hash=md5 5.3.4 Dhash Questo software permette l’acquisizione in formato dd e il calcolo contemporaneo degli hash. È risultato più veloce del 10% 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 infine i valori nel file dhashlog.html.
  35. 35. 35 Manuale DEFT 7 5.4 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. Sono due i comandi principali per generare timeline del filesystem: fls44 prende come input un file raw derivante dall’acquisizione di un memoria di massa (sia essa una singola partizione o una raw image di un disco con più partizioni), e restituisce l’elenco di tutti i file (allocati e non ma di cui comunque il record è ancora contenuto nella tabella di allocazione del filesystem), da utilizzare successivamente con mac-time; mactime45 prende in input un elenco, creato mediante fls, completo dei dati contenuti all’interno del file system posto ad analisi e fornisce una timeline in formato ASCII. 5.4.1 fls È riportato un esempio di come utilizzare fls nel caso in cui l’immagine image-1.dd contenga un singolo filesystem/partizione46 : fls -z GMT -s 0 -m C: -f ntfs -r /images/disco-c.dd > /workdir/disco-c.body Nell’esempio, sono stati utilizzati i seguenti parametri: -z: fuso orario impostato sul sistema in analisi; -s: disallineamento in secondi dell’ora di sistema con l’ora reale47 ; -m: il testo da anteporre al percorso e al nome del file nella timeline48 ; -f: il file system della memoria acquisita; /images/disco-c.dd: l’immagine data come input per l’estrazione della timeline; /workdir/disco-c.body: il file, in formato bodyfile, contenente la timeline estratta dall’immagine data in input. Nel caso in cui l’immagine dd contenga invece più partizioni, è necessario utilizzare il parametro -o per indicare a fls l’offset in settori (e non in byte, come nel caso del parametro offset del comando mount) dal quale comincia la partizione in analisi. Per avere l’elenco delle partizioni e dei relativi valori di offset (espressi in settori e non in byte), si raccomanda l’utilizzo del comando mml della suite TSK oppure il comando fdisk 44 http://wiki.sleuthkit.org/index.php?title=Fls 45 http://wiki.sleuthkit.org/index.php?title=Mactime 46 Va notata l’assenza del parametro “offset”. 47 Si ricava verificando nel bios, durante l’acquisizione, la differenza tra l’orario di sistema e quello reale. 48 In genere si indica la lettera su cui è montato il drive, quindi “C:”, “D:” e così via.
  36. 36. 36 Manuale DEFT 7 con i parametri “-lu”. Nel caso di un’immagine contenente un disco con una partizione al settore 63 (in genere le partizioni uniche o la prima partizione cominciano sempre al settore 63) avremmo quindi: fls –o 63 -z GMT -s 0 -m C: -f ntfs -r /images/disco-c.dd > /workdir/disco-c.body A questo punto avremo un file (per comodità con estensione .body) in formato body49 , contenente la timeline del sistema in analisi. Tale formato non è immediatamente fruibile da parte dell’esaminatore poiché contiene le date codificate e i record non ordinati. È quindi necessario elaborarlo in modo da renderlo leggibile, ordinato e nel formato prescelto50 . Riportiamo un estratto di un file body, dal quale si deduce chiaramente la difficoltà nell’interpretazione del contenuto da parte dell’operatore: [...] 0|C:/WINDOWS/inf/mdmpin.PNF|4718-128- 3|r/rrwxrwxrwx|0|0|19268|1299255392|1299255392|1299255392|1299257718 0|C:/WINDOWS/inf/mdmpn1.inf|804-128- 3|r/rrwxrwxrwx|0|0|6376|1299257379|1092916800|1299257709|1092916800 0|C:/WINDOWS/inf/mdmpn1.PNF|4717-128- 3|r/rrwxrwxrwx|0|0|10424|1299255392|1299255392|1299255392|1299257718 0|C:/WINDOWS/inf/mdmmod.PNF|4747-128- 3|r/rrwxrwxrwx|0|0|18540|1299255386|1299255386|1299255386|1299257719 0|C:/WINDOWS/inf/mdmmoto.inf|779-128- 3|r/rrwxrwxrwx|0|0|96032|1299257378|1092916800|1299257709|1092916800 [...] 5.4.2 mactime Mactime è lo strumento della suite TSK che si occupa di convertire le timeline dal formato body al formato CSV, ordinandone le voci e modificando i parametri di visualizzazione in base alle necessità dell’operatore. Solitamente il comando da eseguire è il seguente: mactime -b /workdir/disco-c.body -z gmt -d > /workdir/disco-c.csv -b specifica il file da dare in input, -z la time zone, -d > /workdir/disco-c.csv rappresenta il file di output contenente la time line in formato csv51 . Aspetto da non sottovalutare, il comando mactime ha una funzionalità di reportistica riassuntiva dell’attività giornaliera ed oraria rilevata sul filesystem, che si va ad aggiungere alla funzione di conversione in formato CSV e ordinamento dei record generati dal comando fls. Tale informazione può essere indispensabile per valutare in quali giorni – o in quali orari – sono rilevabili sul PC attività marcate di utilizzo, evidenziando picchi e 49 http://wiki.sleuthkit.org/index.php?title=Body_file 50 In genere si utilizzerà il formato .CSV per la compatibilità con gli editor e con i fogli di calcolo. 51 È preferibile l’esportazione in formato csv per facilitare la consultazione tramite applicazioni come OpenOffice o Excel.
  37. 37. 37 Manuale DEFT 7 anomalie magari dovute ad attività durante il week-end che in una timeline tradizionale difficilmente saltano all’occhio. Per avere un report delle attività su filesystem avvenute giornalmente, è sufficiente aggiungere i parametri –d –i seguiti dal nome del file in cui si desidera salvare tale report. L’attività oraria si ottiene, invece, con i parametri –h –i seguiti dal nome del file in cui si desidera salvare tale report. Otterremo, in questo modo, un file contenente record simili ai seguenti: [...] Wed Oct 12 2011: 801 Thu Oct 13 2011: 987 Fri Oct 14 2011: 252 Sun Oct 16 2011: 25352 Mon Oct 17 2011: 463 Tue Oct 18 2011: 711 [..] Nell’esempio precedente si può notare che in data 16 ottobre 2011 si sono verificate 25352 attività su file52 . Tale valore potrebbe non essere d’interesse ma può, in alcuni contesti, essere di grande importanza53 . è consigliabile dare verificare la continuità o la media dei valori durante la maggior parte dei giorni analizzati, che si attesta magari su un determinato valore (es. <1000), e raggiungere, come nell’esempio, picchi di decine di migliaia in un giorno specifico. L’operatore dovrebbe procedere, a questo punto, ad analizzare più in dettaglio la timeline del giorno in cui è stata rilevata l’anomalia54 . La tabella seguente è utile per interpretare il significato dei valori che appaiono nella colonna “Activity Type”. Essi indicano le azioni compiute su file e cartelle in un determinato arco temporale. 52 Si intende accesso, creazione o modifica di file a livello di entry MFT o di file. 53 Ad esempio, se il PC in analisi è un asset di un’azienda in cui l’attività lavorativa avviene dal lunedì al venerdì, l’investigatore dovrebbe approfondire il motivo per cui un’attività così elevata si sia verificata di domenica. 54 Eseguendo ad esempio nuove analisi del registro, inserimento di penne USB, avvio di programmi, creazione di file LNK, ecc.
  38. 38. 38 Manuale DEFT 7 Vediamo ora un esempio di risultato dell’elaborazione di un file in formato body generato dal comando mactime: […] Fri Mar 04 2011 16:08:04 618605 .ac. r/rrwxrwxrwx 0 0 10618-128-1 C:/WINDOWS/system32/dllcache/fp4autl.dll Fri Mar 04 2011 16:08:11 17672 ...b r/rrwxrwxrwx 0 0 10624-128-4 C:/WINDOWS/Prefetch/IMAPI.EXE-0BF740A4.pf Fri Mar 04 2011 16:11:20 3014 ...b r/rrwxrwxrwx 0 0 10630-128-3 C:/WINDOWS/system32/wbem/Logs/wmiadap.log Fri Mar 04 2011 16:11:29 10296 ..cb r/rrwxrwxrwx 0 0 10631-128-3 C:/WINDOWS/system32/drivers/ASUSHWIO.SYS […] 5.5 Creazione di una supertimeline Le timeline, così come illustrate al paragrafo precedente, sono molto utili ma limitate alle attività rilevate sul filesytem55 . Oltre ai timestamp riguardanti i file, sono numerosissimi i metadati presenti sul sistema in analisi che possono essere integrati con la timeline del filesystem56 . Gli strumenti per generare questo genere di “timeline arricchite”57 sono già inclusi in deft. Anche in questo caso il punto di partenza è l’immagine di un disco o un disco stesso, così come avviene per le timeline tradizionali realizzate tramite fls + mactime (o l’interfaccia grafica Autopsy). Lo strumento specifico che utilizzeremo è log2timeline58 , framework scritto da Kristinn Gudjonsson e al cui sviluppo dei plugin ha collaborato l’intera comunità scientifica. Log2timeline lavora elaborando (parsing), in modo ricorsivo, i file contenuti in una partizione montata con alcuni parametri specifici, per permettere l’accesso ai metadati del filesystem. In particolare, i metadati che log2timeline è in grado ad oggi di elaborare ed inserire in una supertimeline sono elencati in questo elenco di input modes: 1. Apache2 Access log; 2. Apache2 Error log; 3. Google Chrome history; 4. Encase dirlisting; 5. Windows Event Log files (EVT); 6. Windows Event Log files (EVTX); 55 Quindi limitate alle mere operazioni di creazione, modifica o accesso dei file. 56 Alcuni esempi: i log di visite del browser, le modifiche alle chiavi di registro del sistema, i log degli antivirus, l’attività del registro di sistema, i file link in formato LNK, i prefetch ecc. 57 Nel gergo forense si indicano ormai con il termine di “supertimeline”. 58 http://log2timeline.net
  39. 39. 39 Manuale DEFT 7 7. EXIF; 8. Firefox bookmark; 9. Firefox 2 history; 10. Firefox 3 history; 11. FTK Imager Dirlisting CSV file; 12. Generic Linux log file; 13. Internet Explorer history file, parsing index.dat; 14. Windows IIS W3C log file; 15. ISA server text export; 16. Mactime body file; 17. McAfee AntiVirus Log; 18. MS-SQL Error log; 19. Opera Global and Direct browser history; 20. OpenXML metadata (Office 2007); 21. PCAP files; 22. PDF; 23. Windows Prefetch directory; 24. Windows Recycle Bin (INFO2 or I$); 25. Windows Restore Point; 26. Safari Browser history file; 27. Windows XP SetupAPI.log file; 28. Adobe Local Shared Object file (SOL/LSO), aka Flash Cookies; 29. Squid Access Logs (httpd_emulate off); 30. TLN (timeline) body file; 31. UserAssist key of the Windows registry; 32. Volatility (psscan e psscan2 output); 33. Windows Shortcut files (LNK); 34. Windows WMIProv log file; 35. Windows XP Firewall Log file (W3C format). La supertimeline può essere salvata in diversi formati. Il più utilizzato è il formato CSV59 , interpretabile dai più disparati fogli di calcolo e visualizzabile/modificabile anche 59 https://it.wikipedia.org/wiki/Comma-separated_values
  40. 40. 40 Manuale DEFT 7 semplicemente tramite editor testuali. L’elenco completo degli output modes nei quali è attualmente possibile esportare l’elaborazione della supertimeline è il seguente: BeeDocs; CEF; CFTL; CSV; Mactime; SIMILE; SQLite; TLN; TLNX. Il primo passo per generare una supertimeline è, come già scritto, l’avere l’immagine raw contenente la partizione da esaminare. Si può utilizzare un device (es. /dev/sda), un file immagine dd/raw oppure ancora file EWF, AFF o split raw convertiti come spiegato nei paragrafi precedenti. Ipotizziamo di avere un file image.dd contenente l’immagine del disco che intendiamo analizzare. La prima cosa è montare, nelle modalità precedentemente indicate, le partizioni di cui intendiamo ottenere una supertimeline. Decidiamo di voler analizzare l’unica partizione NTFS del disco posizionata all’offset 63 e identificata dalla lettera C: in Windows. Eseguendo il comando: mount -o ro,loop,show_sys_files,streams_interface=windows,offset=$((512*63)) /mnt/raw/img.dd /mnt/c Il disco C: sarà montato nella directory /mnt/c da dove eseguiremo il programma log2timeline: log2timeline -p –f winxp -r -z Europe/Rome /mnt/c/ -m C: -w c-log2t-unsorted.csv I parametri suggeriti sono i seguenti: -p: indica a log2timeline di fare un “preprocessing” ricorsivo della directory in analisi allo scopo di ottenere informazioni utili per i plugin che saranno avviati in seguito60 ; -f: indica il tipo di sistema operativo (e quindi il set di plugin) che si desidera applicare alla directory passata in input61 ; -r: indica a log2timeline di analizzare i file ricorsivamente senza quindi limitarsi quindi a quelli contenuti nella directory indicata; -z: indica il fuso orario (timezone) impostato nel PC in analisi62 ; -m: indica la stringa da anteporre al percorso e al nome del file nell’output di generazione della supertimeline, in genere si utilizza per indicare la lettera del 60 Ad esempio può essere ricavato l’hostname della macchina, gli utenti, il browser predefinito, la timezone, ecc. 61 Può essere omesso, indicando quindi a log2timeline di testare tutti i plugin su tutti i file. 62 Può essere ricavato automaticamente tramite il parametro “-p” ma spesso è utile indicarlo manualmente.
  41. 41. 41 Manuale DEFT 7 drive del disco in analisi (es. “C:”, “D:”, ecc.); -w: indica il file in cui salvare la supertimeline generata in formato CSV. Risultato dell’operazione è un file CSV contenente le singole voci ricavate dall’analisi dei diversi artefatti, disposti nell’ordine in cui sono stati analizzati. è quindi necessario utilizzare un strumento per ordinare le entry, selezionare eventualmente un periodo di interesse e filtrare, se necessario, contemporaneamente su parole chiave di interesse. Lo strumento dotato di queste funzionalità è l2t_process, anch’esso parte del framework log2timeline. Per ordinare e visualizzare, ad esempio, l’attività del PC avvenuta nel 2011, registrata nel file CSV c-log2t-unsorted.csv ci avalleremo del seguente comando: l2t_process -i -b c-log2t-unsorted.csv -y 2008-01-01..2008-12-31 –k keywords.txt > c-log2t- 2008.csv Le opzioni interessanti dello script l2t_process sono: -i: sono inserite in output anche entry fuori dall’intervallo temporale indicato, se queste contengono informazioni che fanno sospettare attività di timestomping63 ; -y: forza il formato delle date in yyyy-mm-dd piuttosto del predefinito mm-dd- yyyy; -b: indica quale file deve essere analizzato dallo script; -k: indica il file contenente le parole chiave a cui siamo interessati, escludendo dall’output i record che non le contengono. Il risultato dell’esecuzione di log2timeline e l2t_process sarà un lungo elenco di attività rilevate su filesystem64 e dai metadati ricavati dai tipi di file indicati in precedenza (registro, eventi, link, browser history, ecc...). 63 Es. MFT record con valore 0 sui millisecondi. 64 Nel caso di NTFS avremo voci ricavate dalla tabella MFT.
  42. 42. 42 Manuale DEFT 7 Le colonne del file avranno l’intestazione seguente: 1. Date 2. Time 3. Timezone 4. MACB 5. Source 6. Sourcetype 7. Type 8. User 9. Host 10. Short 11. Desc 12. Version 13. Filename 14. Inode 15. Notes 16. Format 17. Extra A questo punto la difficoltà sarà nel filtrare le migliaia, a volte centinaia di migliaia, di voci per concentrarsi su quelle rilevanti. Da linea di comando, il programma grep può fornire un valido aiuto per escludere o, a posteriori, includere nella lista alcuni tipi di attività. È altresì possibile importare la supertimeline in un foglio di calcolo65 per filtrare ed analizzare il contenuto utilizzando le funzionalità tipiche di questo tipo di applicazione. Una delle categorie principali sulla quale è interessante applicare filtri è quella concernente il tipo di metadato rilevato, nella colonna 6 Sourcetype. Tra i tipi disponibili cui avremo interesse a filtrare, ci saranno ad esempio NTFS $MFT, REG, Event Log, WEBHIST, XP Prefetch, ecc... che ci permetteranno di distinguere tra navigazione internet, inserimento di penne USB (cercando USBSTOR nei record relativi il registro), apertura file (NTFS $MFT), o quanto altro di nostro interesse. 5.6 Ricerca file e cartelle È possibile effettuare ricerche di file e cartelle utilizzando uno dei seguenti strumenti: locate; find. 5.6.1 Locate Locate permette la ricerca di file all’interno di memorie di massa. Prima è necessario eseguire un’indicizzazione tramite il comando updatedb. Esempio: locate finanza –q–i 65 Deft presenta la suite libreoffice che include il foglio di calcolo Calc,
  43. 43. 43 Manuale DEFT 7 Esegue una ricerca, senza distinguere tra maiuscole e minuscole (-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. 5.6.2 Find Find permette di eseguire la ricerca di file senza alcuna indicizzazione preventiva. Esempio: find . -iwholename “*porn*.png” Ricerca 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 e riportandone l’elenco nel file lista.txt 5.7 Carving di file L’attività di carving consiste nel recupero di file non più referenziati dal file system, attraverso il riconoscimento di header e footer66 del file. È un procedimento molto lungo perché il disco è esaminato dal primo all’ultimo bit. Metaforicamente parlando, possiamo paragonare questo processo di lettura a quello di un’unità nastro. 5.7.1 Foremost Foremost permette il recupero di file cancellati direttamente da memorie di massa o, preferibilmente, da file 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. 66 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.
  44. 44. 44 Manuale DEFT 7 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. Tramite il parametro –t è possibile ricercare i seguenti tipi di file: jpg gif png bmp avi exe mpg wav riff wmv mov pdf ole doc zip rar htm cpp
  45. 45. 45 Manuale DEFT 7 Capitolo 6: DEFT Linux GUI mode 6.1 Introduzione L’interfaccia grafica di DEFT Linux è basata sul “desktop environment” LXDE (Lightweight X11 Desktop Environment)67 . La scelta del desktop manager è caduta su questo progetto perchè ad oggi è una delle interfacce grafiche più leggere e perforanti del mondo Linux. L’utilizzo della modalità grafica è richiesto 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)68 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 Wine69 . Per avviare l’interfaccia grafica di DEFT Linux è sufficiente digitare il comando deft-gui. 67 http://www.lxde.org 68 http://www.digital-forensic.org/ 69 http://www.winehq.org/
  46. 46. 46 Manuale DEFT 7 Deft: Linux GUI Il desktop presenta i seguenti elementi: 1. Directory per la raccolta delle evidenze 2. Procedura per l’installazione di DEFT Linux 3. Terminale dei comandi 4. Menu applicazioni 5. PcmanFM File Manager 6. Gestione lingua tastiera 7. Mostra Desktop 8. Gestione multi desktop 9. Controllo audio del sistema 10. Network manager 11. Data e ora 12. Gestione fuso orario 13. Spegnimento e riavvio sistema
  47. 47. 47 Manuale DEFT 7 DEFT: Linux menu Nel dettaglio il Menu Applicazioni presenta le seguenti sezioni: Accessories: Archive Manager, Character Map, Disk Utility, File Manager, Galculator, Image Viewer, Leafpad, LXTerminal, Truecrypt e Xpad. DEFT: Analisys tool, Antimalware tools, Carving tools, Hashing tools, Imaging tools, Mobile forensics, Network forensics, Osint tools, Password recovery, Reporting tools, Disk utility, File Manager, Gparted, Midnight commander, Mount ewf, MountManager, Wipe e Xmount. Graphics: Document viewer. Internet: Firefox e Sun Java 6 web start. Services: Apache start, Apache stop, Mysql start, Mysql stop, Samba start, Samba stop, SSH start, SSH stop, Xplico start, Xplico stop. Sound & Video: Audacious, Desktop recorder, VLC media player e Xfburn. Wine. System tools: Gdebi package installer, Gparted, Printing, Synaptic package manager, System Profiler and benchmark, Task manager, Time and date, update manager, Users and groups e Windows wireless drivers.
  48. 48. 48 Manuale DEFT 7 Preferences: Additional drivers, Adobe Flash Player, Customize look, Desktop session setting, Disk utility, Keyboard and mouse, Language support, Lxkeymap, Monitor settings, Network connections, Openbox configuration, Preferred applications, Software sources, Sun Java 6 Plugin control panel e Sun Java 6 Policy tool. 6.2 Gestione della memoria di massa Come già scritto in precedenza, il sistema non compie alcuna azione ad eccezione del rilevamento dei device collegati al sistema. Utilizzando il file manager, tutte le memorie di massa, interne ed esterne, direttamente collegate al sistema non saranno mai montate in automatico. Facendo clic con il tasto destro sull'icona della memoria di massa saranno visualizzate le policy per il mount: Mount Read Only: permette l’accesso alla memoria di massa in sola lettura evitando qualsiasi tipo di alterazione dei dati contenuti e della memoria stessa; Mount Volume: permette l’accesso alla memoria di massa in lettura e scrittura; Eject volume: permette la rimozione sicura della memoria dal sistema. Tramite l’applicazione Mount Manager l’operatore potrà definire le policy di mount sulla base delle sue esigenze operative. Attività di Mount usando PcmanFMr
  49. 49. 49 Manuale DEFT 7 6.3 Mount manager Mount manager permette di creare in semplici clic policy di mount avanzate. Nell’immagine abbiamo riportarto la procedura per eseguire il mount di una memoria di massa in RO (read only) bloccando qualsiasi azione che possa alterare il file system. Policy di mount per bloccare le possibili alterazioni al file system Per eseguire il mount è necessario associare una directory esistente ad una partizione della memoria assicurandosi che siano stati configurati i parametri noatime, noauto, ro, noexec che garantiscono che la memoria di massa non sia alterata durante l’utilizzo. Solo in questo modo sarà possibile accedere al file system in sola lettura e usarlo senza aggiornare l’inode access time70 . 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. 70 Informazione temporale di ultimo accesso ad una risorsa del file system
  50. 50. 50 Manuale DEFT 7 6.4 Calcolo dell’hash Dhash è l’unico strumento in DEFT Linux dedicato al calcolo di hash in modalità grafica. dhash: Calcolo dell’hash di un device Avviato il programma, fate clic su open device per scegliere una memoria di massa o su Open file per selezionare un file. Indicate la tipologia di hash da calcolare (md5, sha1 od entrambi) e fate clic su Starts. Una volta terminata l’operazione è possibile salvare un report html dei risultati facendo clic su save log. 6.5 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 è caldamente consigliato per le acquisizioni in parallelo ed in formato ewf.
  51. 51. 51 Manuale DEFT 7 6.5.1 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 poi su Acquire. Potete inoltre decidere di acquisire e comprimere in formato gz spuntando la casella Compress e/o scegliere se eseguire il calcolo del o degli hash. Acquisizione con calcolo simultaneo degli hash md5 e sha1 Premendo il pulsante Starts è avviata l’acquisizione. Al termine delle attività, è possibile salvare un report in formato html facendo clic sul pulsante Save log.
  52. 52. 52 Manuale DEFT 7 6.5.2 Guymager Guymager permette una gestione più avanzata delle acquisizioni rispetto a Dhash. Guymage: Gestione caso per la fase di acquisizione Guymager permette, oltre all’acquisizione simultanea di più memorie di massa, anche l’inserimento di informazioni quali: Codice caso; Catalogazione dell’evidence; Nome dell’operatore che sta compiendo le operazioni; Descrizione dell’oggetto che si sta acquisendo. Il programma supporta tutti i principali formati di acquisizione (dd, aff ed encase) e permette di eseguire il controllo d’integrità, tramite verifica dell’hash md5 o sha256, sia dell’immagine creata sia del device originale (anche su immagini “splittate”). Per avviare il processo di acquisizione in Guymager fate clic con il tasto destro del mouse
  53. 53. 53 Manuale DEFT 7 sulla memoria di massa da clonare e selezionare la funzione Acquire image. Nella finestra Acquire Image è possibile indicare numerosi parametri dell’acquisizione o della gestione del caso. 6.6 Ricerca di file e cartelle 6.6.1 Catfish Catfish permette di compiere le stesse operazioni che si possono eseguire a riga di comando tramite i comandi find e locate. Nell’esempio riportato nell’immagine, selezionata la memoria o la cartella dove compiere la ricerca, è stata lanciata una ricerca di tutti i file aventi estensione JPG scrivendo nel campo di ricerca *.jpg. Una volta terminata la ricerca è possibile aprire i vari file elencati con un semplice doppio clic. Catfish: Ricerca di file Nella finestra sono riportate anche ulteriori informazioni dei file riguardanti la data dell’ultima modifica, il percorso del file e la sua dimensione sul disco.
  54. 54. 54 Manuale DEFT 7 6.7 Findwild Findwild è un programma che permettere di ricercare parole all’interno di file. Specificando la directory d’interesse e le parole chiave, è possibile ottenere un elenco dei file contenenti le chiavi di ricerca. Findwild: Ricerca di contenuti
  55. 55. 55 Manuale DEFT 7 6.8 Carving di file da GUI Hunchbacked 4most (H4m), disponibile in italiano e inglese, è un’interfaccia grafica per la gestione delle principali funzioni di foremost e scalpel. Tramite H4m, una volta scelto il programma da impiegare come file carver, è possibile eseguire il carving con alcuni semplici clic. Hunchbacked 4most: Carving di file con Foremost H4m, una volta indicati il file o il device in cui eseguire la ricerca e la cartella dove memorizzare i file recuperati, ricerca e salva tutti i file con header e footer specificati dall’operatore.
  56. 56. 56 Manuale DEFT 7 Hunchbacked 4most: Carving di file con Scalpel Oltre ai tradizionali formati di file supportati da Foremost e Scalpel, è possibile personalizzare la ricerca indicando un nuovo file di configurazione contenente gli header ed i footer d’interesse.
  57. 57. 57 Manuale DEFT 7 6.9 Gestione di un caso con Autopsy Autopsy forensic browser è un’interfaccia grafica per la gestione delle funzionalità di The Sleuth Kit71 . È utilizzata principalmente 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 ed encase; visualizzare informazioni sul tipo di file system; analizzare e 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 evidenze riscontrate; creazione di un caso. Avviato Autopsy dalla sezione Disk Forensic, è richiesto all’operatore se intende creare un nuovo caso o aprirne uno esistente. In questo esempio faremo clic su new per la creazione del caso di prova ed inseriremo i dati in nostro possesso per la catalogazione, come nome, descrizione e nominativi degli investigatori: 71 http://www.sleuthkit.org/
  58. 58. 58 Manuale DEFT 7 Creazione nuovo caso Una volta confermati i dati, in /root/evidence/nome caso sarà creata una directory contenente tutti i dati del caso. All’interno di un caso possono essere aggiunti uno o più oggetti (raffiguranti o i soggetti appartenenti o i sistemi informatici) facendo clic su add host all’interno del caso ed inserendo i dati richiesti:
  59. 59. 59 Manuale DEFT 7 Aggiunta di oggetti che compongono il caso Ad ogni oggetto possono essere aggiunte una o più memorie di massa: è sufficiente fare clic su add image file, inserire nel campo location o il collegamento diretto ad una memoria di massa (es: /dev/sdx) o il path contenente il file dell’acquisizione (es: /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 symlink.
  60. 60. 60 Manuale DEFT 7 Aggiunta di memoria di massa all’interno dell’oggetto Una volta aggiunta la memoria sarà chiesto se calcolare, o inserire manualmente se già calcolato, il valore dell’hash md572 e di specificare il nome simbolico della partizione ed il suo file system. 72 Autopsy supporta solo l’algoritmo di hash md5.
  61. 61. 61 Manuale DEFT 7 Gestione valore dell’hash e tipo di file system della/e partizioni La creazione dell’oggetto Disco001 sarà completa al termine delle operazioni precedenti. È possibile continuare ad aggiungere altre memorie all’oggetto o iniziare la nostra analisi facendo clic su Analyze.
  62. 62. 62 Manuale DEFT 7 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, di visualizzarne un’anteprima del contenuto. L’accesso al file è in sola lettura in modo da non alterarne né i riferimenti temporali né i metadati. Nella schermata di analisi è visualizzato: Il nome file/directory ed il suo percorso; I valori temporali come data creazione, ultimo accesso ed ultima modifica; Il tipo di dato; Se il dato è stato cancellato o meno (in rosso se vi è stata richiesta l’azione di eliminazione del dato).
  63. 63. 63 Manuale DEFT 7 Autopsy: File analysis 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 raccomandiamo 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.
  64. 64. 64 Manuale DEFT 7 Ricerca di file per argomento
  65. 65. 65 Manuale DEFT 7 6.10 Xplico Il progetto DEFT ha sempre sostenuto, sin dalle primissime release di DEFT Linux, l’evoluzione del progetto Xplico73 . L’utilizzo di Xplico è molto semplice: dato in input un file pcap74 contenente un dump di traffico 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. Dalla release 7 di DEFT, Xplico viene gestito come servizio. Pertanto, per poter eseguire l’applicativo, sarà necessario avviare i seguenti servizi in sequenza: 1. Apache web server; 2. Xplico. L’avvio dei servizi sopra citati può avvenire tramite menu DEFT > menu services, oppure tramite l’utilizzo della linea di comando. Una volta avviati i servizi è possibile lanciare l’icona Xplico dal menu Network Forensics. 73 Il tool, reperibile presso questo indirizzo http://www.xplico.org/, è diventato nel tempo uno dei più potenti Network Forensic Tool open source. 74 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.
  66. 66. 66 Manuale DEFT 7 6.10.1 Creazione di un caso Manca la didascalia Avviamo Xplico dalla sezione Network Forensics del menu di DEFT ed inseriamo le seguenti credenziali per ottenere l’accesso al gestore casi: 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 il login con le credenziali di administrator: user: admin password: xplico Nell’esempio seguente abbiamo creato un nuovo caso denominato Pippo dove è acquisito ed analizzato tutto il traffico che in quel momento è passato attraverso l’interfaccia eth0 della nostra postazione. Login Xplico
  67. 67. 67 Manuale DEFT 7 Xplico: Gestione casi Al Termine della fase di acquisizione, Xplico avrà già decodificato e ricostruito tutti i tipi di dati supportati, cioè: http dns web mail smtp pop3 imap sip telnet ftp tftp rtp pjl facebook chat msn irc
  68. 68. 68 Manuale DEFT 7 Report dei dati ricostruiti Nell’esempio precedente abbiamo visitato il sito http://www.libero.it richiesto dall’utente intercettato. L’elenco contenente le ricostruzioni di tutti i siti web e di tutti i contenuti visualizzati è consultabile alla voce site del menu web.
  69. 69. 69 Manuale DEFT 7 Lista di tutte le get eseguite dal browser Va tenuto conto che l’elenco di tutte le get75 eseguite comprende 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. 75 Richiesta ad un web server per la visualizzazione di un determinato url.
  70. 70. 70 Manuale DEFT 7 6.11 Hydra Hydra è uno dei più noti software utilizzati per la forzatura di login e password mediante attacco a forza bruta76 . Hydra : selezione dei protocolli 76 http://it.wikipedia.org/wiki/Metodo_forza_bruta
  71. 71. 71 Manuale DEFT 7 L’elenco seguente indica i protocolli ed applicativi su cui si può eseguire un attacco brute force utilizzando Hydra: AFP Cisco AAA Cisco auth Cisco enable CVS Firebird FTP HTTP-FORM- GET HTTP-FORM- POST HTTP-GET HTTP-HEAD HTTP-PROXY HTTPS-FORM- GET HTTPS-FORM- POST HTTPS-GET HTTPS-HEAD HTTP-Proxy ICQ IMAP IRC LDAP MS-SQL MYSQL NCP NNTP Oracle Listener Oracle SID Oracle PC-Anywhere PCNFS POP3 POSTGRES RDP Rexec Rlogin Rsh SAP/R3 SIP SMB SMTP SMTP Enum SNMP SOCKS5 SH (v1 and v2), Subversion Teamspeak (TS2) Telnet VMware-Auth VNC XMPP All’interno di DEFT Linux non sono inclusi dizionari per eseguire le attività di “violazione” password. Tramite l’applicazione cupp è possibile generare dizionari personalizzati: rispondendo alle domande che vi pone l’applicazione è possibile generare una elenco di parole chiave basate sulle informazioni presenti nella macchina protetta dalle credenziali da forzare77 . 77 Le wordlist sono reperibili facilmente in rete in diverse tipologie: lingue, raccolte di password, ecc. come ad esempio ftp://ftp.ox.ac.uk/pub/wordlists/ o http://wordlist.sourceforge.net/
  72. 72. 72 Manuale DEFT 7 6.12 Keepnote Keepnote è un software utilizzato per la raccolta e la classificazione di informazioni. Nel campo della Computer Forensics può essere usato per la gestione delle evidence, catalogando le memorie di massa e tutte i risultati delle analisi all’interno di altri oggetti. KeepNote: la raccolta di evidence È possibile creare un albero di oggetti (directory e pagine), strutturarlo secondo le proprie esigenze ed inserire all’interno delle pagine informazioni quali: Testo non formattato; Html; Immagini; File. Le informazioni inserite all’interno del notebook creato con KeepNote possono essere salvate nel formato KeepNote o esportate in un file html.
  73. 73. 73 Manuale DEFT 7 6.13 Maltego Maltego78 può essere utilizzato sia nell’ambito della Computer Forensics sia di Cyber Intelligence. È multi-piattaforma, scritto in Java, in grado di trovare e rappresentare graficamente collegamenti tra persone, gruppi, aziende, siti web, città, vie, e-mail, numeri di telefono, indirizzi IP, nomi di dominio, file, documenti, ecc. Maltego CE, creazione di un diagramma Poiché l’utilizzo di questo programma esula dagli scopi di questo documento, il suo funzionamento non verrà trattato nel dettaglio. Vi suggeriamo di fare riferimento all’esaustiva documentazione ufficiale presso questo indirizzo: http://www.paterva.com/web5/documentation/userguide.php 78 http://www.paterva.com/
  74. 74. 74 Manuale DEFT 7 Capitolo 7: Mobile forensics Dalla release 7 di DEFT Linux sono inclusi alcuni strumenti destinati all’analisi dei dispositivi cellulari. È ora disponibile Sqlite database browser per permettere l’analisi dei database Sqlite, usati nella maggior parte delle applicazioni dei dispositivi Android, Iphone e Ipad. Per l’analisi dei cellulari è stato incluso: Ipddump per l’analisi dei backup di dispositivi BlackBerry; Iphone Analyzer per l’analisi di iPhone dalla versione 3 e precedenti; Iphone backup analyzer per l’analisi dei backup di dispositivi iPhone; Bitpim che supporta i seguenti dispositivi: Audiovox CDM8900 LG AX-8600 LG C2000 LG G4015 LG LX570 LG PM225 LG UX-5000 LG VX-3200 LG VX-4400 LG VX-4500 LG VX-4650 LG VX-5200 LG VX-5300 LG VX-6000 LG VX-6100 LG VX-7000 LG VX-8000 LG VX-8100 LG VX-8300 LG VX-8500 LG VX-8560 LG VX-8600 LG VX-8610 LG VX-8700 LG VX-8600 LG VX-8800 LG VX-9100 LG VX-9200LG VX- 9600 LG VX-9700 LG VX-9800 LG VX-9900 LG VX-10000 LG VX-11000 Motorola E815 Motorola E815m Motorola K1m Motorola V325 Motorola V325M Motorola V3c Motorola V3cm Motorola V3m Motorola V3mM Motorola V710 Motorola V710m Samsung SCH-A870 Samsung SCH-A930 Samsung SCH-A950 Samsung SCH-U470 Samsung SCH-U740 Samsung SCH-U750 Samsung SPH-M300 Sanyo SCP-6600 (Katana) Other Sanyo Phones Toshiba VM-4050
  75. 75. 75 Manuale DEFT 7 Bitpim: la lista dei telefoni supportati

×