SlideShare una empresa de Scribd logo
1 de 30
Descargar para leer sin conexión
DEFT Conference 2012
SQLite
forensics
Il database Free piu' diffuso al mondo
1.0.2
DEFT Conference 2012
Argomenti trattati
Presentazione SQLite
Utilizzo di SQLite
•Introduzione
•Interfaccia client
•SQL
SQLite forensics
•Carving
•Principali applicazioni
•SQL: esempi pratici
DEFT Conference 2012
Obiettivi
Fornire una conoscenza di base su SQLite dal
punto di vista architetturale e funzionale
Presentare le principali caratteristiche dell'SQL
di SQLite
Fornire una panoramica sulle basi dati SQLite
usate dai piu' comuni programmi (eg. Skype,
Firefox, Chrome, ...) e di come analizzarle in
ambito forensics
DEFT Conference 2012
Argomenti non trattati
Internals
•Data types
•Strutture dati interne (file format, WAL, ...)
•Versioni ed evoluzione
Programmazione di applicazioni
•Interfacce di programmazione
•Sviluppo su Android, iPhone, Windows Phone
•Un esempio completo in C language
DEFT Conference 2012
SQLite
SQLite e' DBMS relazionale piu' installato al
mondo. SQLite e' un software di pubblico
dominio. I suoi principali punti di forza sono:
•Free! Gratis e distribuito con una licenza molto, molto
libera (public domain)
•Falcilmente integrabile nelle applicazioni
•Robustezza ed integrita' dei dati
•Presente praticamente su ogni smartphone, su ogni MAC,
sulla maggioranza dei PC, disponibile su tutti i sistemi
operativi, utilizzato da centinaia di programmi, ...
•Un ottimo e completo SQL utilizzabile direttamente e con i
piu' diffusi linguaggi di programmazione
DEFT Conference 2012
Diffusione
SQLite e' utilizzato da:
– Tutti i cellulari Android ed iPhone
– Programmi diffusissimi (stima > 70% PC):
• Firefox, Chrome, Skype, Thunderbird, Dropbox, ...
– I piu' recenti cellulari Symbian
– Tutti i sistemi MAC OS X e Solaris 10
– Molti lettori MP3
– ...
Si stima un utilizzo superiore a 500.000.000 installazioni
DEFT Conference 2012
Architettura
L'architettura di SQLite e' semplice. Un database
SQLite e' costituito da un solo fle. Non c'e' nessun
programma, thread o processo. Per accedere a SQLite
un'applicazione deve semplicemente utilizzare la
libreria disponibile come software di pubblico
dominio.
Il formato del fle e' defnito in modo preciso dalle
specifche ed inizia con stringa: “SQLite format 30”. Il
formato e' binary compatible su TUTTE le piattaforme.
Sono disponibili diversi programmi per accedere in
modo semplice ai dati.
DEFT Conference 2012
SQL
SQLite supporta lo standard ANSI SQL92 in modo praticamente
completo (sono pochissimi sono i costrutti non implementati).
SQLite e' semplice da utilizzare da linea di comando:
$ sqlite3 my.db
SELECT dept.location, count(*), sum(salary)
from emp, dept
where emp.deptno=dept.deptno
group by dept.location
order by 3 desc
limit 10;
^D
DEFT Conference 2012
GUI
DEFT Conference 2012
GUI
DEFT Conference 2012
scalpel.conf
#-------------------------------------------------------------------
# SQLITE DATABASE FILES
#-------------------------------------------------------------------
#
# SQLite
sqlitedb y 20000000000 x53x51x4Cx69x74x65x20x66x6Fx72x6Dx61x74x20x33
#
#
#
#-------------------------------------------------------------------
# SQLITE DATABASE FILES
#-------------------------------------------------------------------
#
# SQLite
sqlitedb y 20000000000 x53x51x4Cx69x74x65x20x66x6Fx72x6Dx61x74x20x33
#
#
#
Il carving di un DB SQLite e' molto semplice!
I primi 16 byte contengono la scritta:
SQLite format3
DEFT Conference 2012
SQL (DDL)
I comandi di DDL sono SQL Standard (eg. create table)
SQLite utilizza 5 differenti Storage Class:
– NULL, INTEGER, REAL, TEXT, BLOB
Non c'e' un formato per le date che vengono memorizzate come
testo (eg. ISO8601: YYYY-MM-DD HH:MM:SS.SSS) o come
numerico (eg. secondi da Epoch)
Sono presenti gli indici (B-tree)
Sono presenti le viste (not updatable)
E' disponibile una (una!) tabella di data dictionary: sqlite_master
DEFT Conference 2012
SQL (DML)
DML: Data Manipulation Language
sqlite> select date('now'), sqlite_version(), sqlite_source_id(),
sqlite_compileoption_get(0), sqlite_compileoption_get(1);
2012-02-07|3.7.6|2011-04-12 01:58:40
f9d43fa363d54beab6f45db005abac0a7c0c47a7|ENABLE_COLUMN_METADATA|
ENABLE_FTS3
SQLite=# select * from sqlite_master;
...
SQLite=# insert ... ; update ... ; delete ...;
DEFT Conference 2012
SQL (funzioni)
SQLiteQL ha un insieme molto ampio di
operatori, funzioni e clausole:
Operatori:
AND, OR, NOT, BETWEEN ,IN, IS, =, >=, ...
Funzioni su stringhe, date:
LENGTH, UPPER, LOWER, QUOTE,... RANDOM, ROUND, ... DATE,
STRFTIME, ...
Funzioni di gruppo:
COUNT(), SUM(), AVG(), HAVING, ...
DEFT Conference 2012
SQLite nei programmi
DEFT Conference 2012
Firefox
Firefox utilizza una dozzina di database SQLite. Il piu'
interessante e' il database places.sqlite che contiene una
dozzina di tabelle tra cui il log delle URL visitate
Su Windows XP: C:Documents and Settings%userApplication
DataMozillaFirefoxProfiles%profile.default - Windows Vista:
C:Users%userAppDataRoamingMozillaFirefoxProfiles
%profile.default
DEFT Conference 2012
Firefox
Ultimi siti visitati con Firefox
SELECT datetime(moz_historyvisits.visit_date/1000000,'unixepoch') as data,
moz_places.url
FROM moz_places, moz_historyvisits
WHERE moz_places.id = moz_historyvisits.place_id
ORDER BY 1 desc
LIMIT 20 OFFSET 0
Siti piu' visitati con Firefox
SELECT moz_places.url, visit_count
FROM moz_places
ORDER BY visit_count desc
LIMIT 20
Ultimi siti visitati con Firefox
SELECT datetime(moz_historyvisits.visit_date/1000000,'unixepoch') as data,
moz_places.url
FROM moz_places, moz_historyvisits
WHERE moz_places.id = moz_historyvisits.place_id
ORDER BY 1 desc
LIMIT 20 OFFSET 0
Siti piu' visitati con Firefox
SELECT moz_places.url, visit_count
FROM moz_places
ORDER BY visit_count desc
LIMIT 20
DEFT Conference 2012
Chrome
Chrome utilizza diversi database SQLite tra cui il piu' significativo
e' History che contiene gli accessi alle pagine web. Le tabelle
piu' interessanti sono ulrs, visits e downloads.
Su Windows XP: C:Documents and Settings%userApplication
DataGoogleChromedefault - Windows Vista: C:Users
%userAppDataLocalGoogleChromedefault ...
DEFT Conference 2012
Chrome
Siti visitati con Chrome
SELECT datetime((visit_time-11644473600000000)/1000000,'unixepoch', 'localtime')
as data,
urls.url, urls.title as titolo
FROM urls, visits
WHERE urls.id = visits.url
ORDER BY 1 desc
LIMIT 20 OFFSET 0
Siti visitati con Chrome
SELECT datetime((visit_time-11644473600000000)/1000000,'unixepoch', 'localtime')
as data,
urls.url, urls.title as titolo
FROM urls, visits
WHERE urls.id = visits.url
ORDER BY 1 desc
LIMIT 20 OFFSET 0
DEFT Conference 2012
Safari
Safari e' il diffuso browser sviluppato Apple. Il file di database e'
Cache.db e contiene 5 tabelle.
Su Mac OS X: /Users/%user/Library/Caches/com.apple.Safari.
DEFT Conference 2012
Safari
Siti visitati con Safari
SELECT cfurl_cache_response.time_stamp as data,
cfurl_cache_response.request_key as url
FROM cfurl_cache_response
ORDER BY 1 desc
LIMIT 20 OFFSET 0
Pagine richieste con Safari
SELECT cfurl_cache_response.time_stamp as data,
cfurl_cache_response.request_key as url,
cfurl_cache_blob_data.receiver_data as contenuto
FROM cfurl_cache_blob_data, cfurl_cache_response
WHERE cfurl_cache_blob_data.entry_ID=cfurl_cache_response.entry_ID
ORDER BY 1 desc
LIMIT 20 OFFSET 0
Siti visitati con Safari
SELECT cfurl_cache_response.time_stamp as data,
cfurl_cache_response.request_key as url
FROM cfurl_cache_response
ORDER BY 1 desc
LIMIT 20 OFFSET 0
Pagine richieste con Safari
SELECT cfurl_cache_response.time_stamp as data,
cfurl_cache_response.request_key as url,
cfurl_cache_blob_data.receiver_data as contenuto
FROM cfurl_cache_blob_data, cfurl_cache_response
WHERE cfurl_cache_blob_data.entry_ID=cfurl_cache_response.entry_ID
ORDER BY 1 desc
LIMIT 20 OFFSET 0
DEFT Conference 2012
Skype
Skype mantiene i propri dati sul database file main.db che
contiene una decina di tabelle.
Su MS Windows il database di Skype si trova in C:Documents
and Settings%profileApplication DataSkype%skype_user,
con l'eccezione di Vista and 2008 dove il file e' in C:Documents
and Settings%profileAppDataRoamingSkype%skype_user.
Su Mac OS X: /Users/%user/Library/Application
Support/Skype/%skype_user.
DEFT Conference 2012
Skype
Chiamate skype-to-phone (tutte) e skype-to-skype (solo se OK)
SELECT identity as chiamante, guid, call_duration/60 as durata_minuti,
strftime('%Y-%m-%d %H:%M:%S', start_timestamp,'unixepoch','localtime')
as inizio_chiamata
FROM CallMembers
ORDER BY id
Chiamate skype-to-skype (tutte)
SELECT host_identity as chiamante, current_video_audience as destinazione,
duration/60 as durata_minuti,
strftime('%Y-%m-%d %H:%M:%S', begin_timestamp,'unixepoch','localtime')
as inizio_chiamata
FROM Calls
ORDER BY id
Chiamate skype-to-phone (tutte) e skype-to-skype (solo se OK)
SELECT identity as chiamante, guid, call_duration/60 as durata_minuti,
strftime('%Y-%m-%d %H:%M:%S', start_timestamp,'unixepoch','localtime')
as inizio_chiamata
FROM CallMembers
ORDER BY id
Chiamate skype-to-skype (tutte)
SELECT host_identity as chiamante, current_video_audience as destinazione,
duration/60 as durata_minuti,
strftime('%Y-%m-%d %H:%M:%S', begin_timestamp,'unixepoch','localtime')
as inizio_chiamata
FROM Calls
ORDER BY id
DEFT Conference 2012
Skype
Chat Skype
SELECT author as chiamante, chatname, body_xml as messaggio,
strftime('%Y-%m-%d %H:%M:%S', timestamp,'unixepoch','localtime') as
inizio_chiamata
FROM messages
ORDER BY timestamp
Chat Skype
SELECT author as chiamante, chatname, body_xml as messaggio,
strftime('%Y-%m-%d %H:%M:%S', timestamp,'unixepoch','localtime') as
inizio_chiamata
FROM messages
ORDER BY timestamp
DEFT Conference 2012
Apple iPhone
I sistemi operativi della Apple utilizzano in modo estensivo il
database SQLite. iOS, il sistema operativo dell' iPhone non fa
eccezione.
Tra i molti DB interessanti: sms.db, consolidated.db (iOS >= 4), ...
Sul DB consolidated.db vi sono state polemiche ed e' stata
emessa un patch specifica per rimuovere parte dei dati storici,
ma l'informazione era gia' presente da tempo!
DEFT Conference 2012
Apple iPhone
SMS
SELECT ROWID, case flags when 2 then 'Ricevuto' when 3 then 'Inviato'
when 33 then 'Fail' when 129 then '*Del' else 'Unkn' end as tipo,
address as numero_tel, datetime(date,'unixepoch','localtime') as data,
text as messaggio
FROM message
Dove sei stato?
SELECT datetime(Timestamp+978307200,'unixepoch','localtime') as Time,
Latitude, Longitude, 'WiFi' as Source
FROM WifLocation
UNION
SELECT datetime(Timestamp+978307200,'unixepoch','localtime') as Time,
Latitude, Longitude, 'Cell' as Source
FROM CellLocation
ORDER BY 1;
SMS
SELECT ROWID, case flags when 2 then 'Ricevuto' when 3 then 'Inviato'
when 33 then 'Fail' when 129 then '*Del' else 'Unkn' end as tipo,
address as numero_tel, datetime(date,'unixepoch','localtime') as data,
text as messaggio
FROM message
Dove sei stato?
SELECT datetime(Timestamp+978307200,'unixepoch','localtime') as Time,
Latitude, Longitude, 'WiFi' as Source
FROM WifLocation
UNION
SELECT datetime(Timestamp+978307200,'unixepoch','localtime') as Time,
Latitude, Longitude, 'Cell' as Source
FROM CellLocation
ORDER BY 1;
DEFT Conference 2012
Android
Android utilizza SQLite su molteplici applicazioni.
Ad esempio: contacts.db accounts.db im.db media.db mms.db
sms.db telephony.db settings.db maps.db ...
DEFT Conference 2012
Android
SMS
SELECT datetime(date/1000,'unixepoch','localtime') as data, address as indirizzo,
subject as soggetto, body as testo
FROM sms
ORDER BY date desc
Statistica chiamate
SELECT number as numero, number_key as chiave,
count(*) as numero, sum(duration) as durata,
min(datetime(date/1000,'unixepoch','localtime')) as prima_chiamata,
max(datetime(date/1000,'unixepoch','localtime')) as ultima_chiamata
FROM calls
GROUP BY number, number_key
ORDER BY 3 DESC
LIMIT 20
SMS
SELECT datetime(date/1000,'unixepoch','localtime') as data, address as indirizzo,
subject as soggetto, body as testo
FROM sms
ORDER BY date desc
Statistica chiamate
SELECT number as numero, number_key as chiave,
count(*) as numero, sum(duration) as durata,
min(datetime(date/1000,'unixepoch','localtime')) as prima_chiamata,
max(datetime(date/1000,'unixepoch','localtime')) as ultima_chiamata
FROM calls
GROUP BY number, number_key
ORDER BY 3 DESC
LIMIT 20
DEFT Conference 2012
Qualcosa in piu'...
Agendo direttamente in SQL possono essere evidenziate in modo
molto semplice tutte le cancellazioni logiche (eg. iPhone SMS).
I dispositivi Mobile usano una versione di SQLite compilata senza
l'autovacuum ==> e' possibile recuperare anche i dati cancellati
analizzando la struttura binaria del file di database.
Vi sono alcuni programmi (a pagamento) che consentono l'analisi
dei record cancellati. In ogni caso la struttura di un database
SQLite e' completamente documentata ed e' relativamente
semplice da analizzare in binario con un hexdump o simili...
DEFT Conference 2012
Varie ed eventuali
Domande e risposte
Link utili
http://www.SQLite.org/
Sito ufficiale SQLite
http://www.xenialab.it/meo/web/index1.htm
Non ufficiale ma c'e' molta documentazione... in italiano!
by meo bogliolo

