Ordine degli Ingegneri della Provincia di Roma Commissione Informatica e Telecomunicazioni Maurizio La Porta Paolo Reale Ordine degli Ingegneri della Provincia di Roma Commissione Informatica e Telecomunicazioni Agenda Seminari sull’Informatica Forense – “La Prova nel Computer” – La Porta/Reale – 20.09.2010 2 Ordine degli Ingegneri della Provincia di Roma Commissione Informatica e Telecomunicazioni Agenda Individuare le fonti di prova Preservazione / Custodia Acquisizione Lettura Ordine degli Ingegneri della Provincia di Roma Commissione Informatica e Telecomunicazioni Lettura La struttura dei dischi • Semplificando, un hard disk è una pila di piatti (Platters) ciascuno dei quali contiene un certo numero di Tracce a loro volta suddivise in Settori contenenti un numero fisso di byte (512 – 4K) • I Settori sono a loro volta raggruppati in Cluster, che, nel filesystem, corrisponde all’unità minima di allocazione di spazio disco ad un file • La dimensione di un Cluster è decisa in sede di formattazione (ed è un multiplo della dimensione dei Settori!) • Per i nostri fini, un disco è una collezione ordinata e sequenziale di Cluster (A) Traccia “A” (B) Settore generico (C) Settore della Traccia “A” (D) Cluster Ordine degli Ingegneri della Provincia di Roma Commissione Informatica e Telecomunicazioni Lettura Le partizioni I dischi normalmente contengono partizioni Le partizione sono blocchi sequenziali di cluster normalmente allocati ad un filesystem: FAT16, FAT32, NTFS, EXT1, EXT2, HFS, … Alcune partizioni possono essere usate come Swap Space oppure per accesso diretto come RawData (database) Il riconoscimento delle partizioni avviene in automatico Nel caso di partizioni corrotte o cancellate può essere necessario tentare di ricostruirle manualmente Normalmente i primi settori di un disco contengono, insieme ad altre informazioni, la Partition Table che contiene l’indicazione dei cluster di inizio e la dimensione delle varie partizioni IBM PC: Master Boot Record, Guid Partition Table Mac : Apple Partition Map, Guid Partition Table Ordine degli Ingegneri della Provincia di Roma Commissione Informatica e Telecomunicazioni Lettura RAID e Multiple Disk Volume Le partizioni possono essere distribuite su più dischi fisici La tecnologia RAID consente di utilizzare più dischi in modo da ottenere ridondanza e miglioramenti nelle performance Esistono diversi Livelli di RAID. In quasi tutti i dati sono distribuiti sui diversi dischi fisici e la loro ricostruzione richiede la disponibilità di tutti i dischi, nel loro ordine I Multiple Disk Volume sono Volumi Logici che risiedono fisicamente su più dischi La lettura di RAID e Multiple Disk Volume è molto complicata e normalmente richiede di “travasare” i singoli Volumi logici in un singolo disco fisico o partizione Esempio di Multiple Disk Volumes Ordine degli Ingegneri della Provincia di Roma Commissione Informatica e Telecomunicazioni Lettura Il filesystem I file system servono per consentire agli utenti di memorizzare i propri dati in una gerarchia di file e directory. Un file system è composto da dati utente e dati di sistema che sono organizzati in maniera tale che un sistema operativo sa dove andarli a trovare. L’analisi dei file system prende in esame i dati in un Volume (o partizione) e tenta di interpretarli come un file system I risultati che si possono ottenere da tale analisi sono ad esempio: l’elenco dei file in una directory • gli istanti di ultimo accesso / creazione di un file • il recupero di file cancellati • l’esame del contenuto di uno o più settori • Ordine degli Ingegneri della Provincia di Roma Commissione Informatica e Telecomunicazioni Lettura Il filesystem: filesystem: le strutture dati e i Metadati (1) Un file system contiene memorizzate: Master File Table di un FS NTFS • L’indicazione della dimensione dei cluster • L’indicazione del cluster cui inizia la root • L’elenco dei cluster non allocati •L’indice di tutti i file, con l’indicazione per ciascuno di essi: • dei relativi attributi • • • • nome, grant, security, …. delle sequenze di cluster allocati al file • Informazioni di data/ora di accesso, modifica, creazione, … • • MFT è un file la cui prima entry è l’MFT • I file possono essere frammentati Ordine degli Ingegneri della Provincia di Roma Commissione Informatica e Telecomunicazioni Lettura Il filesystem: filesystem: le strutture dati e i Metadati (2) File Name MFT Record $Mft 0 Contains one base file record for each file and folder on an NTFS volume. If the allocation information for a file or folder is too large to fit within a single record, other file records are allocated as well. $MftMirr 1 Guarantees access to the MFT in case of a single-sector failure. It is a duplicate image of the first four records of the MFT. • Quando le strutture dati di un $LogFile 2 filesystem risultano danneggiate, la conoscenza delle caratteristiche del filesystem stesso può consentire di tentare il recupero di (parte) delle informazioni Contains information used by NTFS for faster recoverability. The log file is used by Windows Server 2003 to restore metadata consistency to NTFS after a system failure. The size of the log file depends on the size of the volume, but you can increase the size of the log file by using the Chkdsk command. $Volume 3 Contains information about the volume, such as the volume label and the volume version. $AttrDef 4 Lists attribute names, numbers, and descriptions. . 5 The root folder. $Bitmap 6 Represents the volume by showing free and unused clusters. $Boot 7 Includes the BPB used to mount the volume and additional bootstrap loader code used if the volume is bootable. $BadClus 8 Contains bad clusters for a volume. $Secure 9 Contains unique security descriptors for all files within a volume. $Upcase 10 Converts lowercase characters to matching Unicode uppercase characters. $Extend 11 Used for various optional extensions such as quotas, reparse point data, and object identifiers. • E’ possibile accedere alle strutture dati di singole Entry per acquisire informazioni normalmente non disponibili (ad. es. per file cancellati) • Inoltre è possibile andare a leggere quei settori normalmente non accessibili (slack space, alternate data stream) Purpose of the File Ordine degli Ingegneri della Provincia di Roma Commissione Informatica e Telecomunicazioni Lettura Metadati: fidatevi ma non troppo • Non prendete le informazioni che leggete per oro colato •NTFS mantiene in due diversi punti l’informazione sul Last Access Time : Nella dir entry del file Negli attributi (standard information, Filename Short, Filename Long) del file Le due informazioni non sono aggiornate in tempo reale e non lo sono sempre simultaneamente La lettura del file aperto mediante notepad non aggiorna il last access time (!!!!) Ordine degli Ingegneri della Provincia di Roma Commissione Informatica e Telecomunicazioni Lettura Il carving dei file La maggior parte dei tool di informatica forense consente il carving dei file, ovvero Recupero di file cancellati: possibile quando la entry del file ad es nell’MFT viene invalidata (resa disponibile) ma non riutilizzata ed i cluster del file non sono stati riallocati Riconoscimento di file all’interno di cluster non allocati (Parti di) file possono essere recuperati da porzioni di cluster contigue quando vengono riconosciuti determinati pattern caratteristici di specifici tipi di file http://www.cnwrecovery.com/html/data_carving.html Ordine degli Ingegneri della Provincia di Roma Commissione Informatica e Telecomunicazioni Lettura Il carving delle strutture dati • Quando non è possibile ricostruire i file cancellati perché le entry del file system sono state sovrascritte è possibile tentare il recupero dei metadati contenuti all’interno dei file stessi • Ad esempio i file di Microsoft Office contengono una struttura, denominata SummaryInfo che contiene metadati interessanti per l’analisi forense enum WordSummaryInfoPropertyIdentifier : long { GKPIDSI_CODEPAGE , // VT_I2 GKPIDSI_TITLE , // VT_STRING GKPIDSI_SUBJECT , // VT_STRING GKPIDSI_AUTHOR , // VT_STRING GKPIDSI_KEYWORDS , // VT_STRING GKPIDSI_COMMENTS , // VT_STRING GKPIDSI_TEMPLATE , // VT_STRING GKPIDSI_LASTAUTHOR , // VT_STRING GKPIDSI_REVNUMBER , // VT_STRING GKPIDSI_EDITTIME , // VT_FILETIME GKPIDSI_LASTPRINTED , // VT_FILETIME GKPIDSI_CREATE_DTM , // VT_FILETIME GKPIDSI_LASTSAVE_DTM, // VT_FILETIME GKPIDSI_PAGECOUNT , // VT_I4 GKPIDSI_WORDCOUNT , // VT_I5 GKPIDSI_CHARCOUNT , // VT_I6 GKPIDSI_THUMBNAIL , // VT_THUMBNAIL GKPIDSI_APPNAME , // VT_STRING GKPIDSI_DOC_SECURITY // VT_I4 }; • Altre strutture dati interessanti che possono essere ricostruite mediante carving sono quelle contenute nei file Thumbs.db Ordine degli Ingegneri della Provincia di Roma Commissione Informatica e Telecomunicazioni Lettura Il carving delle strutture dati (2) •Alcune strutture dati interessanti contenenti metadati hanno una struttura variabile ma che risponde a determinate regole che danno luogo a pattern riconoscibili • Ricercando sequenzialmente in typedef struct { unsigned short ByteOrder; // deve essere uguale a FFFE short Version; // uguale a 0 oppure 1 SysIdStruct SystemIdentifier; // (application specific) GUID CLSID; // application specific, NULL for Word unsigned long NumPropertySets; // = 2 solo per il DocInformationStream GUID FMTID0; // 16 Byte, GUID del Property Set unsigned long Offset0; //offset in bytes from the beginning of this //PropertySetStream structure to // the beginning of the field PropertySet 0. GUID FMTID1; // GUID delle FMTID_UserDefinedProperties unsigned long Offset1; // If NumPropertySets = 2, offset in bytes from // the beginning of this PropertySetStream // structure to the beginning of //the field PropertySet 1. //PropertySetPacket PropertySet0; // PropertySet packet. //PropertySetPacket PropertySet1; // If NumPropertySets = 2, otherwise absent. } PropertySetStream ; tutti i cluster del disco tali pattern è possibile identificare i settori del disco candidati a contenere tali strutture dati e quindi tentare di leggere le informazioni ivi contenute • Tali strutture dati occupano poche centinaia di byte e quindi sono più facilmente reperibili nello slack space dei file che le contenevano, una volta che questi sono stati cancellati Ordine degli Ingegneri della Provincia di Roma Commissione Informatica e Telecomunicazioni Il computer come fonte di prova L’analisi del computer può avere finalità e modalità differenti in funzione del ‘ruolo’ assunto dal computer stesso. azione ruolo esempi parte “attiva” dell’azione criminale Strumento Intrusione nelle reti di computer, diffusione dati confidenziali obiettivo di atti criminali Oggetto alterazione o distruzione di contenuti, spionaggio contenitore delle prove Soggetto Pirateria software, pedopornografia Ordine degli Ingegneri della Provincia di Roma Commissione Informatica e Telecomunicazioni L’analisi forense dei sistemi digitali L'obiettivo è di ricostruire le attivitá che hanno determinato lo stato del computer per individuare elementi di prova che concorrano a dimostrare o negare dei fatti. A tal fine è necessario interpretare e correlare i dati memorizzati su un sistema digitale (artefatti) per ricostruire le azioni effettuate mediante quel sistema (o quell’applicativo, o dispositivo). Ordine degli Ingegneri della Provincia di Roma Commissione Informatica e Telecomunicazioni Gli artefatti Con il termine artefatto vengono indicati quei disturbi dei segnali digitali, analogici o delle immagini, dovuti alla tecnica di acquisizione, di codifica o a diversi fenomeni interferenti che alterino il reale risultato finale del processo. Il termine viene spesso utilizzato anche in campo chimico analitico, e nelle procedure biomediche per indicare diverse possibili interferenze, in molti differenti campi di analisi.(*) In generale, un artefatto è qualsiasi fattore introdotto nella rappresentazione che non è presente anche nell'oggetto rappresentato. Per 'artefatti' si intendono le tracce digitali (file, dati, o altro) lasciate sul computer dal normale funzionamento del sistema operativo, piuttosto che da un applicativo o altro. La presenza di queste tracce può consentire di comprendere il meccanismo informatico che le ha generate e quindi a rilevare attività o contenuti legati all'uso del PC. (*) fonte: wikipedia Ordine degli Ingegneri della Provincia di Roma Commissione Informatica e Telecomunicazioni Digital Evidence Sistema Operativo • • • • Registro di sistema Registro eventi Cestino Log… Applicativi di Sistema • Backup • Antivirus • Cookies… Applicativi Utente • File temporanei • Instant messaging • Cronologia… File System • File activity timeline • Date e orari di creazione, accesso, etc • Metadati… Prova Digitale (digital evidence) Ordine degli Ingegneri della Provincia di Roma Commissione Informatica e Telecomunicazioni Artefatti del sistema (win) Artefatto Data/Ora di sistema (fuso orario, ora solare/legale) Dati presenti nel Cestino (file cancellati) File recenti e file link Cartelle dei cookies e della cronologia Esempi Riferimento temporale Verifica informazioni cancellate Utilizzo di applicativi e apertura di documenti e file Navigazioni internet, cronologia dei file utilizzati Internet Temporary files Contenuti delle navigazioni in rete Swap e hibernation files Ricerca di contenuti non più disponibili come file Eventi di sistema Registro di Sistema Punti di ripristino Informazioni sull’utilizzo del PC: accesso, utilizzo del modem, etc. Periferiche USB collegate, configurazioni, etc Cronologia di alcune modifiche del sistema Ordine degli Ingegneri della Provincia di Roma Commissione Informatica e Telecomunicazioni Gli eventi di sistema I registri eventi di windows sono particolari file in cui vengono registrati gli eventi significativi che si verificano nel computer, ad esempio l'accesso di un utente al computer o il verificarsi di un errore di un programma. Nei registri eventi vengono registrate informazioni dettagliate che consentono agli utenti esperti di risolvere i problemi che si verificano con Windows e altri programmi. Le informazioni vengono registrate in diversi registri. (*) Eventi dell'applicazione o del programma. Gli eventi vengono classificati come errore, avviso o informazioni, a seconda della gravità dell'evento. Un errore rappresenta un problema significativo, ad esempio la perdita di dati. Un avviso rappresenta un evento non necessariamente significativo, ma che potrebbe indicare un possibile problema futuro. Un evento informativo descrive la completa esecuzione di un programma, driver o servizio. Eventi relativi alla protezione. Questi eventi, detti eventi di controllo, vengono descritti come completati o non riusciti, a seconda dell'evento, ad esempio se il tentativo di un utente di accedere a Windows è stato completato. Eventi di configurazione. Per i computer che vengono configurati come controller di dominio, verranno visualizzati registri aggiuntivi. Eventi di sistema. Gli eventi di sistema vengono registrati da Windows e dai servizi di sistema di Windows e vengono classificati come errore, avviso o informazioni. Eventi inoltrati. Questi eventi vengono inoltrati a questo registro da altri computer. (*) fonte: microsoft.com Ordine degli Ingegneri della Provincia di Roma Commissione Informatica e Telecomunicazioni Artefatti del registro di sistema Il registro di sistema di windows é un database gerarchico costituito da piú files con al suo interno le informazioni, impostazioni e la configurazione del sistema operativo, dei software installati e dell'hardware. (*) Tra queste informazioni troviamo, a titolo esemplificativo e non esaustivo: dati di installazione di windows file/documenti recenti aperti con gli applicativi installati (paint, media player, etc) URL digitate software installato utilizzo della rete e indirizzi IP periferiche USB inserite/installate time settings periferiche IDE installate dati relativi alle finestre aperte e relativo contenuto moltissime chiavi di registro hanno associato un timestamp relativo all’ultima operazione (*) fonte: zonapc.it Ordine degli Ingegneri della Provincia di Roma Commissione Informatica e Telecomunicazioni Artefatti del file system Artefatto Esempi Informazioni sul file system file system meta files Creazione, formattazione, deframmentazione, etc MFT nel file system NTFS File tables / File system index Timestamps e dimensione del file Indice dei file cancellati Possibilità di recupero integrale dei file Descrittori per l’identificazione delle Informazioni di sicurezza Proprietà dei file, diritti di accesso e utilizzo File activity timeline RAM slack, file slack Cronologia delle operazioni effettuate sui files Tracce di file cancellati Ordine degli Ingegneri della Provincia di Roma Commissione Informatica e Telecomunicazioni Hard Disk e Cluster È l’unità logica di memorizzazione dei file utilizzata dal filesystem di un sistema operativo. Un cluster contiene un certo numero (potenza di 2) di settori. I settori sono l’unità fisica di memorizzazione dei file su un hard disk. La dimensione di un cluster può essere variabile. Un cluster può contenere uno ed un solo file, questo vuol dire che se il file è più piccolo della dimensione del cluster, lo spazio fisico allocato per quel file corrisponde alla dimensione del cluster. Può essere: a) vuoto (contiene dati inizializzati o non prodotti da operazioni di file system) b) allocato (contiene dati relativi ad un file attivo per il file system); c) Non allocato (contiene interamente dati relativi ad un file non attivo cioè cancellato per il file system); Ordine degli Ingegneri della Provincia di Roma Commissione Informatica e Telecomunicazioni Cluster non allocati può presentare: a) settori completamente allocati al file attivo; b) settori in parte allocati al file attivo e in parte no (la parte non allocata si chiama RAM SLACK) c) settori non allocati al file attivo (FILESLACK). Sia il RAM SLACK che il FILE SLACK possono contenere dati relativi ad un file non attivo cioè cancellato per il file system o inizializzati cioè non prodotti da operazioni di file system Ordine degli Ingegneri della Provincia di Roma Commissione Informatica e Telecomunicazioni File activity timeline I file hanno almeno 3 informazioni temporali associate. Ognuna di queste dipende dal tipo di file system in uso. Per esempio, su un file system di tipo FAT (File Allocation Table) sono presenti queste informazioni: Written: Data/ora dell’ultima scrittura del file. E’ la sola informazione richiesta nel file system FAT. Accessed: L’ultima volta in cui il file è stato acceduto. E’ un valore opzionale e alcuni sistemi operativi possono non aggiornarlo. Created: Quando il file è stato creato. Anche questo è opzionale, in quanto alcuni sistemi operativi possono non aggiornarlo. Nel file system NTFS sono 4. La file activity timeline è la rappresentazione ordinata temporamente di tutto il contenuto del filesystem, tenendo conto di tutte le informazioni temporali disponibili per ogni file. Ordine degli Ingegneri della Provincia di Roma Commissione Informatica e Telecomunicazioni Artefatti degli applicativi Applicativo Esempi di artefatti Internet Browser Instant Messaging Office Peer to peer mail Diversi applicativi Virtualizzazione indicizzazione Siti visitati, cache, riempimento automatico dei campi, password memorizzate, etc. Log dei messaggi inviati/ricevuti, dei file scambiati etc, utenti conosciuti… File temporanei, versioning, metadati, timestamps Ricerche effettuate, file scaricati, file condivisi, utenti connessi, etc. Header, ricevute, allegati Presenza di log di attività, di file di appoggio, etc. Presenza di macchine virtuali, disco della macchina virtuale Metadati di Google desktop Ordine degli Ingegneri della Provincia di Roma Commissione Informatica e Telecomunicazioni Artefatti di Skype Skype usa diversi file per memorizzare i dati. Questi file principalmente contengono informazioni storiche, la cronologia delle chiamate, dei trasferimenti di file, delle sessioni di chat etc. L’utilizzo di questi log file consente di acquisire informazioni significative sulle comunicazioni che sono state effettuate tramite questo applicativo. Messages: • Sequence Number • Message content • Chat ID • Timestamp • User name (sender) • Display name (sender) User profiles: • Username • Display name • Language • Province / city • Country code • Phone number • Office number • Mobile number • Thumbnail image File transfers: • Sequence Number • User name (remote end) • Display name (remote end) • Full saved file path • Filename • File size • Time stamp Calls: • Sequence Number • Time stamp • Username (remote end) • Screen name (remote end) • Duration of call (seconds) • PSTN number (when using Skypeln or SkypeOut) • PSTN status (when using Skypeln or SkypeOut)