1. Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
iPBA 2 - iPhone Backup Analyzer 2
Software open source per lanalisi di backup iOS
Dott. Mario Piccinelli
mario.piccinelli@ing.unibs.it
Universit`a degli Studi di Brescia
Dipartimento di Ingegneria dellInformazione
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 lanalisi 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 鍖le 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 lanalisi dei dati di backup.
Strumento per lesplorazione degli archivi contenuti nel
backup.
Gratuito, con sorgenti aperti, il cui funzionamento pu`o essere
veri鍖cato da perizia indipendente.
A quanto mi risulta lunico 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.
Veri鍖che 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 lapplicativo 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 lesecuzione di backup di iDevices.
Non si possono utilizzare metodi hardware/software per garantire
la non modi鍖ca 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 e鍖etti 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 modi鍖ca del dispositivo in
esame. Tuttavia il software `e open source e se ne pu`o quindi
analizzare il funzionamento.
Il software `e disponibile allindirizzo:
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 鍖le pu`o contenere:
Database SQLite3.
File PLIST.
File PLIST binari.
Altro (鍖le di testo, 鍖le multimediali, 鍖le binari in formato
proprietario).
I formati SQLite e PLIST sono i formati privilegiati per
larchiviazione 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 鍖le.
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 larchiviazione 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 鍖le 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 lUUID (Universally
Unique IDenti鍖er) del dispositivo di origine.
Se esistono diverse copie di un backup (solo per dispositivi
resettati), quelle archiviate sono identi鍖cate 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: 鍖le binario con lindice dei 鍖le contenuti nel
backup e i loro attributi.
Status.plist: 鍖le PLIST con informazioni sulle鍖ettuazione del
backup.
Manifest.plist: 鍖le PLIST che descrive il contenuto del backup.
Info.plist: 鍖le PLIST con informazioni sul dispositivo oggetto
del backup.
Tutti i singoli 鍖le copiati dal 鍖lesystem 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 鍖le
I 鍖le 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 fotogra鍖ca.
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 鍖le
(continua)
MobileDeviceDomain: provisioning pro鍖les.
RootDomain: dati di cache della geolocalizzazione.
SystemPreferencesDomain: con鍖gurazione dei componenti
core di iOS.
WirelessDomain: con鍖gurazione 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 鍖le
Dott. Mario Piccinelli mario.piccinelli@ing.unibs.it
iPBA 2 - iPhone Backup Analyzer 2
29. Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
Decodi鍖ca dei nomi
La prima fase dellanalisi `e ricostruire il legame tra il nome 鍖le
reale (dominio - dottodominio - path - 鍖lename - ext) e il nome
e鍖ettivo nel backup (stringa esadecimale di 40 caratteri).
I dati reali sono contenuti nel 鍖le Manifest.mbdb, il nome e鍖ettivo
si ricava calcolando lhash 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 鍖le 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
Decodi鍖ca ed esplorazione struttura
backup
Visualizzazione
testo e immagini
Visualizzazione
鍖le 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 鍖le PLIST
Analisi del contenuto del 鍖le 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 鍖le.
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 鍖le binari in HEX
Visualizzazione esadecimale di un 鍖le.
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 unapplicazione (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
allattivit`a sportiva? Proviamo su un dispositivo di test: installiamo
lappplicazione, 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 veri鍖chiamo 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 lanalisi del backup a scopo di studio.
Successivamente ci si `e accorti che la complessit`a dei dati non
permette unanalisi consistente semplicemente analizzando gli
elementi singoli.
卒E stato quindi deciso di implementare un sistema modulare,
composto da singoli moduli ciascuno specializzato nellanalisi di un
archivio speci鍖co.
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" 鍖eld 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
dellAP)
...
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 allindirizzo:
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 lattenzione!
Mario Piccinelli
mario.piccinelli@ing.unibs.it
Dott. Mario Piccinelli mario.piccinelli@ing.unibs.it
iPBA 2 - iPhone Backup Analyzer 2