Más contenido relacionado

Similar a Deftcon 2012 - Meo Bogliolo - SQLite Forensics

Visual Studio Performance Tools
Visual Studio Performance ToolsVisual Studio Performance Tools
Visual Studio Performance ToolsAndrea Tosato
 
Alessandro Forte - ASP.Net 4.0
Alessandro Forte - ASP.Net 4.0Alessandro Forte - ASP.Net 4.0
Alessandro Forte - ASP.Net 4.0Alessandro Forte
 
Database Project in Visual Studio 2010
Database Project in Visual Studio 2010Database Project in Visual Studio 2010
Database Project in Visual Studio 2010Gian Maria Ricci
 
MySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle Openstack
MySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle OpenstackMySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle Openstack
MySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle OpenstackPar-Tec S.p.A.
 
DB2 Web Query for i V2.1.0
DB2 Web Query for i V2.1.0DB2 Web Query for i V2.1.0
DB2 Web Query for i V2.1.0S.info Srl
 
Evento 18 giugno - DB2 webquery v2
Evento 18 giugno - DB2 webquery v2Evento 18 giugno - DB2 webquery v2
Evento 18 giugno - DB2 webquery v2PRAGMA PROGETTI
 
[ITA] SQL Saturday 264 - Put databases in ALM backgrounds
[ITA] SQL Saturday 264 - Put databases in ALM backgrounds[ITA] SQL Saturday 264 - Put databases in ALM backgrounds
[ITA] SQL Saturday 264 - Put databases in ALM backgroundsAlessandro Alpi
 
