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