Indagini informatiche a costo zero
Transcript
Indagini informatiche a costo zero
Indagini informatiche a costo zero Difesa Giuseppe Specchio Grado di difficoltà Con le nuove figure professionali che si stanno sempre più affermando nell'ambito dell'Information Tecnology, sta acquisendo particolare lustro quella del Computer Forenser o Informatico. C on le nuove figure professionali che si stanno sempre più affermando nell'ambito dell'Information Tecnology, sta acquisendo particolare lustro quella del Computer Forenser o Informatico Forense detto all'italiana maniera, il quale si occupa dell'esecuzione di indagini informatiche rispettando le garanzie di legge dello stato in cui si sta esercitando l'azione penale. Possiamo affermare che in Italia tale figura professionale si è meglio definita con l'avvento della Legge N.397 del 7 dicembre 2000, la quale fissa le disposizioni in materia di indagini difensive, in cui l'informatico acquisisce la veste di consulente tecnico. Nel seguente articolo verranno fornite le specifiche di massima effettuare un corretto repertamento informatico sfruttando alcuni tool da riga di comando, ovviamente Linux. Cos'è la Computer Forensics Se consultiamo anche il più recente dei dizionari informatici, allo stato attuale non esiste un'unica definizioni di Computer Forensics. Una possibile definizione potrebbe essere la seguente: la Computer Forensics è una disciplina che si occupa della preservazione, dell'identifica- 54 hakin9 Nº 1/2008 zione, dello studio, delle informazioni contenute all'interno di dispositivi di memorizzazione di massa, o nei sistemi informativi in generale, al fine di evidenziare l'esistenza di prove utili allo svolgimento dell'attività investigativa prevalentemente di carattere giudiziario. Possiamo dire senza ombra di dubbio, che si ha che fare con una nuova branca delle investigazioni scientifiche, al pari della balistica, biologia e chimica. Tale scienza, già affermata da diversi anni nel mondo anglosassone, solo a pochi anni si è affacciata alla realtà legislativa italiana. Tale presenza è dovuta dal fatto che oramai la tecnologia non è più ad appannaggio di pochi eletti. Anche il comune Che cosa dovresti sapere • Terminologia legata con la computer forensic Che cosa imparerai • • • • www.hakin9.org Basi di linux Caratteristiche del comando dd Validazione di copia Come acquisire con dcfldd Indagini informatiche a costo zero mortale usa la tecnologia digitale in molti ambiti della propria vita personale, si pensi già al sol uso dei cellulari, i più evoluti smartphone o un hard disk recorder per la televisione. Da tale riflessione, appare evidente che oramai qualunque scena criminis, o scena del crimine che dir si voglia, pullula di dispositivi c.d. high-tech. Tra quest'ultimi, quelli di interesse per la computer forensics sono quelli in grado, in qualsiasi modo, di memorizzare informazioni, sia esso una macchina fotografica digitale, un computer, un palmare o una console per videogiochi, tutti vanno gestiti e controllati con i dovuti accorgimenti del caso. Questi dispositivi elettronici non possono essere accesi e gestiti con leggerezza da parte dell'operatore. Data l'immaterialità della prova contenuta al suo interno, la quale può con estrema facilità essere distrutta od alterata, tale evento può avvenire per una miriade di motivazioni diverse. Questo è proprio il compito del c.d. Computer Forenser; riprendendo la definizione citata all'inizio di questo paragrafo: occuparsi della preservazione, dell'identificazione, dello studio, dei dati contenuti negli elaboratori digitali, al fine di evidenziare l'esistenza di prove utili allo svolgimento dell'attività investigativa. La copia forense La copia forense ha lo scopo di effettuare una duplicazione bit a bit del supporto oggetto d'indagine. Mediante tale copia, memorizzata su un supporto equivalente, deve essere possibile ricreare un supporto perfettamente identico, a livello logico, all'originale. Questo impone di copiare non solo i dati ma qualunque informazione sia presente sul supporto, comprese le strutture di gestione, come master boot record, tabella delle partizioni, metadati del file system, spazio libero. Da tale considerazione si evince un principio importante, ovvero che la copia deve essere sempre della stessa grandezza ( in termini logici) del supporto, indipendentemente dalla quantità di informazioni effettivamente contenute nel supporto stesso. Il metodo migliore per effettuare tale copia é considerare qualunque supporto come un supporto ad accesso sequenziale, simile ad un nastro magnetico. In tal modo sarà possibile leggere il disco bit-a-bit partendo dal primo blocco sino all'ultimo. Validazione della copia Al fine di garantire la non alterazione della prova, la copia così ottenuta dovrà necessariamente essere validata, per far questo si utilizzano solitamente dei programmi di hash o message digest. Una funzione hash é una funzione matematica non invertibile in grado di processare un dato arbitrariamente grande e di calcolare, da questo, una valore di grandezza fissa. E' implicito in questa definizione che qualunque funzione di hash al mondo ha un problema evidente: essendo il numero di dati possibili infinito ed essendo, nel contempo, il numero risultate di grandezza fissa (quindi invariabilmente un numero finito di valori), esiste la probabilità che più dati diversi generino una stesso valore di hash. Tale problema é noto come collision (dall'inglese collisione). Il compito della matematica e della crittoanalisi moderne é di generare funzioni hash per le quali sia impos- sibile prevedere una condizione di collisione. Nel caso in cui tale collisione fosse predeterminabile, infatti, la validazione non avrebbe più alcun senso dato che sarebbe possibile variare ad hoc il dato validato e calcolare poi la condizione necessaria per generare la collisione con il valore calcolato sul dato originale. Si avrebbe quindi una dato modificato che però risulta identico all'originale all'applicazione della validazione. Allo stato attuale gli algoritmi più utilizzati per la validazione delle evidenze digitali sono MD5 (Message Digest Algorithm 5) e SHA (Secure Hash Algorithm). In entrambi questi algoritmi sono stati trovati dei sistemi per generare delle collisioni, anche se con dati casuali, non partendo da un dato precedente validato e poi modificato ad hoc. E' inoltre evidente come, con il crescere della potenza di calcolo fornita dai moderni calcolatori, sia sempre più difficile riuscire a sviluppare algoritmi che possano fornire una validazione per lungo tempo. I metodi per avviare al problema delle collisioni sono essenzialmente due: • Utilizzare algoritmi sempre più articolati, anche se questo metodo non sempre può essere applicato, dato che spesso la giu- Listato 1. Periferiche :/# fdisk -l Disk /dev/sda: 30.0 GB, 30005821440 bytes 255 heads, 63 sectors/track, 3648 cylinders Units = cilindri of 16065 * 512 = 8225280 bytes Dispositivo Boot Start /dev/sda1 * 1 3492 /dev/sda2 3493 3648 /dev/sda5 3493 3648 End Blocks Id System 28049458+ 83 Linux 1253070 5 Esteso 1253038+ 82 Linux swap / Solaris Disk /dev/sdb: 1028 MB, 1028653056 bytes 32 heads, 62 sectors/track, 1012 cylinders Units = cilindri of 1984 * 512 = 1015808 bytes Disk /dev/mmcblk0: 32 MB, 32112640 bytes 2 heads, 32 sectors/track, 980 cylinders Units = cilindri of 64 * 512 = 32768 bytes Dispositivo Boot /dev/mmcblk0p1 www.hakin9.org Start 2 980 End Blocks Id System 31328 4 FAT16 <32M hakin9 Nº 1/2008 55 Difesa • risprudenza considera validi solo alcuni algoritmi. Si consideri che in alcune nazioni degli Stati Uniti d'America l'uso di alcuni algoritmi di criptazione è consentita solo all'interno del territorio nazionale. Validare i risultati con due diversi algoritmi; validare un dato contemporaneamente con i due algoritmi più usati (SHA e MD5) rende praticamente impossibile calcolare una collisione che sia valida al contempo per entrambi gli hash. L'applicativo per l'acquisizione Allo stato attuale sul mercato sono disponibili vari prodotti per effettuare una copia bit-a-bit di un dispositivo di memorizzazione di massa. Alcuni di questi sono dispositivi hardware in grado di operare in piena autonomia senza essere legati all'uso di un computer. Altri sono software specializzati per questo genere di soluzioni. Ad essere sinceri esiste la possibilità di costruirsi un laboratorio forense, quasi a costo zero. Per effettuare una corretta copia forense di un supporto possiamo riciclare dalla shell dal nostro attuale Linux il comando dd il quale é uno strumento di copia sequenziale originariamente utilizzato sotto Unix per scopi di vario genere. Il vantaggio di dd è proprio quello quello di funzionare su Unix, il cui paradigma progettuale é quello secondo cui ogni cosa é un file. In ambiente Unix ogni singolo componente del computer inclusi, per esempio, scheda audio, porte seriali, mouse, tastiera e tutti i dispositivi di memorizzazione, viene rappresentato come un file posto nella directory /dev. Dd utilizza quest'astrazione fornita dal sistema operativo per operare sui singoli dispositivi come se fossero dei sistemi ad accesso seriale, ovvero la condizione ideale per una copia forense. Un altro enorme vantaggio di questo semplice tool rispetto a qualunque sistema commerciale é quello di essere disponibile in formato 56 hakin9 Nº 1/2008 sorgente. Ciò implica che a qualunque eccezione posta in fase dibattimentale sull'effettivo funzionamento del software é possibile rispondere sia mostrando il codice sorgente sia ricompilandone una nuova versione per dimostrare l'identico funzionamento. Caratteristiche del comando dd Il comando dd é un porting di un comando del JCL del sistema OS/360 e si occupa di copiare un qualunque supporto utilizzando un metodo a blocchi. Questi al contrario dei tool pensati per effettuare copie di backup, non esegue alcun tipo di ottimizzazione né compressione nella gestione delle informazioni. La sintassi base é: dd [operandi] I principali operandi sono: • comando dd mediante il quale ci proponiamo di salvare l'immagine su un dispositivo con file system di tipo FAT32. La scelta di tale file system é stata effettuata al fine di ottenere una piena compatibilità in scrittura tra Linux e Windows. Sono ben note le limitazioni di questo file system tra cui spicca la grandezza massima di 4GB per un singolo file. Per ovviare a tale inconveniente é possibile utilizzare le opzioni skip e count. Si ipotizzi di vole acquisire un vecchio Hard Disk (/dev/hda) da 30 GB. I comandi da utilizzare andranno distribuiti su la base della seguente formula: dd if=/dev/hdx of=/media /image/imgN.dd count= 4000000 skip=(N-1)* 4000000 bs=n : determina la grandezza del blocco che viene copiato dal programma. La grandezza minima é di 512 byte. count=n : copia solo n blocchi. if= : indica l'input file, ovvero il sorgente da copiare, questi appunto può essere un file reale o un device presente nella directory /dev. of= : indica l'output file, ovvero l'elemento che rappresenta la copia. skip=n : salta n blocchi dall'inizio del file. conv=valore, [valore] : imposta dei filtri di conversione, tra cui i più noti sono: noerror : impone al comando dd di fermarsi nel caso sia incontrato un errore. Specificando tale parametro viene prodotto un log con una riga per ogni errore. sync : utilizzato generalmente con l'opzione noerror, se questi non é presente, in caso di errore il blocco che contiene un errore non sarà inserito nel file di output. Nel caso sia specifico il parametro sync nel file di output sarà inserito un blocco contenente null byte. Quindi nel caso specifico, il primo backup sarà: Ci proponiamo ora di analizzare alcuni esempi di applicazione del con quest'istruzioni, impostiamo di iniziare la copia saltando rispetti- • • • • • • • www.hakin9.org dd if/dev/hda of=/mnt /image/pc01hd01blk01 .dd bs=1024 count =4000000 con quest'istruzione effettuiamo la copia del disco /dev/hda e di riversare la sua copia immagine in /mnt/image/pc01hd01.img. Inoltre si impone di usare blocchi da 1024 byte e di copiarne 4000000, arrivando quindi alla grandezza massima di 4GB. dd if/dev/hda of=/mnt/image /pc01hd01blk02.dd bs=10024 count=4000000 skip=4000000 con quest'istruzione a differenza della precedente, impostiamo di iniziare la copia saltando i primi 4GB. dd if/dev/hda of=/mnt/image /pc01hd01blk03.dd bs=1024 count=4000000 skip=8000000 dd if/dev/hda of=/mnt/image/ pc01hd01blk04.dd bs=1024 count=4000000 skip=12000000 Siti raccomandati Inaugurato nel mese di Gennaio 1998, WinTricks é il piú visitato e tra i piú autorevoli siti italiani sul software, masterizzazione e Sistemi Operativi Microsoft. Il suo forum ha attualmente oltre 17.000 utenti registrati! www.wintricks.it Fornisce quotidianamente agli appassionati di Open Source e Free Software informazioni aggiornate relative alla release dei maggiori progetti nonche alle problematiche inerenti sicurezza del software libero. www.ossblog.it Su manuali.net troverai centinaia di manuali e tutorials, la maggior parte dei quali è completamente gratuita. www.manuali.net Portale dedicato ai programmatori che sviluppano applicativi, componenti e servizi per i sistemi Windows. Il sito offre gratuitamente numerose risorse, tra cui: articoli, script, notizie, progetti open source, recensioni ed un vivace forum. www.devspy.com Uno dei piu interessanti, se non il piú interessante sito dedicato completamente alla sicurezza. Le spie del web hanno le ore contate. Proteggi il tuo computer, scopri come navigare in anonimato. Diventa un fantasma nella rete... www.notrace.it SWZone è un portale dedicato interamente al mondo software, infatti è una vera e propria Software Zone, che offre notizie in tempo reale! Oltre ad essere una validissima risorsa di informazioni offre una varietà di servizi dalle traduzioni al fantastico mondo della sicurezza. www.swzone.it Melamorsicata.it è un sito informativo sul fantastico mondo Apple. Le informazioni trattate riguardano: Mac, rumors, iPod e accessori, software e molto altro. Pieno di notizie e informazioni utili. www.melamorsicata.it Articoli di informatica ed elettronica. Ospita un forum di discussione su sistemi operativi e tecnologie e pubblica un archivio con guide, manuali e software. www.techtown.it Hackertrake è un nuovo sito dedicato alla sicurezza. Ha tutto quello che un portale al giorno d’oggi dovrebbe avere: notizie sempre aggiornate, guide gratuite, un forum per scambiare le proprie esperienze e programmi gratuiti. www.hackertrake.tk Siti raccomandati Se gestisci un sito web interessante e vuoi segnalarlo al progetto Siti Raccomandati, contattaci: [email protected] Difesa vamente i secondi, terzi ed i quarti blocchi da 4GB del file sorgente. E' evidente comunque la complessità applicativa di questo comando eseguito da riga di comando su grandi moli di dati, ad esempio nel caso precedente per avremmo dovuto ripetere l'istruzione per ben 8 volte al fine di acquisire 30 GB di dati. Conclusa l'operazione di copia, ricordiamoci della validazione dell'attività svolta firmando ciscuna immagine con un algoritmo di hashing. :/# md5sum /mnt/image /pc01hd01blk0N.dd > comando dcfldd, e come quest'ultimi possa essere usato per l'acquisizione di un dispositivo in ambito forense. Questo comando é una della varianti del comando dd descritto nel paragrafo precedente. Questo é stato sviluppato dal Department of Defense Computer Forensics Lab (DCFL) si distingue dal classico dd per una serie di funzionalità implementate: • • /mnt/image/pc01hd0 1blk0N.md5 :/# md5sum /dev/hdx >> /mnt/image/pc01hd01 .md5 • Acquisire con dcfldd Per effettuare una copia di un qualsiasi dispositivo, dobbiamo sapere innanzitutto come vengono identificate le periferiche connesse alla nostra postazione di lavoro: ( Listato 1). Come possiamo notare risultano essere collegati un'Hard Disk da 30 GB identificato come • • • /dev/sda le cui partizioni logiche risultano essere identificate come /dev/sda1 Linux /dev/sda2 Esteso /dev/sda5 Linux swap / Solaris Tale dispositivo, lo useremo per memorizzare l'immagine del pendrive nella cartella /mnt/image Il pendrive che ci proponiamo di acquisire viene identificato dal sistema come /dev/sdb Ultimata la fase di identificazione dei dispositivi da acquisire, passiamo a quella dell'acquisizione mediante il 58 hakin9 Nº 1/2008 hashing-on-the.fly: il programma é in grado di verificare i dati in transito tramite un algoritmo di hash; statistiche: dcfldd é in grado sia di effettuare una stima della durata della copia, sia di indicare il tempo trascorso e la percentuale di dati processati; disk wipe: é possibile effettuare un wipe del disco di destinazione sia riempiendolo di zeri sia con un pattern specifico; affidabilità della copia: é possibile verificare immediatamente che la copia sia identica all'originale; copie multiple: é possibile copiare lo stesso file (o device) contemporaneamente su più locazioni, cosi' da parallelizzare copie multiple; divisione dell'immagine: é possibile dividere l'immagine in più segmenti per adattarla a media più piccoli. Da tali caratteristiche si evince che il vantaggio maggiore del programma risiede senza dubbio nel calcolo dell’hash simultaneamente alla creazione della copia eliminando il passaggio aggiuntivo richiesto con l’utilizzo di dd. Non solo, con la funzione hashwindow possiamo impostare un range per il quale calcolare l’hash relativo, oltre ovviamente a quello corrispondente all’immagine totale. L’opzione hashwindow permette di scegliere il tipo di algoritmo da utilizzare, con la versione attuale sono disponibili: MD5 (default), SHA-1, SHA-256, SHA-384 e SHA-512. L’altra opzione rilevante é textpattern, che assieme a pattern permette di inserire una stringa di testo perso- www.hakin9.org nalizzata come input e quindi come output nella fase di cancellazione dei supporti (pattern utilizza uno specificato pattern binario al posto del testo). Vediamo una serie di esempi di acquisizione su la chiave usb da 1GB in /dev/sdb : :/# dcfldd if=/dev/sdb conv=sync ,noerror hashwindow=0 hashlog= /mnt/image/pendrive01.img.md5 of=/mnt/image/pendrive.img 31232 blocks (976Mb) written. 31392+0 records in 31392+0 records out verifichiamo l'effettiva creazione sia del file immagine che del file hash: :/# cd mnt/image :/mnt/image# ls pendrive01.img.md5 pendrive.img Come si vede, nella cartella di destinazione sono stati memorizzati sia l'hash che l'immagine del dispositivo acquisito, il cui montaggio e rispettiva analisi forense esulano dall'obiettivo del presente articolo, mentre banalmente possiamo verificare il codice generato mediante il ben noto editor vi: :/mnt/image# vi pendrive01.img.md5 Total (md5): 215fb7 44372b50b4a622444 8f5c45266 ~ ~ pendrive01.img.md5 1 line, 46 characters Consideriamo ora alcune varianti che avremmo potuto apportare al comando dcfldd. Come precedentemente detto con la funzione hashwindow calcoliamo l’hash dell’immagine parallelamente alla duplicazione ed attraverso hashlog reindirizziamo il risultato in un file. Dall'analisi del comando precedentemente eseguito, si evince che l’attivazione della funzionalità di hashing avviene attraverso l’opzione hashwindow=0 in quanto il para- metro 0 forza l’hashing dell’intera immagine : :/# dcfldd if=/dev/sdb conv=sync,noerror hashwindow=0 hashlog=/ mnt/image/pendrive01.img. md5 of=/mnt/image/pendrive .img Se modifichiamo l’opzione hashwindow =0 in hashwindow=4M , otteniamo in output il calcolo del valore md5 ogni 4MB oltre al normale hash md5 dell’immagine completa: :/# dcfldd if=/dev/sdb conv= sync,noerror hashwindow= 4M hashlog=/mnt/image /pendrive01.img.md5 of= /mnt/image/pendrive.img Se inseriamo il parametro hashalgorithm =sha256 utilizziamo l’algoritmo relativo al posto del predefinito md5 (tener presente che all’aumento di complessità dell’algoritmo corrisponde un aumento del tempo necessario alla procedura di duplicazione): :/# dcfldd if=/dev/sdb conv= sync,noerror hashalgorithm= sha256 hashwindow=4M hashlog=/mnt/image/pendrive01 .img.md5 of=/mnt/image/pendrive. Img Conclusioni L'obiettivo di quello articolo era quello di presente i compiti della computer forensic, questa nuova disciplina di scienza, la cui nascita e strettamente legata allo sviluppo della cyber criminalita. Le minacciein rete che corrono sia gli utenti individuali sia le aziende ,soprattutto per le quali la sicurezza dei propri dati costituisce uno scopo di massima importanza fanno si che la figura di informatico forense diventa sempre piu ricercata sul mercato di lavoro. Ne dimostrano numerosi corsi organizzati per chi vuole occuparsi di indagine informatica. l