Yashi Enterprise e Microsoft Perchè aggiornare a windows server 2012 r2
Yashi Enterprise e Microsoft Perchè aggiornare a windows server 2012 r2Yashi Enterprise e Microsoft Perchè aggiornare a windows server 2012 r2
Yashi Enterprise e Microsoft Perchè aggiornare a windows server 2012 r2Yashi Italia
 
ETL on Cloud: Azure Data Factory
ETL on Cloud: Azure Data FactoryETL on Cloud: Azure Data Factory
ETL on Cloud: Azure Data FactoryLeonardo Marcucci
 
Differenze tra Windows Server 2012 R2 su e Server 2016 Yashi Italia
Differenze tra Windows Server 2012 R2 su e Server 2016 Yashi ItaliaDifferenze tra Windows Server 2012 R2 su e Server 2016 Yashi Italia
Differenze tra Windows Server 2012 R2 su e Server 2016 Yashi ItaliaYashi Italia
 
Programmazione web libera dai framework
Programmazione web libera dai frameworkProgrammazione web libera dai framework
Programmazione web libera dai frameworkFrancesca1980
 
Realizzare una intranet aziendale con wordpress
Realizzare una intranet aziendale con wordpressRealizzare una intranet aziendale con wordpress
Realizzare una intranet aziendale con wordpressGGDBologna
 
Drupal 10: un framework PHP di sviluppo Cloud Native moderno
Drupal 10: un framework PHP di sviluppo Cloud Native modernoDrupal 10: un framework PHP di sviluppo Cloud Native moderno
Drupal 10: un framework PHP di sviluppo Cloud Native modernosparkfabrik
 
2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL Database2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL DatabaseEmanuele Zanchettin
 
Power BI: Introduzione ai dataflow e alla preparazione dei dati self-service
Power BI: Introduzione ai dataflow e alla preparazione dei dati self-servicePower BI: Introduzione ai dataflow e alla preparazione dei dati self-service
Power BI: Introduzione ai dataflow e alla preparazione dei dati self-serviceMarco Pozzan
 

Similar a Deftcon 2012 - Meo Bogliolo - SQLite Forensics (20)

Visual Studio Performance Tools
Visual Studio Performance ToolsVisual Studio Performance Tools
Visual Studio Performance Tools
 
