deftcon 2013 - mario piccinelli - ipba 2 - iphone backup analyzer 2
DESCRIPTION
TRANSCRIPT
Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
iPBA 2 - iPhone Backup Analyzer 2Software open source per l’analisi di backup iOS
Dott. Mario [email protected]
Universita degli Studi di BresciaDipartimento di Ingegneria dell’Informazione
Dott. Mario Piccinelli [email protected]
iPBA 2 - iPhone Backup Analyzer 2
Outline
Presentazione
iOS Backup
iPBA - Features
iPBA 2 - Plugins
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 undispositivo iOS.
Licenza MIT
I Permission is hereby granted, free of charge, [...] to deal inthe Software without restriction, including without limitationthe rights to use, copy, modify, merge, publish, distribute,sublicense, and/or sell copies of the Software, [...], subject tothe following conditions:The above copyright notice and this permission notice shall beincluded in all copies or substantial portions of the Software.
Dott. Mario Piccinelli [email protected]
iPBA 2 - iPhone Backup Analyzer 2
Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
iPBA 2 - iPhone Backup Analyzer 2
Scritto in Python 2 con interfaccia utente sviluppata in Qt, quindimultipiattaforma (Windows, Linux, Mac Os X).
Viene distribuito in forma di sorgente (script Python e file QtDesigner) e come eseguibile Windows precompilato.http://www.ipbackupanalyzer.com
Dott. Mario Piccinelli [email protected]
iPBA 2 - iPhone Backup Analyzer 2
Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
iPBA 2 - iPhone Backup Analyzer 2
Cosa e:
I Strumento per l’analisi dei dati di backup.
I Strumento per l’esplorazione degli archivi contenuti nelbackup.
I Gratuito, con sorgenti aperti, il cui funzionamento puo essereverificato da perizia indipendente.
I A quanto mi risulta l’unico software di questo tipo presentenel mondo open source.
Dott. Mario Piccinelli [email protected]
iPBA 2 - iPhone Backup Analyzer 2
Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
iPBA 2 - iPhone Backup Analyzer 2
Cosa NON e:
I Un software forense ”standard” (ma quale lo e?).
I Un sistema di analisi ”automatico”: le funzionalita direportistica sono impostate ma non ancora complete.
I Un sistema completo.
Ovviamente, nulla impedisce che un domani lo sia!
Dott. Mario Piccinelli [email protected]
iPBA 2 - iPhone Backup Analyzer 2
Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
iPBA 2 - iPhone Backup Analyzer 2
Di cosa ha bisogno:
I Sviluppo nuove funzionalita.
I Verifiche indipendenti di funzionamento.
I Individuazione di errori.
I Tutto quello che ci puo venire in mente.
Siete tutti invitati!
Dott. Mario Piccinelli [email protected]
iPBA 2 - iPhone Backup Analyzer 2
Outline
Presentazione
iOS Backup
iPBA - Features
iPBA 2 - Plugins
Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
iOS Backup
Ogni volta che un dispositivo iOS viene sincronizzato con uncomputer, ad esempio mediante l’applicativo iTunes R©, ne vieneeseguito un backup (salvo che non sia stato disattivatomanualmente).
Il backup puo essere cifrato, ma di default e in chiaro.
Il backup e incrementale: viene mantenuta solo una copia perciascun dispositivo, la piu recente. Eccezione se un dispositivoviene resettato.
Dott. Mario Piccinelli [email protected]
iPBA 2 - iPhone Backup Analyzer 2
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 garantirela non modifica del dispositivo in esame.
Dott. Mario Piccinelli [email protected]
iPBA 2 - iPhone Backup Analyzer 2
Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
iOS Backup mediante software open source
Canale alternativo per la sola estrazione dati. Il backup realizzato eidentico a quello realizzato da iTunes. In effetti si tratta di unaemulazione del protocollo di backup di iTunes.
$ ./idevicebackup2 backup new backup dir
Anche in questo caso non si possono utilizzare metodihardware/software per garantire la non modifica del dispositivo inesame. Tuttavia il software e open source e se ne puo quindianalizzare il funzionamento.
Il software e disponibile all’indirizzo:http://www.libimobiledevice.org/
Dott. Mario Piccinelli [email protected]
iPBA 2 - iPhone Backup Analyzer 2
Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
iOS Backup
Cosa NON contiene:
I File multimediali sincronizzati mediante iTunes.
I Email (sincronizzate con account esterni).
I Eseguibili delle App installate.
I Eseguibili di sistema.
I Password (o meglio, in realta ci sono ma sono cifrate).
I Dati delle applicazioni considerati temporanei o nella directory”Cache”.
Dott. Mario Piccinelli [email protected]
iPBA 2 - iPhone Backup Analyzer 2
Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
iOS Backup
Cosa contiene:
I Tutto il resto...
Dott. Mario Piccinelli [email protected]
iPBA 2 - iPhone Backup Analyzer 2
Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
iOS Backup
Che tipi di file puo contenere:
I Database SQLite3.
I File PLIST.
I File PLIST binari.
I Altro (file di testo, file multimediali, file binari in formatoproprietario).
I formati SQLite e PLIST sono i formati privilegiati perl’archiviazione di informazioni sotto iOS.
Dott. Mario Piccinelli [email protected]
iPBA 2 - iPhone Backup Analyzer 2
Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
Database SQLite
Database relazionale contenente una o piu tabelle, interamenteracchiuso in un singolo file.
Dott. Mario Piccinelli [email protected]
iPBA 2 - iPhone Backup Analyzer 2
Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
Cos’e un database relazionale
Dott. Mario Piccinelli [email protected]
iPBA 2 - iPhone Backup Analyzer 2
Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
File PLIST
File di testo in formato simile a XML per l’archiviazione diinformazioni 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 [email protected]
iPBA 2 - iPhone Backup Analyzer 2
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 [email protected]
iPBA 2 - iPhone Backup Analyzer 2
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 \AppleComputer \MobileSync \Backup
In Windows Vista/Seven:C: \Users \user \AppData \Roaming \Apple Computer\MobileSync \Backup
Dott. Mario Piccinelli [email protected]
iPBA 2 - iPhone Backup Analyzer 2
Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
Esempio di directory di backup
I backup sono divisi in cartelle denominate con l’UUID (UniversallyUnique IDentifier) del dispositivo di origine.
Se esistono diverse copie di un backup (solo per dispositiviresettati), quelle archiviate sono identificate anche mediante data eora.
Dott. Mario Piccinelli [email protected]
iPBA 2 - iPhone Backup Analyzer 2
Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
Contenuto directory backup
Dott. Mario Piccinelli [email protected]
iPBA 2 - iPhone Backup Analyzer 2
Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
Contenuto del backup
I Manifest.mbdb: file binario con l’indice dei file contenuti nelbackup e i loro attributi.
I Status.plist: file PLIST con informazioni sull’effettuazione delbackup.
I Manifest.plist: file PLIST che descrive il contenuto del backup.
I Info.plist: file PLIST con informazioni sul dispositivo oggettodel backup.
I Tutti i singoli file copiati dal filesystem del dispositivo, senzadistinzione di path.
Dott. Mario Piccinelli [email protected]
iPBA 2 - iPhone Backup Analyzer 2
Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
Info.plist
Dott. Mario Piccinelli [email protected]
iPBA 2 - iPhone Backup Analyzer 2
Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
Manifest.plist
Dott. Mario Piccinelli [email protected]
iPBA 2 - iPhone Backup Analyzer 2
Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
Status.plist
Dott. Mario Piccinelli [email protected]
iPBA 2 - iPhone Backup Analyzer 2
Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
Organizzazione dei file
I file contenuti nel backup sono divisi in domini, ovveroraggruppamenti logici di contenuti. In iOS 5, i domini sono:
I AppDomain: dati delle applicazioni non di sistema.
I CameraRollDomain: contenuto della galleria fotografica.
I HomeDomain: dati delle applicazioni di sistema.
I KeychainDomain: dati relativi al portachiavi.
I ManagedPreferencesDomain: vuoto.
I MediaDomain: elementi multimediali non legati allafotocamera (ad es. allegati degli SMS).
(continua)
Dott. Mario Piccinelli [email protected]
iPBA 2 - iPhone Backup Analyzer 2
Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
Organizzazione dei file
(continua)
I MobileDeviceDomain: provisioning profiles.
I RootDomain: dati di cache della geolocalizzazione.
I SystemPreferencesDomain: configurazione dei componenticore di iOS.
I WirelessDomain: configurazione della parte telefonica deldispositivo.
Gli elementi del dominio delle applicazioni sono a loro volta divisiin sottodomini, uno per ciascuna applicazione.
Dott. Mario Piccinelli [email protected]
iPBA 2 - iPhone Backup Analyzer 2
Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
Organizzazione dei file
Dott. Mario Piccinelli [email protected]
iPBA 2 - iPhone Backup Analyzer 2
Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
Decodifica dei nomi
La prima fase dell’analisi e ricostruire il legame tra il nome filereale (dominio - dottodominio - path - filename - ext) e il nomeeffettivo nel backup (stringa esadecimale di 40 caratteri).
I dati reali sono contenuti nel file Manifest.mbdb, il nome effettivosi ricava calcolando l’hash SHA1 del reale, nella forma:
domain-subdomain-path/name
⇓SHA1nome effettivo
Dott. Mario Piccinelli [email protected]
iPBA 2 - iPhone Backup Analyzer 2
Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
Struttura file MBDB
Header Record Record Record
"mbdb\5\0"uint8[6]
Domainstring
Pathstring
Link Targetstring
Data Hashstring
unknownstring
Perm.uint16
unknownuint32
unknownuint32
User IDuint32
Group IDuint32
m. timeuint32
a. timeuint32
c. timeuint32
File sizeuint64
Flaguint8
Property countuint8
Property Property
Namestring
Valuestring
Dott. Mario Piccinelli [email protected]
iPBA 2 - iPhone Backup Analyzer 2
Outline
Presentazione
iOS Backup
iPBA - Features
iPBA 2 - Plugins
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 [email protected]
iPBA 2 - iPhone Backup Analyzer 2
Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
Schermata principale
Dott. Mario Piccinelli [email protected]
iPBA 2 - iPhone Backup Analyzer 2
Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
Visualizzatore di file PLIST
Analisi del contenuto del file Manifest.plist.
Dott. Mario Piccinelli [email protected]
iPBA 2 - iPhone Backup Analyzer 2
Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
Visualizzatore di immagini
Preview, dati EXIF, informazioni file.
Dott. Mario Piccinelli [email protected]
iPBA 2 - iPhone Backup Analyzer 2
Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
Visualizzatore di database SQLite3
Visualizzazione del database del log chiamate.
Dott. Mario Piccinelli [email protected]
iPBA 2 - iPhone Backup Analyzer 2
Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
Visualizzatore di file binari in HEX
Visualizzazione esadecimale di un file.
Dott. Mario Piccinelli [email protected]
iPBA 2 - iPhone Backup Analyzer 2
Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
Analisi di una applicazione
Esempio della procedura di reverse engineering del contenuto delbackup di una applicazione.
Caso: nel backup individuo i dati di un’applicazione (RunKeeper,applicazione usata per registrare attivita di jogging) e devoestrarne informazioni utili per una indagine.
Che informazioni mi aspetto di individuare? I dati relativiall’attivita sportiva? Proviamo su un dispositivo di test: installiamol’appplicazione, generiamo dei dati noti e tentiamo di individuarlinel backup di prova.
Dott. Mario Piccinelli [email protected]
iPBA 2 - iPhone Backup Analyzer 2
Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
Analisi applicazione - RunKeeperAnalisi del contenuto del backup. Individuiamo un databaseSQLite contenente una tabella ”trips”.
Dott. Mario Piccinelli [email protected]
iPBA 2 - iPhone Backup Analyzer 2
Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
Analisi applicazione - Runkeeper
Incrociamo i dati contenuti nel database con i dati visualizzati suldispositivo di test, e verifichiamo che le nostre supposizioni sianoconfermate.
start date: 1301423993.75convertito da Unix Epoch: TueMar 29 2011 20:39:53 GMT+2
distance: 4719.983374in chilometri: 4.72 km
elapsed time: 2627.6convertito da secondi a minuti:43.787 minuti = 43:48 minuti
calories: 322
Dott. Mario Piccinelli [email protected]
iPBA 2 - iPhone Backup Analyzer 2
Outline
Presentazione
iOS Backup
iPBA - Features
iPBA 2 - Plugins
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 complessita dei dati nonpermette un’analisi consistente semplicemente analizzando glielementi singoli.
E stato quindi deciso di implementare un sistema modulare,composto da singoli moduli ciascuno specializzato nell’analisi di unarchivio specifico.
Dott. Mario Piccinelli [email protected]
iPBA 2 - iPhone Backup Analyzer 2
Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
Struttura modulareEsempio di complessita: struttura rubrica contatti.
ABPersonROWID
FirstLast...
ABMultiValueUID
record_idproperty
labelvalue
ABMultiValueLabel
ABMultiValueEntryparent_id
keyvalue
ABMultiValueEntryKey
345
22
phone numberemail address
multivalue entry (address)url
ABGroupMembersUID
group_idmember_id
ABGroupROWIDname
ABThumbnailImagerecord_id
data
ABFullSizeImagerecord_id
data
AddressBookImages.sqlitedb
AddressBook.sqlitedb
Sample values for the"property" field of the"ABMultiValue" table
Dott. Mario Piccinelli [email protected]
iPBA 2 - iPhone Backup Analyzer 2
Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
iPBA 2 Plugin - rubrica contatti
Dott. Mario Piccinelli [email protected]
iPBA 2 - iPhone Backup Analyzer 2
Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
iPBA 2 Plugin - elenco chiamate
Dott. Mario Piccinelli [email protected]
iPBA 2 - iPhone Backup Analyzer 2
Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
iPBA 2 Plugin - reti WiFi contattate
Dott. Mario Piccinelli [email protected]
iPBA 2 - iPhone Backup Analyzer 2
Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
iPBA 2 Plugin - cronologia Safari
Dott. Mario Piccinelli [email protected]
iPBA 2 - iPhone Backup Analyzer 2
Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
iPBA 2 Plugin - preferiti Safari
Dott. Mario Piccinelli [email protected]
iPBA 2 - iPhone Backup Analyzer 2
Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
iPBA 2 Plugin - stato Safari
Dott. Mario Piccinelli [email protected]
iPBA 2 - iPhone Backup Analyzer 2
Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
iPBA 2 Plugin - elenco SMS/iMessage
Dott. Mario Piccinelli [email protected]
iPBA 2 - iPhone Backup Analyzer 2
Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
iPBA 2 Plugin - thumbnails
Dott. Mario Piccinelli [email protected]
iPBA 2 - iPhone Backup Analyzer 2
Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
iPBA 2 Plugins
Molti altri plugin, ed altri ancora in sviluppo o in progetto. Traquelli attualmente presenti nella release si citano:
I Skype
I Viber
I Whatsapp
I Informazioni generali sul telefono e sul backup
I Applicativo Note
I Reti WiFi analizzate (range IP, dominio, MAC addressdell’AP)
I ...
Dott. Mario Piccinelli [email protected]
iPBA 2 - iPhone Backup Analyzer 2
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! :-)
I Sviluppo nuovi moduli
I Test/individuazione errori
I Sviluppo nuove funzionalita
I Suggerimenti
I Report di uso in casi pratici
I ...
Dott. Mario Piccinelli [email protected]
iPBA 2 - iPhone Backup Analyzer 2
Presentazione iOS Backup iPBA - Features iPBA 2 - Plugins
Conclusione
Grazie per l’attenzione!Mario Piccinelli
Dott. Mario Piccinelli [email protected]
iPBA 2 - iPhone Backup Analyzer 2