1. Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
iPBA 2 - iPhone Backup Analyzer 2
Software open source per l’analisi di backup iOS
Dott. Mario Piccinelli
mario.piccinelli@ing.unibs.it
Universit`a degli Studi di Brescia
Dipartimento di Ingegneria dell’Informazione
Dott. Mario Piccinelli mario.piccinelli@ing.unibs.it
iPBA 2 - iPhone Backup Analyzer 2
3. Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
iPBA 2 - iPhone Backup Analyzer 2
Software open source per l’analisi della directory di backup di un
dispositivo iOS.
Licenza MIT
Permission is hereby granted, free of charge, [...] to deal in
the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute,
sublicense, and/or sell copies of the Software, [...], subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
Dott. Mario Piccinelli mario.piccinelli@ing.unibs.it
iPBA 2 - iPhone Backup Analyzer 2
4. Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
iPBA 2 - iPhone Backup Analyzer 2
Scritto in Python 2 con interfaccia utente sviluppata in Qt, quindi
multipiattaforma (Windows, Linux, Mac Os X).
Viene distribuito in forma di sorgente (script Python e file Qt
Designer) e come eseguibile Windows precompilato.
http://www.ipbackupanalyzer.com
Dott. Mario Piccinelli mario.piccinelli@ing.unibs.it
iPBA 2 - iPhone Backup Analyzer 2
5. Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
iPBA 2 - iPhone Backup Analyzer 2
Cosa `e:
Strumento per l’analisi dei dati di backup.
Strumento per l’esplorazione degli archivi contenuti nel
backup.
Gratuito, con sorgenti aperti, il cui funzionamento pu`o essere
verificato da perizia indipendente.
A quanto mi risulta l’unico software di questo tipo presente
nel mondo open source.
Dott. Mario Piccinelli mario.piccinelli@ing.unibs.it
iPBA 2 - iPhone Backup Analyzer 2
6. Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
iPBA 2 - iPhone Backup Analyzer 2
Cosa NON `e:
Un software forense ”standard” (ma quale lo `e?).
Un sistema di analisi ”automatico”: le funzionalit`a di
reportistica sono impostate ma non ancora complete.
Un sistema completo.
Ovviamente, nulla impedisce che un domani lo sia!
Dott. Mario Piccinelli mario.piccinelli@ing.unibs.it
iPBA 2 - iPhone Backup Analyzer 2
7. Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
iPBA 2 - iPhone Backup Analyzer 2
Di cosa ha bisogno:
Sviluppo nuove funzionalit`a.
Verifiche indipendenti di funzionamento.
Individuazione di errori.
Tutto quello che ci pu`o venire in mente.
Siete tutti invitati!
Dott. Mario Piccinelli mario.piccinelli@ing.unibs.it
iPBA 2 - iPhone Backup Analyzer 2
9. Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
iOS Backup
Ogni volta che un dispositivo iOS viene sincronizzato con un
computer, ad esempio mediante l’applicativo iTunes R , ne viene
eseguito un backup (salvo che non sia stato disattivato
manualmente).
Il backup pu`o essere cifrato, ma di default `e in chiaro.
Il backup `e incrementale: viene mantenuta solo una copia per
ciascun dispositivo, la pi`u recente. Eccezione se un dispositivo
viene resettato.
Dott. Mario Piccinelli mario.piccinelli@ing.unibs.it
iPBA 2 - iPhone Backup Analyzer 2
10. Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
iOS Backup mediante iTunes
Canale privilegiato per l’esecuzione di backup di iDevices.
Non si possono utilizzare metodi hardware/software per garantire
la non modifica del dispositivo in esame.
Dott. Mario Piccinelli mario.piccinelli@ing.unibs.it
iPBA 2 - iPhone Backup Analyzer 2
11. Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
iOS Backup mediante software open source
Canale alternativo per la sola estrazione dati. Il backup realizzato `e
identico a quello realizzato da iTunes. In effetti si tratta di una
emulazione del protocollo di backup di iTunes.
$ ./idevicebackup2 backup new backup dir
Anche in questo caso non si possono utilizzare metodi
hardware/software per garantire la non modifica del dispositivo in
esame. Tuttavia il software `e open source e se ne pu`o quindi
analizzare il funzionamento.
Il software `e disponibile all’indirizzo:
http://www.libimobiledevice.org/
Dott. Mario Piccinelli mario.piccinelli@ing.unibs.it
iPBA 2 - iPhone Backup Analyzer 2
12. Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
iOS Backup
Cosa NON contiene:
File multimediali sincronizzati mediante iTunes.
Email (sincronizzate con account esterni).
Eseguibili delle App installate.
Eseguibili di sistema.
Password (o meglio, in realt`a ci sono ma sono cifrate).
Dati delle applicazioni considerati temporanei o nella directory
”Cache”.
Dott. Mario Piccinelli mario.piccinelli@ing.unibs.it
iPBA 2 - iPhone Backup Analyzer 2
13. Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
iOS Backup
Cosa contiene:
Tutto il resto...
Dott. Mario Piccinelli mario.piccinelli@ing.unibs.it
iPBA 2 - iPhone Backup Analyzer 2
14. Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
iOS Backup
Che tipi di file pu`o contenere:
Database SQLite3.
File PLIST.
File PLIST binari.
Altro (file di testo, file multimediali, file binari in formato
proprietario).
I formati SQLite e PLIST sono i formati privilegiati per
l’archiviazione di informazioni sotto iOS.
Dott. Mario Piccinelli mario.piccinelli@ing.unibs.it
iPBA 2 - iPhone Backup Analyzer 2
15. Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
Database SQLite
Database relazionale contenente una o pi`u tabelle, interamente
racchiuso in un singolo file.
Dott. Mario Piccinelli mario.piccinelli@ing.unibs.it
iPBA 2 - iPhone Backup Analyzer 2
16. Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
Cos’`e un database relazionale
Dott. Mario Piccinelli mario.piccinelli@ing.unibs.it
iPBA 2 - iPhone Backup Analyzer 2
17. Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
File PLIST
File di testo in formato simile a XML per l’archiviazione di
informazioni strutturate e gerarchiche.
Contiene diversi tipi di dati racchiusi tra tag standard:
<string>testo</string>
<integer>10</integer>
<array>
<string>testo1</string>
<string>testo2</string>
</array>
I file PLIST possono essere archiviati in forma binaria (compatta)
per risparmiare spazio.
Dott. Mario Piccinelli mario.piccinelli@ing.unibs.it
iPBA 2 - iPhone Backup Analyzer 2
18. Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
Esempio di PLIST
<plist version="1.0">
<dict>
<key>BookmarksData</key>
<array>
<data>
CAAQABgDIAAqJ1ZpYSBWYWxsb...
</data>
<data>
FHUYGHFGIYhu4789HIGUVUIGYU......
</data>
<key>BookmarksData</key>
<array>
...
Dott. Mario Piccinelli mario.piccinelli@ing.unibs.it
iPBA 2 - iPhone Backup Analyzer 2
19. Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
Posizione backup
In OS X:
(your home directoy)/ Library/ Application Support/ MobileSync/
Backup/
In Windows XP:
C: Documents and Settings user Application Data Apple
Computer MobileSync Backup
In Windows Vista/Seven:
C: Users user AppData Roaming Apple Computer
MobileSync Backup
Dott. Mario Piccinelli mario.piccinelli@ing.unibs.it
iPBA 2 - iPhone Backup Analyzer 2
20. Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
Esempio di directory di backup
I backup sono divisi in cartelle denominate con l’UUID (Universally
Unique IDentifier) del dispositivo di origine.
Se esistono diverse copie di un backup (solo per dispositivi
resettati), quelle archiviate sono identificate anche mediante data e
ora.
Dott. Mario Piccinelli mario.piccinelli@ing.unibs.it
iPBA 2 - iPhone Backup Analyzer 2
22. Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
Contenuto del backup
Manifest.mbdb: file binario con l’indice dei file contenuti nel
backup e i loro attributi.
Status.plist: file PLIST con informazioni sull’effettuazione del
backup.
Manifest.plist: file PLIST che descrive il contenuto del backup.
Info.plist: file PLIST con informazioni sul dispositivo oggetto
del backup.
Tutti i singoli file copiati dal filesystem del dispositivo, senza
distinzione di path.
Dott. Mario Piccinelli mario.piccinelli@ing.unibs.it
iPBA 2 - iPhone Backup Analyzer 2
26. Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
Organizzazione dei file
I file contenuti nel backup sono divisi in domini, ovvero
raggruppamenti logici di contenuti. In iOS 5, i domini sono:
AppDomain: dati delle applicazioni non di sistema.
CameraRollDomain: contenuto della galleria fotografica.
HomeDomain: dati delle applicazioni di sistema.
KeychainDomain: dati relativi al portachiavi.
ManagedPreferencesDomain: vuoto.
MediaDomain: elementi multimediali non legati alla
fotocamera (ad es. allegati degli SMS).
(continua)
Dott. Mario Piccinelli mario.piccinelli@ing.unibs.it
iPBA 2 - iPhone Backup Analyzer 2
27. Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
Organizzazione dei file
(continua)
MobileDeviceDomain: provisioning profiles.
RootDomain: dati di cache della geolocalizzazione.
SystemPreferencesDomain: configurazione dei componenti
core di iOS.
WirelessDomain: configurazione della parte telefonica del
dispositivo.
Gli elementi del dominio delle applicazioni sono a loro volta divisi
in sottodomini, uno per ciascuna applicazione.
Dott. Mario Piccinelli mario.piccinelli@ing.unibs.it
iPBA 2 - iPhone Backup Analyzer 2
28. Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
Organizzazione dei file
Dott. Mario Piccinelli mario.piccinelli@ing.unibs.it
iPBA 2 - iPhone Backup Analyzer 2
29. Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
Decodifica dei nomi
La prima fase dell’analisi `e ricostruire il legame tra il nome file
reale (dominio - dottodominio - path - filename - ext) e il nome
effettivo nel backup (stringa esadecimale di 40 caratteri).
I dati reali sono contenuti nel file Manifest.mbdb, il nome effettivo
si ricava calcolando l’hash SHA1 del reale, nella forma:
domain-subdomain-path/name
⇓SHA1
nome effettivo
Dott. Mario Piccinelli mario.piccinelli@ing.unibs.it
iPBA 2 - iPhone Backup Analyzer 2
30. Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
Struttura file MBDB
Header Record Record Record
"mbdb50"
uint8[6]
Domain
string
Path
string
Link Target
string
Data Hash
string
unknown
string
Perm.
uint16
unknown
uint32
unknown
uint32
User ID
uint32
Group ID
uint32
m. time
uint32
a. time
uint32
c. time
uint32
File size
uint64
Flag
uint8
Property count
uint8
Property Property
Name
string
Value
string
Dott. Mario Piccinelli mario.piccinelli@ing.unibs.it
iPBA 2 - iPhone Backup Analyzer 2
32. Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
Struttura iPBA
Analisi PLIST
Analisi SQLite
Analisi PLIST
binari
Decodifica ed esplorazione struttura
backup
Visualizzazione
testo e immagini
Visualizzazione
file binari
Analisi EXIF
SMS / iMessage
Lista chiamate
Rubrica indirizzi
Parametri di
connessione
Stato Safari
Contatti Safari
Preferiti Safari
Thumbnails
History e preferiti
YouTube
...
iPBA
(ad oggi)
Dott. Mario Piccinelli mario.piccinelli@ing.unibs.it
iPBA 2 - iPhone Backup Analyzer 2
33. Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
Schermata principale
Dott. Mario Piccinelli mario.piccinelli@ing.unibs.it
iPBA 2 - iPhone Backup Analyzer 2
34. Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
Visualizzatore di file PLIST
Analisi del contenuto del file Manifest.plist.
Dott. Mario Piccinelli mario.piccinelli@ing.unibs.it
iPBA 2 - iPhone Backup Analyzer 2
35. Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
Visualizzatore di immagini
Preview, dati EXIF, informazioni file.
Dott. Mario Piccinelli mario.piccinelli@ing.unibs.it
iPBA 2 - iPhone Backup Analyzer 2
36. Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
Visualizzatore di database SQLite3
Visualizzazione del database del log chiamate.
Dott. Mario Piccinelli mario.piccinelli@ing.unibs.it
iPBA 2 - iPhone Backup Analyzer 2
37. Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
Visualizzatore di file binari in HEX
Visualizzazione esadecimale di un file.
Dott. Mario Piccinelli mario.piccinelli@ing.unibs.it
iPBA 2 - iPhone Backup Analyzer 2
38. Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
Analisi di una applicazione
Esempio della procedura di reverse engineering del contenuto del
backup di una applicazione.
Caso: nel backup individuo i dati di un’applicazione (RunKeeper,
applicazione usata per registrare attivit`a di jogging) e devo
estrarne informazioni utili per una indagine.
Che informazioni mi aspetto di individuare? I dati relativi
all’attivit`a sportiva? Proviamo su un dispositivo di test: installiamo
l’appplicazione, generiamo dei dati noti e tentiamo di individuarli
nel backup di prova.
Dott. Mario Piccinelli mario.piccinelli@ing.unibs.it
iPBA 2 - iPhone Backup Analyzer 2
39. Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
Analisi applicazione - RunKeeper
Analisi del contenuto del backup. Individuiamo un database
SQLite contenente una tabella ”trips”.
Dott. Mario Piccinelli mario.piccinelli@ing.unibs.it
iPBA 2 - iPhone Backup Analyzer 2
40. Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
Analisi applicazione - Runkeeper
Incrociamo i dati contenuti nel database con i dati visualizzati sul
dispositivo di test, e verifichiamo che le nostre supposizioni siano
confermate.
start date: 1301423993.75
convertito da Unix Epoch: Tue
Mar 29 2011 20:39:53 GMT+2
distance: 4719.983374
in chilometri: 4.72 km
elapsed time: 2627.6
convertito da secondi a minuti:
43.787 minuti = 43:48 minuti
calories: 322
Dott. Mario Piccinelli mario.piccinelli@ing.unibs.it
iPBA 2 - iPhone Backup Analyzer 2
42. Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
Struttura modulare
iPBA 2 `e stato pensato per l’analisi del backup a scopo di studio.
Successivamente ci si `e accorti che la complessit`a dei dati non
permette un’analisi consistente semplicemente analizzando gli
elementi singoli.
´E stato quindi deciso di implementare un sistema modulare,
composto da singoli moduli ciascuno specializzato nell’analisi di un
archivio specifico.
Dott. Mario Piccinelli mario.piccinelli@ing.unibs.it
iPBA 2 - iPhone Backup Analyzer 2
43. Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
Struttura modulare
Esempio di complessit`a: struttura rubrica contatti.
ABPerson
ROWID
First
Last
...
ABMultiValue
UID
record_id
property
label
value
ABMultiValueLabel
ABMultiValueEntry
parent_id
key
value
ABMultiValueEntryKey
3
4
5
22
phone number
email address
multivalue entry (address)
url
ABGroupMembers
UID
group_id
member_id
ABGroup
ROWID
name
ABThumbnailImage
record_id
data
ABFullSizeImage
record_id
data
AddressBookImages.sqlitedb
AddressBook.sqlitedb
Sample values for the
"property" field of the
"ABMultiValue" table
Dott. Mario Piccinelli mario.piccinelli@ing.unibs.it
iPBA 2 - iPhone Backup Analyzer 2
52. Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
iPBA 2 Plugins
Molti altri plugin, ed altri ancora in sviluppo o in progetto. Tra
quelli attualmente presenti nella release si citano:
Skype
Viber
Whatsapp
Informazioni generali sul telefono e sul backup
Applicativo Note
Reti WiFi analizzate (range IP, dominio, MAC address
dell’AP)
...
Dott. Mario Piccinelli mario.piccinelli@ing.unibs.it
iPBA 2 - iPhone Backup Analyzer 2
53. Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
Conclusione
iPBA `e liberamente scaricabile all’indirizzo:
http://www.ipbackupanalyzer.com
I sorgenti sono liberamente disponibili su GitHub:
https://github.com/PicciMario/iPhone-Backup-Analyzer
Ogni contributo allo sviluppo `e bene accetto! :-)
Sviluppo nuovi moduli
Test/individuazione errori
Sviluppo nuove funzionalit`a
Suggerimenti
Report di uso in casi pratici
...
Dott. Mario Piccinelli mario.piccinelli@ing.unibs.it
iPBA 2 - iPhone Backup Analyzer 2
54. Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
Conclusione
Grazie per l’attenzione!
Mario Piccinelli
mario.piccinelli@ing.unibs.it
Dott. Mario Piccinelli mario.piccinelli@ing.unibs.it
iPBA 2 - iPhone Backup Analyzer 2