Alessandro Forte - ASP.Net 4.0
Alessandro Forte - ASP.Net 4.0Alessandro Forte - ASP.Net 4.0
Alessandro Forte - ASP.Net 4.0
 
Data flow
Data flowData flow
Data flow
 
Database Project in Visual Studio 2010
Database Project in Visual Studio 2010Database Project in Visual Studio 2010
Database Project in Visual Studio 2010
 
MySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle Openstack
MySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle OpenstackMySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle Openstack
MySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle Openstack
 
Cert02 70-410
Cert02   70-410Cert02   70-410
Cert02 70-410
 
DB2 Web Query for i V2.1.0
DB2 Web Query for i V2.1.0DB2 Web Query for i V2.1.0
DB2 Web Query for i V2.1.0
 
Evento 18 giugno - DB2 webquery v2
Evento 18 giugno - DB2 webquery v2Evento 18 giugno - DB2 webquery v2
Evento 18 giugno - DB2 webquery v2
 
Linuxday2013
Linuxday2013 Linuxday2013
Linuxday2013
 
[ITA] SQL Saturday 264 - Put databases in ALM backgrounds
[ITA] SQL Saturday 264 - Put databases in ALM backgrounds[ITA] SQL Saturday 264 - Put databases in ALM backgrounds
[ITA] SQL Saturday 264 - Put databases in ALM backgrounds
 
Yashi Enterprise e Microsoft Perchè aggiornare a windows server 2012 r2
Yashi Enterprise e Microsoft Perchè aggiornare a windows server 2012 r2Yashi Enterprise e Microsoft Perchè aggiornare a windows server 2012 r2
Yashi Enterprise e Microsoft Perchè aggiornare a windows server 2012 r2
 
ETL on Cloud: Azure Data Factory
ETL on Cloud: Azure Data FactoryETL on Cloud: Azure Data Factory
ETL on Cloud: Azure Data Factory
 
Ddive Xpage852
Ddive Xpage852Ddive Xpage852
Ddive Xpage852
 
Differenze tra Windows Server 2012 R2 su e Server 2016 Yashi Italia
Differenze tra Windows Server 2012 R2 su e Server 2016 Yashi ItaliaDifferenze tra Windows Server 2012 R2 su e Server 2016 Yashi Italia
Differenze tra Windows Server 2012 R2 su e Server 2016 Yashi Italia
 
Programmazione web libera dai framework
Programmazione web libera dai frameworkProgrammazione web libera dai framework
Programmazione web libera dai framework
 
Realizzare una intranet aziendale con wordpress
Realizzare una intranet aziendale con wordpressRealizzare una intranet aziendale con wordpress
Realizzare una intranet aziendale con wordpress
 
Drupal 10: un framework PHP di sviluppo Cloud Native moderno
Drupal 10: un framework PHP di sviluppo Cloud Native modernoDrupal 10: un framework PHP di sviluppo Cloud Native moderno
Drupal 10: un framework PHP di sviluppo Cloud Native moderno
 
2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL Database2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL Database
 
Power BI: Introduzione ai dataflow e alla preparazione dei dati self-service
Power BI: Introduzione ai dataflow e alla preparazione dei dati self-servicePower BI: Introduzione ai dataflow e alla preparazione dei dati self-service
Power BI: Introduzione ai dataflow e alla preparazione dei dati self-service
 
Dot net framework 2
Dot net framework 2Dot net framework 2
Dot net framework 2
 

Más de Deft Association

deftcon 2015 - Giuseppe Serafini - PCI - DSS Forensics - Soggetti, strumenti ...
deftcon 2015 - Giuseppe Serafini - PCI - DSS Forensics - Soggetti, strumenti ...deftcon 2015 - Giuseppe Serafini - PCI - DSS Forensics - Soggetti, strumenti ...
deftcon 2015 - Giuseppe Serafini - PCI - DSS Forensics - Soggetti, strumenti ...Deft Association
 
deftcon 2015 - Stefano Mele - La cyber-security nel 2020
deftcon 2015 - Stefano Mele - La cyber-security nel 2020deftcon 2015 - Stefano Mele - La cyber-security nel 2020
deftcon 2015 - Stefano Mele - La cyber-security nel 2020Deft Association
 
deftcon 2015 - Paolo Dal Checco - Riciclaggio e Anti riciclaggio nell’era del...
deftcon 2015 - Paolo Dal Checco - Riciclaggio e Anti riciclaggio nell’era del...deftcon 2015 - Paolo Dal Checco - Riciclaggio e Anti riciclaggio nell’era del...
deftcon 2015 - Paolo Dal Checco - Riciclaggio e Anti riciclaggio nell’era del...Deft Association
 
deftcon 2015 - Epifani, Picasso, Scarito, Meda - Tor Browser forensics on Win...
deftcon 2015 - Epifani, Picasso, Scarito, Meda - Tor Browser forensics on Win...deftcon 2015 - Epifani, Picasso, Scarito, Meda - Tor Browser forensics on Win...
deftcon 2015 - Epifani, Picasso, Scarito, Meda - Tor Browser forensics on Win...Deft Association
 
deftcon 2015 - Dave Piscitello - DNS Traffic Monitoring
deftcon 2015 - Dave Piscitello - DNS Traffic Monitoringdeftcon 2015 - Dave Piscitello - DNS Traffic Monitoring
deftcon 2015 - Dave Piscitello - DNS Traffic MonitoringDeft Association
 
deftcon 2015 - Nino Vincenzo Verde - European Antitrust Forensic IT Tools
deftcon 2015 - Nino Vincenzo Verde - European Antitrust Forensic IT Toolsdeftcon 2015 - Nino Vincenzo Verde - European Antitrust Forensic IT Tools
deftcon 2015 - Nino Vincenzo Verde - European Antitrust Forensic IT ToolsDeft Association
 
deftcon 2015 - Stefano Capaccioli - Riciclaggio e Antiriciclaggio nell’era de...
deftcon 2015 - Stefano Capaccioli - Riciclaggio e Antiriciclaggio nell’era de...deftcon 2015 - Stefano Capaccioli - Riciclaggio e Antiriciclaggio nell’era de...
deftcon 2015 - Stefano Capaccioli - Riciclaggio e Antiriciclaggio nell’era de...Deft Association
 
deftcon 2014 - Pasquale Stirparo e Marco Carlo Spada - Electronic Evidence Gu...
deftcon 2014 - Pasquale Stirparo e Marco Carlo Spada - Electronic Evidence Gu...deftcon 2014 - Pasquale Stirparo e Marco Carlo Spada - Electronic Evidence Gu...
deftcon 2014 - Pasquale Stirparo e Marco Carlo Spada - Electronic Evidence Gu...Deft Association
 
