Atti_2 - Ordine ingegneri della Provincia di Roma

Transcript

Atti_2 - Ordine ingegneri della Provincia di Roma
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)