Università degli Studi di Milano Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Laurea in Informatica ACQUISIZIONE ED ANALISI INVESTIGATIVE E FORENSI DELLE MEMORIE DI DISPOSITIVI EMBEDDED Relatore: Prof. Mattia MONGA Correlatore: Magg. CC Marco MATTIUCCI Laureando: Vincenzo SCOGNAMIGLIO Matricola: 662252 Anno Accademico 2008-2009 EMBEDDED FORENSICS L’aumento dei crimini compiuti per mezzo di un sistema informatico, della diffusione dei dispositivi digitali in grado di conservare tracce attinenti a fatti illeciti, ha fatto nascere l’esigenza dell’analisi di tali dispositivi al fine di estrarne il contenuto da utilizzare in procedimenti giudiziari. La Digital Forensics si occupa dell’analisi del contenuto della memoria studiando l'individuazione, la conservazione, la protezione, l'estrazione e la documentazione del dato informatico estratto da un qualsiasi dispositivo digitale acquisito come fonte di prova da valutare in sede di dibattimento. L’Embedded System Forensics si occupa in particolare di svolgere indagini tecniche su sistemi elettronici dedicati (embedded) ad una specifica applicazione illecita. IL PROBLEMA DELL’ ACQUISIZIONE DEI DATI Nell’ambito della Digital Forensics, le tecniche di acquisizione dei dati, volte alla loro salvaguardia, hanno assunto maggiore rilevanza legale con l’approvazione della Legge 18 marzo 2008, n. 48, che recepisce la Convenzione del Consiglio d'Europa sulla criminalità informatica. Essa apporta significative modifiche al Codice di Procedura Penale in materia di conservazione e non alterazione della fonte di prova informatica: «..….anche in relazione a sistemi informatici o telematici, adottando misure tecniche dirette ad assicurare la conservazione dei dati originali e ad impedirne l’alterazione». Nel caso dell’analisi forense di dispositivi embedded, è possibile eseguire l’acquisizione della memoria attraverso un accertamento tecnico “non ripetibile”, a norma dell’ art. 360 del Codice di Procedura Penale. LA SPERIMENTAZIONE Esistono a tutt’oggi diverse tecniche e metodologie per l'acquisizione e l'analisi delle memorie contenute nei sistemi embedded. Nello specifico sono state prese in analisi le tecniche utilizzate sui dispositivi con sistema operativo Windows CE 6.0 allo scopo di valutarne l'utilizzabilità in contesti investigativi. La sperimentazione è stata condotta su di un dispositivo di navigazione veicolare marca TOMSTAR modello 5006 con sistema operativo Windows CE v. 6.0, processore Centrality Atlas IV 500 MHz, 64MB SDRAM, 64MB Flash ROM. Ne sono state illustrate le problematiche ponendo particolare attenzione, ai fini forensi, all'analisi delle aree di memoria in cui potrebbe essere possibile occultare dei dati, con l'obiettivo di effettuare il loro recupero. SISTEMA OPERATIVO WINDOWS CE Windows CE (Compact Edition) è un sistema operativo sviluppato da Microsoft, a partire dal 1996, per dispositivi portatili (PDA, Palmari, Pocket PC), Smartphone e sistemi embedded. Windows CE 6.0 opera in uno spazio di memoria virtuale di 4 gigabytes. Il Kernel di sistema utilizza i 2 GB superiori della memoria virtuale, mentre il processo utente attivo ne utilizza i 2 GB inferiori, supportando fino a 32.000 processi utente, limitatamente alle risorse di sistema. ARCHITETTURA DELLA MEMORIA I 2 GB superiori dello spazio di indirizzamento sono riservati al sistema. La metà inferiore dello spazio di indirizzamento è divisa in più aree. La maggior parte di quest'area, è definita area di memoria estesa e viene utilizzata per allocare blocchi estesi dello spazio di memoria. ACQUISIZIONE DELLA MEMORIA L’estrazione dei dati da un dispositivo digitale si suddivide in due classi principali: l’acquisizione logica e l’acquisizione fisica. L’acquisizione logica si focalizza sul contenuto visibile a livello del file system, limitandosi ad estrarre file, database, ecc. L’acquisizione fisica, invece, può recuperare tutti i dati contenuti in un dispositivo digitale. Nella maggior parte dei casi, tuttavia, è possibile recuperare solo il contenuto della flash ROM e della RAM, utilizzando o una particolare modalità operativa del dispositivo (es: debugging del PALM OS) o un canale di comunicazione con il sistema operativo (es.: protocollo RAPI). Per ottenere una copia completa della memoria flash possono essere utilizzate tre tecniche: - flasher tool (qui utilizzati); - porte di accesso di test JTAG; - disassemblaggio dei componenti. FLASHER TOOL I “flasher tool” sono destinati a copiare la memoria di alcune famiglie di dispositivi digitali. Essi utilizzano alcune funzionalità delle API per interagire con aree indirizzabili di memoria. Vengono generalmente implementati dai produttori stessi a scopo di test, anche se sono generalmente disponibili anche su siti internet di hacker che li creano allo scopo di modificare le funzionalità o i limiti dei dispositivi. Hanno il vantaggio di copiare il contenuto dei chip di memoria senza doverli smontare dalla mother board. CASO DI STUDIO Il dispositivo in esame è stato connesso via USB ad un PC con sistema operativo Windows 7 Ultimate a 32 bit, tramite il Centro Dispositivi Windows Mobile v. 6.1.6965. Per l’acquisizione sono stati utilizzati tool basati sui protocolli RAPI e ActiveSync. I tool principalmente utilizzati per eseguire la copia della memoria del dispositivo in esame sono pmemdump e pmemmap, della famiglia dei “flasher tool”. Tali tool per poter funzionare necessitano della copia della libreria itsutils.dll all’interno della cartella Windows del dispositivo. Tale copia si effettua mediante l’utilizzo del tool pput. Successivamente si esegue il dump della memoria attraverso il tool pmemdump. ESTRAZIONE DELL’AREA DI MEMORIA CONTENENTE IL SISTEMA OPERATIVO Al fine di poter visualizzare i soli file del sistema operativo di un dispositivo Windows CE si esegue un pmemdump specificando l’offset relativo all’area che contiene il file NK.BIN che rappresenta l’immagine del sistema operativo: 0x80040000-0x81f00000 Il dump ottenuto, in formato nb, è stato successivamente convertito in formato bin attraverso il tool nb2bin.exe. Il tool viewbin.exe fornisce i dati relativi all’indirizzo di inizio e alla lunghezza del blocco, informazioni necessarie per la successiva conversione del file nk.bin in nk.nb0, attraverso il tool cvrtbin.exe. Il tool ha generato un file in formato nb0, necessario al tool dumprom.exe che estrae nella directory specificata tutti i file del sistema operativo Win CE. ANALISI FORENSE - 1 Per qualsiasi tipologia di file è possibile calcolare attraverso algoritmi di digest (come l’MD5, SHA1 e lo SHA256) la sua “impronta digitale”. Nel caso del dump della memoria ROM è possibile generare un “impronta digitale” ma non è possibile confrontare quest’ultima con un impronta di riferimento. Ciò si verifica perchè ogni dump della memoria è diverso l’uno dall’altro in quanto lo stato della memoria varia a seconda dei processi che in quel dato istante sono in esecuzione. E’ possibile, dopo aver estratto i file dal dump della memoria, sottoporli ad analisi forense, attraverso l’applicazione di un algoritmo di digest ed il confronto con una copia autentica. Questo allo scopo di rilevare una eventuale alterazione dei file. ANALISI FORENSE - 2 Allo scopo di rilevare la configurazione del sistema, sono stati analizzati, attraverso un tool di editing, i file di registro, precedentemente estratti dal immagine ottenuta, questi sono stati identificati in: boot.hv default.hv user.hv tali file contengono le seguenti chiavi: [HKEY_CLASSES_ROOT] [HKEY_LOCAL_MACHINE] [HKEY_CURRENT_USER] Poiché la struttura dati dei file di registro è documentata è possibile verificare quali parti sono state modificate rispetto ad un file di registro non alterato. OCCULTAMENTO DI DATI IN UN DISPOSITIVO WINCE La ROM di un dispositivo WinCE ha una sezione allocata al boot loader, mentre il resto della memoria è dedicata al kernel. L’immagine della ROM è composta da una sequenza di blocchi di memoria contigui, alcuni dei quali vuoti, dove è possibile occultare dei dati, utilizzando due tipi di tecniche principali: - utilizzo di flasher tool rielaborati con tecniche di reverse engineering; - utilizzo di una memory card precaricata con una immagine della ROM con la quale eseguire un soft-reset del dispositivo. Inoltre le modalità standard di allocazione delle pagine nella memoria principale possono essere utilizzate anche per occultare dati nello slack space della ROM. Per recuperare dati nascosti in spazi non allocati si utilizzano tecniche di data carving offerte da diversi tool, che offrono specifiche tecniche per ogni diverso dispositivo. CONCLUSIONI L’analisi dei dispositivi embedded si è rivelata particolarmente problematica a causa di diversi fattori: Dispositivi eterogenei per i quali il costruttore personalizza il sistema operativo, pertanto non si hanno informazioni standard sui dispositivi; A causa di ciò non esistono applicazioni specifiche per la loro analisi ma tool generici non certificati; Invasività delle tecniche che non permettono l’acquisizione della memoria senza alterarne il contenuto. Nel caso in cui sorga il sospetto che siano state utilizzate tecniche di antiforensics per nascondere e/o eliminare informazioni di natura illecita all’interno del dispositivo in esame, si ricorre a tecniche di analisi più sofisticate (e costose), per esempio tramite il disassemblaggio dei chip di memoria flash, per la loro analisi successiva in un contesto controllato. Fine Un sentito ringraziamento a tutti coloro che mi sono stati vicino e che mi hanno sostenuto ed incoraggiato in questi anni di studio, e in particolar modo: ai docenti del Dipartimento di Informatica, al prof. Mattia MONGA ed ai suoi valentissimi ricercatori che, con immensa pazienza, mi hanno guidato in questo periodo di preparazione della mia Tesi; ai miei compagni di studio con cui ho potuto condividere questa splendida avventura; al Maggiore dei Carabinieri Marco MATTIUCCI, senza il cui prezioso contributo non mi sarebbe stato possibile realizzare questa tesi; ed infine ma non in ordine di importanza a mia moglie Giovanna ed alle mie figlie Giulia ed Alice che mi hanno sostenuto, incoraggiato e sopportato per tutto il percorso di studi svolto.