Deftcon 2014 - Stefano Fratepietro - Stato del Progetto Deft
Deftcon 2014 - Stefano Fratepietro - Stato del Progetto DeftDeftcon 2014 - Stefano Fratepietro - Stato del Progetto Deft
Deftcon 2014 - Stefano Fratepietro - Stato del Progetto DeftDeft Association
 
Deftcon 2013 - Nicodemo Gawronski - iPBA 2.0 - Plugin Skype
Deftcon 2013 - Nicodemo Gawronski - iPBA 2.0 - Plugin SkypeDeftcon 2013 - Nicodemo Gawronski - iPBA 2.0 - Plugin Skype
Deftcon 2013 - Nicodemo Gawronski - iPBA 2.0 - Plugin SkypeDeft Association
 
Deftcon 2013 - Giuseppe Vaciago - Osint e prevenzione dei Crimini
Deftcon 2013 - Giuseppe Vaciago - Osint e prevenzione dei CriminiDeftcon 2013 - Giuseppe Vaciago - Osint e prevenzione dei Crimini
Deftcon 2013 - Giuseppe Vaciago - Osint e prevenzione dei CriminiDeft Association
 
Deftcon 2013 - Mario Piccinelli - iPBA 2 - iPhone Backup Analyzer 2
Deftcon 2013 - Mario Piccinelli - iPBA 2 - iPhone Backup Analyzer 2Deftcon 2013 - Mario Piccinelli - iPBA 2 - iPhone Backup Analyzer 2
Deftcon 2013 - Mario Piccinelli - iPBA 2 - iPhone Backup Analyzer 2Deft Association
 
Deftcon 2012 - Marco Giorgi - Acquisizione di memorie di massa con DEFT Linux
Deftcon 2012 - Marco Giorgi - Acquisizione di memorie di massa con DEFT LinuxDeftcon 2012 - Marco Giorgi - Acquisizione di memorie di massa con DEFT Linux
Deftcon 2012 - Marco Giorgi - Acquisizione di memorie di massa con DEFT LinuxDeft Association
 
Deftcon 2014 - Marco Giorgi - Metodologie di Acquisizione di Dispositivi Android
Deftcon 2014 - Marco Giorgi - Metodologie di Acquisizione di Dispositivi AndroidDeftcon 2014 - Marco Giorgi - Metodologie di Acquisizione di Dispositivi Android
Deftcon 2014 - Marco Giorgi - Metodologie di Acquisizione di Dispositivi AndroidDeft Association
 
Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - DEFT 7 Manual
Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - DEFT 7 ManualPaolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - DEFT 7 Manual
Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - DEFT 7 ManualDeft Association
 
Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7
Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7
Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7Deft Association
 
Deftcon 2014 - Marco Albanese - Andlink: Un’applicazione a supporto per le at...
Deftcon 2014 - Marco Albanese - Andlink: Un’applicazione a supporto per le at...Deftcon 2014 - Marco Albanese - Andlink: Un’applicazione a supporto per le at...
Deftcon 2014 - Marco Albanese - Andlink: Un’applicazione a supporto per le at...Deft Association
 
deftcon 2014 - Federico Grattirio - TIMESHARK: Uno strumento per la visualizz...
deftcon 2014 - Federico Grattirio - TIMESHARK: Uno strumento per la visualizz...deftcon 2014 - Federico Grattirio - TIMESHARK: Uno strumento per la visualizz...
deftcon 2014 - Federico Grattirio - TIMESHARK: Uno strumento per la visualizz...Deft Association
 
Deftcon 2014 - Stefano Zanero - Comprehensive Black-box Methodology for Testi...
Deftcon 2014 - Stefano Zanero - Comprehensive Black-box Methodology for Testi...Deftcon 2014 - Stefano Zanero - Comprehensive Black-box Methodology for Testi...
Deftcon 2014 - Stefano Zanero - Comprehensive Black-box Methodology for Testi...Deft Association
 

Más de Deft Association (20)

Deft - Botconf 2017
Deft - Botconf 2017Deft - Botconf 2017
Deft - Botconf 2017
 
deftcon 2015 - Giuseppe Serafini - PCI - DSS Forensics - Soggetti, strumenti ...
deftcon 2015 - Giuseppe Serafini - PCI - DSS Forensics - Soggetti, strumenti ...deftcon 2015 - Giuseppe Serafini - PCI - DSS Forensics - Soggetti, strumenti ...
deftcon 2015 - Giuseppe Serafini - PCI - DSS Forensics - Soggetti, strumenti ...
 
deftcon 2015 - Stefano Mele - La cyber-security nel 2020
deftcon 2015 - Stefano Mele - La cyber-security nel 2020deftcon 2015 - Stefano Mele - La cyber-security nel 2020
deftcon 2015 - Stefano Mele - La cyber-security nel 2020
 
deftcon 2015 - Paolo Dal Checco - Riciclaggio e Anti riciclaggio nell’era del...
deftcon 2015 - Paolo Dal Checco - Riciclaggio e Anti riciclaggio nell’era del...deftcon 2015 - Paolo Dal Checco - Riciclaggio e Anti riciclaggio nell’era del...
deftcon 2015 - Paolo Dal Checco - Riciclaggio e Anti riciclaggio nell’era del...
 
deftcon 2015 - Epifani, Picasso, Scarito, Meda - Tor Browser forensics on Win...
deftcon 2015 - Epifani, Picasso, Scarito, Meda - Tor Browser forensics on Win...deftcon 2015 - Epifani, Picasso, Scarito, Meda - Tor Browser forensics on Win...
deftcon 2015 - Epifani, Picasso, Scarito, Meda - Tor Browser forensics on Win...
 
deftcon 2015 - Dave Piscitello - DNS Traffic Monitoring
deftcon 2015 - Dave Piscitello - DNS Traffic Monitoringdeftcon 2015 - Dave Piscitello - DNS Traffic Monitoring
deftcon 2015 - Dave Piscitello - DNS Traffic Monitoring
 
deftcon 2015 - Nino Vincenzo Verde - European Antitrust Forensic IT Tools
deftcon 2015 - Nino Vincenzo Verde - European Antitrust Forensic IT Toolsdeftcon 2015 - Nino Vincenzo Verde - European Antitrust Forensic IT Tools
deftcon 2015 - Nino Vincenzo Verde - European Antitrust Forensic IT Tools
 
