...

FLOSS per le indagini digitali

by user

on
Category: Documents
13

views

Report

Comments

Transcript

FLOSS per le indagini digitali
Il pinguino investigatore
FLOSS per la Digital Forensics
Nutria LUG
Davide Gabrini
Digital Forensic Jedi
Pavia, 24 ottobre 2015
Il pinguino investigatore
Chi sono (faccio cose, reverso gente)
Davide ‘Rebus’ Gabrini
Per chi lavoro non è un mistero.
Oltre a ciò:
Perito informatico
Collaboratore UniPV
Docente di sicurezza informatica e
digital forensics per aziende e P.A.
Socio IISFA, DEFTA, Tech&Law fellow
Socio fondatore di Italian Gr.A.P.P.A.
e (se tutto va bene) Nutria LUG
Digital Champion per il Comune di
Travacò Siccomario
Davide Gabrini
Digital Forensic Jedi
Sviluppatore DEFT Linux
Il pinguino investigatore
Digital Forensics: che roba è
La digital forensics è la
disciplina che si occupa della
preservazione,
dell'identificazione, dello studio,
della documentazione dei
computer, o dei sistemi
informativi in generale, al fine di
evidenziare l’esistenza di prove
nello svolgimento dell’attività
investigativa.
(A.Ghirardini: “Digital forensics” – Apogeo)
L’obiettivo è quello di evidenziare dei fatti
pertinenti a un’indagine per sottoporli a giudizio
Davide Gabrini
Digital Forensic Jedi
Il pinguino investigatore
Digital Forensics: che roba NON è
Fantascienza televisiva: CSI, NCIS,
Criminal Minds, RIS ecc. propinano
solitamente boiate
…e al cinema è anche peggio!
Anche gli organi di
informazione (non del
settore) spesso instillano
convinzioni del tutto
infondate…
Davide Gabrini
Digital Forensic Jedi
Il pinguino investigatore
Necessità di una metodologia scientifica
Pervasività delle tecnologie digitali
Improbabile, oggigiorno, una scena del
crimine priva di elementi digitali
Loro implicazione in attività delittuose
L’elemento informatico come fine
L’elemento informatico come mezzo
L’elemento informatico come testimone
Davide Gabrini
Digital Forensic Jedi
Il pinguino investigatore
Pervasive computing
Smart
Smart
Smart
Smart
Smart
…
Davide Gabrini
Digital Forensic Jedi
things
watches
home
cars
clothes
Il pinguino investigatore
Necessità di una metodologia scientifica
Nonostante la pervasività, il reale funzionamento
della tecnologia resta ai più misterioso
Davide Gabrini
Digital Forensic Jedi
Le tracce digitali possono avere una natura
estremamente delicata, che richiede competenze
specifiche per la trattazione
Il pinguino investigatore
Scopi di un’analisi forense
Confermare o escludere un evento
Individuare tracce e informazioni utili
a circostanziarlo
Acquisire e conservare le tracce in
maniera idonea, che garantisca
integrità e non ripudiabilità
Interpretare e correlare le evidenze
acquisite
Riferire con precisione ed efficienza,
in maniera idonea
Davide Gabrini
Digital Forensic Jedi
Il pinguino investigatore
Le fasi canoniche
Identificazione
Acquisizione / Preservazione
Analisi / Valutazione
Presentazione
Davide Gabrini
Digital Forensic Jedi
Il pinguino investigatore
Open Source vs Closed Source
Eterna diatriba tra filosofie opposte
I flame religiosi sono infruttuosi
Non esiste il tool universale,
in grado di fare tutto e meglio
Non esistono i tool automagici
L'ideale sarebbe disporre ogni volta
del tool migliore per il task specifico
Con l'open source è solo un
problema di know-how, col software
commerciale è anche economico…
Davide Gabrini
Digital Forensic Jedi
Il pinguino investigatore
Open Source vs Closed Source
Trasparenza
gli strumenti sono conosciuti, documentabili e
verificabili anche dalla controparte
Disponibilità
non occorre acquistare software specifici (e
costosi) per svolgere o controllare un'attività
Varietà
esistono soluzioni e supporto per una miriade di
situazioni, anche improbabili (ad esempio per i
filesystem)
Adattabilità
i sorgenti sono modificabili per ogni esigenza
specifica (incluso il bug fixing)
Davide Gabrini
Digital Forensic Jedi
Il pinguino investigatore
Open Source vs Closed Source
Flessibilità
il paradigma Unix "tutto è un file" permette di
gestire uniformemente anche situazioni nuove
Modalità read-only
Linux è per natura poco invasivo e ha comunque
supporto nativo per modalità di sola lettura
Loopback
l'uso di loopback device e di device mapper può
rivelarsi molto utile
Aderenza agli standard
spesso i software commerciali usano
implementazioni arbitrarie e formati chiusi
Davide Gabrini
Digital Forensic Jedi
Il pinguino investigatore
Eccellenze dell’open source
Non crediate che l’open source sia il
rifugio dei poveri: è il bazar dei ricercatori!
Ci sono progetti open source che
rappresentano lo stato dell’arte, meglio di
qualsiasi rivale commerciale, ad esempio:
The Sleuth Kit
Volatility e Rekall
Log2timeline
Davide Gabrini
Digital Forensic Jedi
Il pinguino investigatore
Identificazione e Acquisizione
Riconoscimento device e filesystem
Dotazione di default nelle disto Linux
di comandi utili
lshw, fdisk, gparted, file, mount,
md5sum…
Accesso a basso livello all’hardware
/dev/sda, /dev/mem…
Esecuzione copie bit-level
Davide Gabrini
Digital Forensic Jedi
raw=interoperabilità
dd, dd_rescue
dcfldd, dc3dd ecc.
Guymager, DHash, Quick Hash…
Il pinguino investigatore
man dd
I parametri sono tutti nella forma nome=valore (senza spazi) e possono
essere specificati in qualunque ordine.
Tra i parametri principali vi sono:
if=nome_file
Legge i dati dal file nome_file
of=nome_file Scrive i dati sul file nome_file
bs=dimensione Legge e scrive dati in blocchi di dimensione fissa
ibs=dimensione Legge i dati in blocchi delle dimensioni specificate
obs=dimensione Scrive i dati in blocchi delle dimensioni specificate
count=numero_blocchi Copia solo il numero specificato di blocchi
skip=numero_blocchi Scarta il numero di blocchi indicato prima
di iniziare a copiare
seek=numbero_blocchi
Avanza del numero di blocchi indicato
prima di iniziare a scrivere
conv=conversione[,conversione …] Effettua durante la copia le
conversioni elencate. Tra le principali conversioni vi sono:
noerror
sync
Davide Gabrini
Digital Forensic Jedi
Continua anche in presenza di errori
In combinazione con noerror, sostituisce i dati mancanti in input
con degli zeri in output
Il pinguino investigatore
man dc3dd
dc3dd aggiunge funzioni a quelle standard di dd
wipe=nome_file
sovrascrive il device nome_file con zeri
split=dimensione
divide l’output in pezzi di dimensione byte
progress=on
visualizza lo stato di avanzamento della copia
hash=algoritmo
calcola l’hash algoritmo dei dati in input
algoritmo può avere uno o più valori tra md5, sha1, sha256 e sha512
hashconv=before|after indica se l’hash deve essere calcolato
prima o dopo la conversione conv
hashwindow=dimensione
calcola un hash ogni dimensione byte
hashlog=nome_file registra tutti gli hash in nome_file
errlog=nome_file
registra tutti gli errori in nome_file
log=nome_file
usa un solo file di log per errori e hash
vf=nome_file
verifica l’input if con il contenuto di nome_file
verifylog=nome_file
Davide Gabrini
Digital Forensic Jedi
registra l’esito della verifica in nome_file
Il pinguino investigatore
Acquisizione
Esempi di comandi per l'acquisizione:
# dd if=/dev/hda of=hda.dd conv=noerror,sync bs=512
# dd if=/dev/hda conv=noerror,sync bs=512 | split –b 1500m –
hda_image
# dd if=/dev/hda1 skip=0 conv=noerror ibs=512 | gzip -1 | dd
of=hda1.raw.gz seek=0 obs=8192
# dcfldd if=/dev/hda conv=noerror,sync hashwindow=0
hashlog=hda.md5.txt of=hda.dd
# dc3dd if=/dev/sda progress=on hashconv=after hash=md5,sha1
hashwindow=2GB splitformat=000 split=2GB log=logfile.txt bs=512
iflag=direct conv=noerror,sync of=IMAGE
Produce file da 2GB, calcola gli hash MD5 e SHA1 di ogni chunk e del totale, crea un file di log.
# dc3dd if=/dev/sda progress=on hashconv=after hash=md5,sha1
hashwindow=2GB splitformat=000 split=2GB verylog=verfile.txt
bs=512 iflag=direct conv=noerror,sync vfjoin=IMAGE.000
Verifica l’acquisizione dell’esempio precedente.
Davide Gabrini
Digital Forensic Jedi
Server# nc –l –p 31337 > image.dd
Client# dd if=/dev/hda bs=2048 | nc {$ip_server} 3l337
Il pinguino investigatore
Copia logica di file da Linux
Nell’esempio seguente, il contenuto della cartella /var/log di un
disco in esame (montato in /mnt/origine) viene copiato nella
cartella di destinazione /mnt/evidence
Prima di calcolano gli hash originali:
# find /mnt/origine/var/log -type f -exec sha1sum {} + >
/mnt/evidence/var_log.sha1
Poi si copiano i file all’interno di un unico archivio compresso, in
modo da preservarne gli attributi:
# tar -czpvf /var/evidence/var_log.tgz /mnt/origine/var/log
Avere come risultato dell’acquisizione un unico file agevola tutti i
trasferimenti e le manipolazioni successive. Consente p.e. di
calcolare un unico hash da riportare a verbale
# sha1sum /var/evidence/var_log.tgz >
/var/evidence/var_log.tgz.sha1
Davide Gabrini
Digital Forensic Jedi
Infine si possono salvare altre informazioni utili alla
documentazione, come ad esempio il log dei comandi eseguiti:
# history > /mnt/evidence/history.log
Il pinguino investigatore
Acquisizioni per pigri e incapaci :p
Davide Gabrini
Digital Forensic Jedi
Il pinguino investigatore
Concetto di mount
Davide Gabrini
Digital Forensic Jedi
Montare un’immagine forense significa rendere il sistema
operativo dell’analista in grado di accedere alle
informazioni contenute nell’immagine
Linux dispone del comando mount, che permette anche di
specificare la modalità di accesso in sola lettura
Windows non ha un comando analogo, quindi costringe ad
usare programmi di terze parti
In Linux, il contenuto dell’immagine forense viene
montato in corrispondenza di una cartella esistente, come
ad esempio /media/analisi
In Windows, di regola, ad ogni partizione presente
nell’immagine forense deve essere invece associata una
lettera, come ad esempio F:
Quando l’immagine forense è montata, essa è accessibile
come se fosse un device reale da tutti gli applicativi che
girano sul sistema operativo, anche non specifici per analisi
forense
Il pinguino investigatore
man mount
mount è un comando dei sistemi operativi Unix-like che
permette di “agganciare” un file system ad una directory, in modo
da rendere accessibili i file e le directory in esso contenuti. La
directory prende il nome di mountpoint, ed è l’analogo che lettere
usate da Windows per indicare i volumi.
Sintassi:
mount [opzioni] filesystem directory
Il parametro filesystem è una stringa che identifica il device su cui risiede
il file system da montare: generalmente è il nome del dispositivo a blocchi
che lo contiene (ad es. /dev/sda3), ma può anche essere il nome di un
singolo file che contiene l’immagine forense di un filesystem.
Il parametro directory indica il mountpoint, ovvero una directory
preesistente su cui montare il file system (ad es. /mnt/disco_esterno o
/media/cdrom)
Le opzioni consentono, tra l’altro, di specificare il tipo di filesystem e se
esso va montato in sola lettura oppure in lettura e scrittura.
# mount /dev/sda1 /mnt/origine –o ro
(monta una partizione in sola lettura)
Davide Gabrini
Digital Forensic Jedi
# mount /mnt/evidence/disco1_part1.dd
/mnt/analisi –o loop,ro
(monta l’immagine forense di una partizione in sola lettura)
Il pinguino investigatore
Ogni esigenza di analisi è coperta
Analisi dei filesystem
The Sleuth Kit
Autopsy 3
Digital Forensic Framework
Ricerca e indicizzazione
da grep a Recoll
Recupero dati
foremost e scalpel
photorec e testdisk
Bulk_extractor
Davide Gabrini
Digital Forensic Jedi
Il pinguino investigatore
Ogni esigenza di analisi è coperta
Analisi delle fotografie
Ghiro, JPEGsnoop
Mobile forensics
adb, libmobiledevice
iPhone Analyzer, IPBA2
Malware analysis
Cuckoo
Zero Wine
REMnux
Davide Gabrini
Digital Forensic Jedi
OllyDbg
YARA
Il pinguino investigatore
Ogni esigenza di analisi è coperta
Artefatti di sistema e attività utente
RegRipper
Log2timeline, Webscavator
pasco, rifiuti, galleta, vinetto…
eMuleForensic
SkypeXtractor
…
Gestionali e supporto
Mobius Forensic Toolkit
AndLink
Davide Gabrini
Digital Forensic Jedi
Il pinguino investigatore
Ogni esigenza di analisi è coperta
Intercettazioni e analisi del traffico
Formato pcap come standard de facto
tcpdump
Wireshark
tshark
netsniff-ng
bettercap
snort
airodump-ng
Xplico
NetworkMiner
Davide Gabrini
Digital Forensic Jedi
Il pinguino investigatore
Xplico
Davide Gabrini
Digital Forensic Jedi
Il pinguino investigatore
Virtualizzazione
Virtualizzare la workstation di analisi
può dare alcuni vantaggi:
Ambiente ottimizzato e preconfigurato
Facilità di backup, migrazione, ripristino e
duplicazione
Libertà di ridistribuzione!
Remotizzazione dei task di analisi
Distribuzioni in virtual machine:
CERT Forensic Appliance
SANS Investigative Forensic Toolkit (SIFT)
VirtualBox, XEN, Qemu…
Davide Gabrini
Digital Forensic Jedi
Il pinguino investigatore
Distribuzioni forensi
DEFT è una distribuzione live Linux per
scopi forensi (www.deftlinux.net)
Consente di avviare qualsiasi PC in modo
non invasivo e avere una completa
workstation di analisi pronta all’uso
Può anche essere installata
permanentemente su PC di laboratorio o
eseguita come virtual machine
E’ interamente basata su software open
source, quindi è liberamente disponibile e
duplicabile
Davide Gabrini
Digital Forensic Jedi
Il pinguino investigatore
Distribuzioni forensi
DEFT Zero è una mini distribuzione
pensata esclusivamente per le acquisizioni
E' ridotta la minimo, di modo da
consentire tempi di avvio molto rapidi
E’ un sistema a 32 bit, così da poter
garantire il boot anche su macchine
obsolete
Davide Gabrini
Digital Forensic Jedi
Il pinguino investigatore
DART
DART è la collezione di programmi
portabili per live forensics inclusa in DEFT
Oltre 300 programmi per ogni versione di
Windows, Linux e Mac OSX
Il launcher presenta i software categorizzati,
descritti e indicizzati; verifica l’integrità prima di
avviarli; mantiene un log delle operazioni
Ulteriore corposa sezione di programmi CLI
Istruzioni e script per il completamento del
pacchetto con i software non ridistribuibili
Davide Gabrini
Digital Forensic Jedi
Il pinguino investigatore
Beginner’s guide: www.linuxleo.com
The law envorcement and forensic
examiner's introduction tu Linux
Guida per principianti, dal
2007 è il punto di partenza
per esplorare il mondo della
computer forensics attuata
con strumenti open source
Sono a disposizione anche
alcune immagini forensi di
esempio per esercitazioni
didattiche
Davide Gabrini
Digital Forensic Jedi
Il pinguino investigatore
Approfondimenti
Davide Gabrini
Digital Forensic Jedi
Il pinguino investigatore
Teniamoci in contatto…
Davide Rebus Gabrini
e-mail: [email protected]
GPG Public Key: www.tipiloschi.net/rebus.asc
KeyID: 0x176560F7
Queste e altre cazzate su http://www.tipiloschi.net
Davide Gabrini
Digital Forensic Jedi
Fly UP