deftcon 2015 - Stefano Capaccioli - Riciclaggio e Antiriciclaggio nell’era de...
deftcon 2015 - Stefano Capaccioli - Riciclaggio e Antiriciclaggio nell’era de...deftcon 2015 - Stefano Capaccioli - Riciclaggio e Antiriciclaggio nell’era de...
deftcon 2015 - Stefano Capaccioli - Riciclaggio e Antiriciclaggio nell’era de...
 
deftcon 2014 - Pasquale Stirparo e Marco Carlo Spada - Electronic Evidence Gu...
deftcon 2014 - Pasquale Stirparo e Marco Carlo Spada - Electronic Evidence Gu...deftcon 2014 - Pasquale Stirparo e Marco Carlo Spada - Electronic Evidence Gu...
deftcon 2014 - Pasquale Stirparo e Marco Carlo Spada - Electronic Evidence Gu...
 
Deftcon 2014 - Stefano Fratepietro - Stato del Progetto Deft
Deftcon 2014 - Stefano Fratepietro - Stato del Progetto DeftDeftcon 2014 - Stefano Fratepietro - Stato del Progetto Deft
Deftcon 2014 - Stefano Fratepietro - Stato del Progetto Deft
 
Deftcon 2013 - Nicodemo Gawronski - iPBA 2.0 - Plugin Skype
Deftcon 2013 - Nicodemo Gawronski - iPBA 2.0 - Plugin SkypeDeftcon 2013 - Nicodemo Gawronski - iPBA 2.0 - Plugin Skype
Deftcon 2013 - Nicodemo Gawronski - iPBA 2.0 - Plugin Skype
 
Deftcon 2013 - Giuseppe Vaciago - Osint e prevenzione dei Crimini
Deftcon 2013 - Giuseppe Vaciago - Osint e prevenzione dei CriminiDeftcon 2013 - Giuseppe Vaciago - Osint e prevenzione dei Crimini
Deftcon 2013 - Giuseppe Vaciago - Osint e prevenzione dei Crimini
 
Deftcon 2013 - Mario Piccinelli - iPBA 2 - iPhone Backup Analyzer 2
Deftcon 2013 - Mario Piccinelli - iPBA 2 - iPhone Backup Analyzer 2Deftcon 2013 - Mario Piccinelli - iPBA 2 - iPhone Backup Analyzer 2
Deftcon 2013 - Mario Piccinelli - iPBA 2 - iPhone Backup Analyzer 2
 
Deftcon 2012 - Marco Giorgi - Acquisizione di memorie di massa con DEFT Linux
Deftcon 2012 - Marco Giorgi - Acquisizione di memorie di massa con DEFT LinuxDeftcon 2012 - Marco Giorgi - Acquisizione di memorie di massa con DEFT Linux
Deftcon 2012 - Marco Giorgi - Acquisizione di memorie di massa con DEFT Linux
 
Deftcon 2014 - Marco Giorgi - Metodologie di Acquisizione di Dispositivi Android
Deftcon 2014 - Marco Giorgi - Metodologie di Acquisizione di Dispositivi AndroidDeftcon 2014 - Marco Giorgi - Metodologie di Acquisizione di Dispositivi Android
Deftcon 2014 - Marco Giorgi - Metodologie di Acquisizione di Dispositivi Android
 
Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - DEFT 7 Manual
Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - DEFT 7 ManualPaolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - DEFT 7 Manual
Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - DEFT 7 Manual
 
Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7
Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7
Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7
 
Deftcon 2014 - Marco Albanese - Andlink: Un’applicazione a supporto per le at...
Deftcon 2014 - Marco Albanese - Andlink: Un’applicazione a supporto per le at...Deftcon 2014 - Marco Albanese - Andlink: Un’applicazione a supporto per le at...
Deftcon 2014 - Marco Albanese - Andlink: Un’applicazione a supporto per le at...
 
deftcon 2014 - Federico Grattirio - TIMESHARK: Uno strumento per la visualizz...
deftcon 2014 - Federico Grattirio - TIMESHARK: Uno strumento per la visualizz...deftcon 2014 - Federico Grattirio - TIMESHARK: Uno strumento per la visualizz...
deftcon 2014 - Federico Grattirio - TIMESHARK: Uno strumento per la visualizz...
 
Deftcon 2014 - Stefano Zanero - Comprehensive Black-box Methodology for Testi...
Deftcon 2014 - Stefano Zanero - Comprehensive Black-box Methodology for Testi...Deftcon 2014 - Stefano Zanero - Comprehensive Black-box Methodology for Testi...
Deftcon 2014 - Stefano Zanero - Comprehensive Black-box Methodology for Testi...
 

Deftcon 2012 - Meo Bogliolo - SQLite Forensics

  • 1. DEFT Conference 2012 SQLite forensics Il database Free piu' diffuso al mondo 1.0.2
  • 2. DEFT Conference 2012 Argomenti trattati Presentazione SQLite Utilizzo di SQLite •Introduzione •Interfaccia client •SQL SQLite forensics •Carving •Principali applicazioni •SQL: esempi pratici
  • 3. DEFT Conference 2012 Obiettivi Fornire una conoscenza di base su SQLite dal punto di vista architetturale e funzionale Presentare le principali caratteristiche dell'SQL di SQLite Fornire una panoramica sulle basi dati SQLite usate dai piu' comuni programmi (eg. Skype, Firefox, Chrome, ...) e di come analizzarle in ambito forensics
  • 4. DEFT Conference 2012 Argomenti non trattati Internals •Data types •Strutture dati interne (file format, WAL, ...) •Versioni ed evoluzione Programmazione di applicazioni •Interfacce di programmazione •Sviluppo su Android, iPhone, Windows Phone •Un esempio completo in C language
  • 5. DEFT Conference 2012 SQLite SQLite e' DBMS relazionale piu' installato al mondo. SQLite e' un software di pubblico dominio. I suoi principali punti di forza sono: •Free! Gratis e distribuito con una licenza molto, molto libera (public domain) •Falcilmente integrabile nelle applicazioni •Robustezza ed integrita' dei dati •Presente praticamente su ogni smartphone, su ogni MAC, sulla maggioranza dei PC, disponibile su tutti i sistemi operativi, utilizzato da centinaia di programmi, ... •Un ottimo e completo SQL utilizzabile direttamente e con i piu' diffusi linguaggi di programmazione
  • 6. DEFT Conference 2012 Diffusione SQLite e' utilizzato da: – Tutti i cellulari Android ed iPhone – Programmi diffusissimi (stima > 70% PC): • Firefox, Chrome, Skype, Thunderbird, Dropbox, ... – I piu' recenti cellulari Symbian – Tutti i sistemi MAC OS X e Solaris 10 – Molti lettori MP3 – ... Si stima un utilizzo superiore a 500.000.000 installazioni
  • 7. DEFT Conference 2012 Architettura L'architettura di SQLite e' semplice. Un database SQLite e' costituito da un solo fle. Non c'e' nessun programma, thread o processo. Per accedere a SQLite un'applicazione deve semplicemente utilizzare la libreria disponibile come software di pubblico dominio. Il formato del fle e' defnito in modo preciso dalle specifche ed inizia con stringa: “SQLite format 30”. Il formato e' binary compatible su TUTTE le piattaforme. Sono disponibili diversi programmi per accedere in modo semplice ai dati.
  • 8. DEFT Conference 2012 SQL SQLite supporta lo standard ANSI SQL92 in modo praticamente completo (sono pochissimi sono i costrutti non implementati). SQLite e' semplice da utilizzare da linea di comando: $ sqlite3 my.db SELECT dept.location, count(*), sum(salary) from emp, dept where emp.deptno=dept.deptno group by dept.location order by 3 desc limit 10; ^D
  • 11. DEFT Conference 2012 scalpel.conf #------------------------------------------------------------------- # SQLITE DATABASE FILES #------------------------------------------------------------------- # # SQLite sqlitedb y 20000000000 x53x51x4Cx69x74x65x20x66x6Fx72x6Dx61x74x20x33 # # # #------------------------------------------------------------------- # SQLITE DATABASE FILES #------------------------------------------------------------------- # # SQLite sqlitedb y 20000000000 x53x51x4Cx69x74x65x20x66x6Fx72x6Dx61x74x20x33 # # # Il carving di un DB SQLite e' molto semplice! I primi 16 byte contengono la scritta: SQLite format3
  • 12. DEFT Conference 2012 SQL (DDL) I comandi di DDL sono SQL Standard (eg. create table) SQLite utilizza 5 differenti Storage Class: – NULL, INTEGER, REAL, TEXT, BLOB Non c'e' un formato per le date che vengono memorizzate come testo (eg. ISO8601: YYYY-MM-DD HH:MM:SS.SSS) o come numerico (eg. secondi da Epoch) Sono presenti gli indici (B-tree) Sono presenti le viste (not updatable) E' disponibile una (una!) tabella di data dictionary: sqlite_master
  • 13. DEFT Conference 2012 SQL (DML) DML: Data Manipulation Language sqlite> select date('now'), sqlite_version(), sqlite_source_id(), sqlite_compileoption_get(0), sqlite_compileoption_get(1); 2012-02-07|3.7.6|2011-04-12 01:58:40 f9d43fa363d54beab6f45db005abac0a7c0c47a7|ENABLE_COLUMN_METADATA| ENABLE_FTS3 SQLite=# select * from sqlite_master; ... SQLite=# insert ... ; update ... ; delete ...;
  • 14. DEFT Conference 2012 SQL (funzioni) SQLiteQL ha un insieme molto ampio di operatori, funzioni e clausole: Operatori: AND, OR, NOT, BETWEEN ,IN, IS, =, >=, ... Funzioni su stringhe, date: LENGTH, UPPER, LOWER, QUOTE,... RANDOM, ROUND, ... DATE, STRFTIME, ... Funzioni di gruppo: COUNT(), SUM(), AVG(), HAVING, ...
  • 16. DEFT Conference 2012 Firefox Firefox utilizza una dozzina di database SQLite. Il piu' interessante e' il database places.sqlite che contiene una dozzina di tabelle tra cui il log delle URL visitate Su Windows XP: C:Documents and Settings%userApplication DataMozillaFirefoxProfiles%profile.default - Windows Vista: C:Users%userAppDataRoamingMozillaFirefoxProfiles %profile.default
  • 17. DEFT Conference 2012 Firefox Ultimi siti visitati con Firefox SELECT datetime(moz_historyvisits.visit_date/1000000,'unixepoch') as data, moz_places.url FROM moz_places, moz_historyvisits WHERE moz_places.id = moz_historyvisits.place_id ORDER BY 1 desc LIMIT 20 OFFSET 0 Siti piu' visitati con Firefox SELECT moz_places.url, visit_count FROM moz_places ORDER BY visit_count desc LIMIT 20 Ultimi siti visitati con Firefox SELECT datetime(moz_historyvisits.visit_date/1000000,'unixepoch') as data, moz_places.url FROM moz_places, moz_historyvisits WHERE moz_places.id = moz_historyvisits.place_id ORDER BY 1 desc LIMIT 20 OFFSET 0 Siti piu' visitati con Firefox SELECT moz_places.url, visit_count FROM moz_places ORDER BY visit_count desc LIMIT 20
  • 18. DEFT Conference 2012 Chrome Chrome utilizza diversi database SQLite tra cui il piu' significativo e' History che contiene gli accessi alle pagine web. Le tabelle piu' interessanti sono ulrs, visits e downloads. Su Windows XP: C:Documents and Settings%userApplication DataGoogleChromedefault - Windows Vista: C:Users %userAppDataLocalGoogleChromedefault ...
  • 19. DEFT Conference 2012 Chrome Siti visitati con Chrome SELECT datetime((visit_time-11644473600000000)/1000000,'unixepoch', 'localtime') as data, urls.url, urls.title as titolo FROM urls, visits WHERE urls.id = visits.url ORDER BY 1 desc LIMIT 20 OFFSET 0 Siti visitati con Chrome SELECT datetime((visit_time-11644473600000000)/1000000,'unixepoch', 'localtime') as data, urls.url, urls.title as titolo FROM urls, visits WHERE urls.id = visits.url ORDER BY 1 desc LIMIT 20 OFFSET 0
  • 20. DEFT Conference 2012 Safari Safari e' il diffuso browser sviluppato Apple. Il file di database e' Cache.db e contiene 5 tabelle. Su Mac OS X: /Users/%user/Library/Caches/com.apple.Safari.
  • 21. DEFT Conference 2012 Safari Siti visitati con Safari SELECT cfurl_cache_response.time_stamp as data, cfurl_cache_response.request_key as url FROM cfurl_cache_response ORDER BY 1 desc LIMIT 20 OFFSET 0 Pagine richieste con Safari SELECT cfurl_cache_response.time_stamp as data, cfurl_cache_response.request_key as url, cfurl_cache_blob_data.receiver_data as contenuto FROM cfurl_cache_blob_data, cfurl_cache_response WHERE cfurl_cache_blob_data.entry_ID=cfurl_cache_response.entry_ID ORDER BY 1 desc LIMIT 20 OFFSET 0 Siti visitati con Safari SELECT cfurl_cache_response.time_stamp as data, cfurl_cache_response.request_key as url FROM cfurl_cache_response ORDER BY 1 desc LIMIT 20 OFFSET 0 Pagine richieste con Safari SELECT cfurl_cache_response.time_stamp as data, cfurl_cache_response.request_key as url, cfurl_cache_blob_data.receiver_data as contenuto FROM cfurl_cache_blob_data, cfurl_cache_response WHERE cfurl_cache_blob_data.entry_ID=cfurl_cache_response.entry_ID ORDER BY 1 desc LIMIT 20 OFFSET 0
  • 22. DEFT Conference 2012 Skype Skype mantiene i propri dati sul database file main.db che contiene una decina di tabelle. Su MS Windows il database di Skype si trova in C:Documents and Settings%profileApplication DataSkype%skype_user, con l'eccezione di Vista and 2008 dove il file e' in C:Documents and Settings%profileAppDataRoamingSkype%skype_user. Su Mac OS X: /Users/%user/Library/Application Support/Skype/%skype_user.
  • 23. DEFT Conference 2012 Skype Chiamate skype-to-phone (tutte) e skype-to-skype (solo se OK) SELECT identity as chiamante, guid, call_duration/60 as durata_minuti, strftime('%Y-%m-%d %H:%M:%S', start_timestamp,'unixepoch','localtime') as inizio_chiamata FROM CallMembers ORDER BY id Chiamate skype-to-skype (tutte) SELECT host_identity as chiamante, current_video_audience as destinazione, duration/60 as durata_minuti, strftime('%Y-%m-%d %H:%M:%S', begin_timestamp,'unixepoch','localtime') as inizio_chiamata FROM Calls ORDER BY id Chiamate skype-to-phone (tutte) e skype-to-skype (solo se OK) SELECT identity as chiamante, guid, call_duration/60 as durata_minuti, strftime('%Y-%m-%d %H:%M:%S', start_timestamp,'unixepoch','localtime') as inizio_chiamata FROM CallMembers ORDER BY id Chiamate skype-to-skype (tutte) SELECT host_identity as chiamante, current_video_audience as destinazione, duration/60 as durata_minuti, strftime('%Y-%m-%d %H:%M:%S', begin_timestamp,'unixepoch','localtime') as inizio_chiamata FROM Calls ORDER BY id
  • 24. DEFT Conference 2012 Skype Chat Skype SELECT author as chiamante, chatname, body_xml as messaggio, strftime('%Y-%m-%d %H:%M:%S', timestamp,'unixepoch','localtime') as inizio_chiamata FROM messages ORDER BY timestamp Chat Skype SELECT author as chiamante, chatname, body_xml as messaggio, strftime('%Y-%m-%d %H:%M:%S', timestamp,'unixepoch','localtime') as inizio_chiamata FROM messages ORDER BY timestamp
  • 25. DEFT Conference 2012 Apple iPhone I sistemi operativi della Apple utilizzano in modo estensivo il database SQLite. iOS, il sistema operativo dell' iPhone non fa eccezione. Tra i molti DB interessanti: sms.db, consolidated.db (iOS >= 4), ... Sul DB consolidated.db vi sono state polemiche ed e' stata emessa un patch specifica per rimuovere parte dei dati storici, ma l'informazione era gia' presente da tempo!
  • 26. DEFT Conference 2012 Apple iPhone SMS SELECT ROWID, case flags when 2 then 'Ricevuto' when 3 then 'Inviato' when 33 then 'Fail' when 129 then '*Del' else 'Unkn' end as tipo, address as numero_tel, datetime(date,'unixepoch','localtime') as data, text as messaggio FROM message Dove sei stato? SELECT datetime(Timestamp+978307200,'unixepoch','localtime') as Time, Latitude, Longitude, 'WiFi' as Source FROM WifLocation UNION SELECT datetime(Timestamp+978307200,'unixepoch','localtime') as Time, Latitude, Longitude, 'Cell' as Source FROM CellLocation ORDER BY 1; SMS SELECT ROWID, case flags when 2 then 'Ricevuto' when 3 then 'Inviato' when 33 then 'Fail' when 129 then '*Del' else 'Unkn' end as tipo, address as numero_tel, datetime(date,'unixepoch','localtime') as data, text as messaggio FROM message Dove sei stato? SELECT datetime(Timestamp+978307200,'unixepoch','localtime') as Time, Latitude, Longitude, 'WiFi' as Source FROM WifLocation UNION SELECT datetime(Timestamp+978307200,'unixepoch','localtime') as Time, Latitude, Longitude, 'Cell' as Source FROM CellLocation ORDER BY 1;
  • 27. DEFT Conference 2012 Android Android utilizza SQLite su molteplici applicazioni. Ad esempio: contacts.db accounts.db im.db media.db mms.db sms.db telephony.db settings.db maps.db ...
  • 28. DEFT Conference 2012 Android SMS SELECT datetime(date/1000,'unixepoch','localtime') as data, address as indirizzo, subject as soggetto, body as testo FROM sms ORDER BY date desc Statistica chiamate SELECT number as numero, number_key as chiave, count(*) as numero, sum(duration) as durata, min(datetime(date/1000,'unixepoch','localtime')) as prima_chiamata, max(datetime(date/1000,'unixepoch','localtime')) as ultima_chiamata FROM calls GROUP BY number, number_key ORDER BY 3 DESC LIMIT 20 SMS SELECT datetime(date/1000,'unixepoch','localtime') as data, address as indirizzo, subject as soggetto, body as testo FROM sms ORDER BY date desc Statistica chiamate SELECT number as numero, number_key as chiave, count(*) as numero, sum(duration) as durata, min(datetime(date/1000,'unixepoch','localtime')) as prima_chiamata, max(datetime(date/1000,'unixepoch','localtime')) as ultima_chiamata FROM calls GROUP BY number, number_key ORDER BY 3 DESC LIMIT 20
  • 29. DEFT Conference 2012 Qualcosa in piu'... Agendo direttamente in SQL possono essere evidenziate in modo molto semplice tutte le cancellazioni logiche (eg. iPhone SMS). I dispositivi Mobile usano una versione di SQLite compilata senza l'autovacuum ==> e' possibile recuperare anche i dati cancellati analizzando la struttura binaria del file di database. Vi sono alcuni programmi (a pagamento) che consentono l'analisi dei record cancellati. In ogni caso la struttura di un database SQLite e' completamente documentata ed e' relativamente semplice da analizzare in binario con un hexdump o simili...
  • 30. DEFT Conference 2012 Varie ed eventuali Domande e risposte Link utili http://www.SQLite.org/ Sito ufficiale SQLite http://www.xenialab.it/meo/web/index1.htm Non ufficiale ma c'e' molta documentazione... in italiano! by meo bogliolo