You are on page 1of 82

Techniques de rcupration de messages sur

iOS dans le cadre dune enqute de police

Travail de Bachelor ralis en vue de lobtention du Bachelor HES

par :

La YOUYOU

Conseiller au travail de Bachelor :

David BILLARD

Genve, le 03 Juillet 2015

Haute cole de Gestion de Genve (HEG-GE)

Filire Informatique de Gestion


Dclaration
Ce travail de Bachelor est ralis dans le cadre de lexamen final de la Haute cole de
gestion de Genve, en vue de lobtention du diplme dinformaticienne de gestion.
Ltudiante a envoy ce document par email l'adresse remise par son conseiller au
travail de Bachelor pour analyse par le logiciel de dtection de plagiat URKUND, selon
la procdure dtaille lURL suivante : http://www.urkund.fr/student_gorsahar.asp.
Ltudiante accepte, le cas chant, la clause de confidentialit. L'utilisation des
conclusions et recommandations formules dans le travail de Bachelor, sans prjuger
de leur valeur, n'engage ni la responsabilit de l'auteur, ni celle du conseiller au travail
de Bachelor, du jur et de la HEG.

Jatteste avoir ralis seule le prsent travail, sans avoir utilis des sources autres que
celles cites dans la bibliographie.

Fait Genve, le 03 Juillet 2015

La YOUYOU

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La i
Remerciements

Je souhaiterais avant tout remercier la Haute Ecole de Gestion ainsi que les professeurs
mayant soutenue durant ces deux annes de formations.

Je tiens, tout particulirement, remercier Monsieur David Billard qui a suivi lavanc de
mon travail de Bachelor, du dbut la fin. Je le remercie pour sa disponibilit, sa
patience ainsi que ses encouragements durant ce travail. Il a su me fournir de prcieux
conseils qui mont permis de progresser tout au long du travail de Bachelor.

Enfin, jaimerais remercier mes proches, ma famille et mes amis, qui ont su me soutenir
durant la ralisation de mon mmoire.

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La ii
Rsum
La croissance du nombre dappareils connects est en net progression depuis quelques
annes. En effet, quils sagissent de smartphones ou de tablettes, lappareil tactile fait
partie intgrante de notre quotidien. Cest celui que lon noublie jamais. Ds le rveil
mais galement pendant une pause, midi ou le soir, nous sommes entrs dans une
aire o la connexion est devenue indispensable. Rester connect avec le monde est
devenu une ncessit pour la grande majorit des personnes. Ce phnomne se ralise
notamment par lenvoi de messages assez rgulier.
Auparavant la vocation dun message tait assez minimale ; il sagissait dun mode de
transmission permettant dinformer la personne quelle avait reu un message vocal.
Lorientation du message a pris un tournant radical, il est devenu un des moyens de
communication le plus utilis de par sa rapidit et son cot (seul une connexion wifi suffit,
disponible gratuitement).
Et pour cause, le nombre de messages envoys est devenu impressionnant. En effet,
daprs les statistiques de planetoscope , chaque seconde, 200'000 SMS sont
envoys travers le monde.

Figure 1 : Statistique du nombre de SMS envoys dans le monde en 2008 et


2010

Nombre d'SMS envoys travers le monde


7E+12

6E+12

5E+12

4E+12

3E+12

2E+12

1E+12

0
2008 2010

(Planetoscope, 2015)

La rflexion nest plus autant pose avant lenvoi dun message.


Les consquences de ce phnomne ? Dune part, les donnes stockes sur lappareil
sont de quantit plus importante mais galement la volont de supprimer certains
messages, que nous ne souhaitons plus conserver pour une raison ou pour une autre,
est prsente.

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La iii
Table des matires
Dclaration......................................................................................................... i

Remerciements ................................................................................................ ii

Rsum ............................................................................................................ iii

Liste des tableaux .......................................................................................... vii

Liste des figures............................................................................................. vii

1. Introduction ................................................................................................ 1

2. Contexte ..................................................................................................... 2

2.1 Base de donnes.......................................................................................... 2

2.1.1 SQLite, moteur de base de donnes embarqu ...................................... 2

2.1.2 Fichier SQLite ......................................................................................... 3

2.1.3 Gestion des erreurs................................................................................. 6

3. Message sur iOS ........................................................................................ 9

4. Sauvegarde .............................................................................................. 10

4.1 Techniques ..................................................................................................10

4.1.1 ICloud ....................................................................................................10

4.1.2 Applications............................................................................................11

4.1.3 Ordinateur ..............................................................................................12


4.1.3.1 Fonctionnement de la sauvegarde .............................................................. 12
4.1.3.2 Emplacement de stockage .......................................................................... 13

4.2 Suppression dune sauvegarde .................................................................14

4.3 Encryption ...................................................................................................15

5. Suppression de messages ..................................................................... 16

5.1 Manuelle.......................................................................................................16

5.1.1 Message particulier ................................................................................16

5.1.2 Conversation ..........................................................................................17

5.2 Automatique ................................................................................................18

6. Rcupration de messages .................................................................... 19

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La iv
6.1 Structure de stockage des messages .......................................................19

6.1.1 Fichier sms.db ..................................................................................20


6.1.1.1 Structure du fichier sms.db .................................................................... 20
6.1.1.2 Triggers affects au fichier sms.db ....................................................... 28
6.1.1.3 Visualisation du fichier sms.db .............................................................. 31

6.1.2 Autres fichiers ........................................................................................33


6.1.2.1 Fichier sms.db-wal ................................................................................ 33
6.1.2.2 Fichier sms.db-shm ............................................................................... 33

6.1.3 Autres dossiers ......................................................................................34


6.1.3.1 Dossier Attachments et Parts ...................................................................... 34
6.1.3.2 Dossier Drafts .............................................................................................. 34
6.1.3.3 Dossier EmergencyAlerts ............................................................................ 34

6.1.4 Spotlight .................................................................................................35


6.1.4.1 Gnralits .................................................................................................. 35
6.1.4.2 Fonctionnement interne ............................................................................... 37
6.1.4.3 Fichier SMSSearchindex.sqlite ............................................................. 38
6.1.4.4 Visualisation du fichier SMSSearchindex.sqlite .................................... 38

6.2 Techniques de rcupration des fichiers ..................................................39

6.2.1 Rcupration du fichier sms.db ........................................................39


6.2.1.1 Depuis lordinateur avec une sauvegarde iTunes ....................................... 39
6.2.1.2 Depuis un iPhone jailbreak ........................................................................ 42
6.2.1.2.1 Par le biais dun tweak .......................................................................... 43
6.2.1.2.2 En ligne de commande par le biais dune connexion SSH................... 44
6.2.1.2.3 Via un programme en utilisant une connexion SSH ............................. 47

6.2.2 Rcupration des autres fichiers et dossiers ..........................................48

7. Procds disponibles sur iTunes .......................................................... 49

7.1 Sauvegarde iTunes .....................................................................................49

7.2 Synchronisation ..........................................................................................49

8. Restauration............................................................................................. 50

8.1 Sans reprise dune sauvegarde existante .................................................50

8.1.1 Via le logiciel iTunes ..............................................................................50

8.1.2 Via lappareil ..........................................................................................50

8.2 Avec reprise dune sauvegarde existante .................................................51


Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La v
9. Exploitation des fichiers rcuprs ....................................................... 52

9.1 Mcanisme de suppression dun enregistrement .....................................52

9.2 Structure dun freeblock .............................................................................53

10. Tests effectus ........................................................................................ 54

10.1 Analyse des tests aprs suppressions .....................................................54

10.1.1 Effacer un SMS envoy d'une conversation ..............................................55


10.1.1.1 Enregistrement rcupr via recovered records ........................................ 56
10.1.1.2 Enregistrement rcupr via blocks contening deleted data ...................... 58

10.1.2 Effacer un iMessage reu d'une conversation ...........................................62

10.1.3 Rsultats des tests aprs suppressions ..............................................64

10.2 Analyse des tests aprs restaurations ......................................................65

10.3 Analyse des tests avec encryption ............................................................65

10.4 Constats.......................................................................................................65

11. Logiciels existants de rcupration de messages ............................... 66

12. Utilisation dapplications tierces ............................................................ 66

13. Logiciels tests ........................................................................................ 67

Conclusion...................................................................................................... 70

Webographie .................................................................................................. 71

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La vi
Liste des tableaux
Tableau 1 : Dictionnaire de donnes de la table Attachement .....................................21
Tableau 2 : Dictionnaire de donnes de la table Chat .................................................22
Tableau 3 : Dictionnaire de donnes de la table Chat_handle_join .............................24
Tableau 4 : Dictionnaire de donnes de la table Chat_message_join ..........................24
Tableau 5 : Dictionnaire de donnes de la table Handle ..............................................25
Tableau 6 : Dictionnaire de donnes de la table Message_attachement_join ..............25
Tableau 7 : Dictionnaire de donnes de la table Message...........................................26
Tableau 8 : Comparaison des quatre premiers octets (premier test) ...........................60
Tableau 9 : Comparaison des quatre premiers octets (second test) ............................63
Tableau 10 : Rsultats des tests effectus sur lappareil aprs suppressions..............64
Tableau 11 : Tests effectus sur lappareil non jailbreak aprs restaurations ............65
Tableau 12 : Analyse des outils tests ........................................................................67

Liste des figures


Figure 1 : Statistique du nombre de SMS envoys dans le monde en 2008 et 2010 .... iii
Figure 2 : Rsultat du sondage concernant la suppression dfinitif des messages ...... 1
Figure 3 : SQLite, Modle embarqu ............................................................................ 2
Figure 4 : Structure simplifie du fichier principal sms.db ....................................... 3
Figure 5 : Structure dune page de type B-Tree ............................................................ 4
Figure 6 : Structure dune cellule contenue dans une page feuille ................................ 5
Figure 7 : Etat initial dune base de donnes SQLite .................................................... 7
Figure 8 : Modification dune page................................................................................ 8
Figure 9 : Validation dune transaction.......................................................................... 8
Figure 10 : Sauvegarde iCloud sur iOS .......................................................................11
Figure 11 : Sauvegarde via le logiciel iTunes ..............................................................12
Figure 12 : Exemple dun dossier de sauvegarde iTunes sur Windows 7 ....................13
Figure 13 : Suppression dune sauvegarde .................................................................14
Figure 14 : Chiffrer une sauvegarde iTunes ................................................................15
Figure 15 : Suppression dun ou plusieurs message(s) ...............................................16
Figure 16 : Suppression dune ou plusieurs conversations ..........................................17
Figure 17 : Suppression automatique ..........................................................................18
Figure 18 : Bases de donnes contenants des messages ...........................................19
Figure 19 : Rsultat de la requte de conversion dune date .......................................27
Figure 20 : Diagramme de classe de la base de donnes sms.db .........................32

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La vii
Figure 21 : Recherche de messages via Spotlight .......................................................35
Figure 22 : Configuration de Spotlight .........................................................................36
Figure 23 : Mcanisme dindexation de Spotlight ........................................................37
Figure 24 : Diagramme de classe de la base de donnes SMSSearchindex.sqlite 38
Figure 25 : Visualisation du fichier de sauvegarde avec SQLite Expert Personal .......41
Figure 26 : Base de donnes via iFile .........................................................................43
Figure 27 : Activation de SSH sur iPhone jailbreak....................................................44
Figure 28 : Fentre de configuration de PuTTY ...........................................................45
Figure 29 : Fentre DOS de PuTTY ............................................................................46
Figure 30 : Logiciel FileZilla .........................................................................................48
Figure 31 : Rinitialiser le contenu de lappareil ..........................................................50
Figure 32 : Processus de suppression dun message..................................................52
Figure 33 : Structure dun freeblock .............................................................................53
Figure 34 : SMS supprims pour le test de rcupration via recovered records ..........55
Figure 35 : Analyse de donnes pour base de donnes importante ............................56
Figure 36 : Aprs import du fichier sms.db dans Oxygen Forensic SQLiteViwer....56
Figure 37 : Rcupration du SMS supprim ................................................................57
Figure 38 : SMS supprim pour le test de rcupration via Blocks contening deleted
data ..........................................................................................................................58
Figure 39 : SMS sous format hexadcimal et textuel avant suppression .....................59
Figure 40 : SMS sous format hexadcimal et textuel aprs suppression .....................60
Figure 41 : Visualisation du message avant suppression ............................................61
Figure 42 : Identification des informations rcupres .................................................61
Figure 43 : iMessage sous format hexadcimal et textuel avant suppression ..............62
Figure 44 : iMessage sous format hexadcimal et textuel aprs suppression..............62

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La viii
1. Introduction
Les appareils connects tels que les smartphones ou tablettes font lobjet
dinvestigations relatives la commission dune infraction. Ces examens sont raliss
par la police judiciaire lors dune enqute.
Le message est un moyen de communication devenu primordial et efficace entre
individus. Par consquent, le Short Message Service, abrvi SMS ou encore
liMessage, service propos par Apple, permettent la police judiciaire la rsolution
denqutes.
Aprs sondage effectu sur 47 participants, nous constatons aujourdhui que la majorit
des personnes (34) pensent quun message supprim sur un appareil nest pas
dfinitivement efface de ce dernier.

Figure 2 : Rsultat du sondage concernant la suppression dfinitif des messages

Pensez-vous que les messages effacs de votre


appareil sont dfinitivement supprims?
40

35

30

25

20

15

10

0
oui non

(Sondage)

En effet, la suppression physique est une tche trop complique grer, par consquent
les messages sont effacs de manire logique.
A Genve, la grande majorit de ces appareils sont des produits Apple (iPhone, iPad ou
iTouch). Ainsi, lors de la ralisation de mon travail de Bachelor dans le cadre de ma
formation dinformaticienne de gestion, le sujet concernera le systme dexploitation
mobile iOS, donc les techniques de rcupration de messages sur un iPhone dans le
cadre dune enqute de police.

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 1
2. Contexte
Les donnes sur iPhone sont stockes sur une mmoire de type flash (petite puce
lectronique). La marque la pomme utilise la mmoire flash de type NAND puisque ce
type de mmoire est rapide et cote moins cher.

2.1 Base de donnes


2.1.1 SQLite, moteur de base de donnes embarqu
La base actuellement utilise sur iOS est SQLite, il sagit dun moteur de base de
donnes embarqu et extrmement lger.

Le systme de gestion de base de donnes est directement intgr lapplication,


contrairement au schma habituel client/serveur utilis par la majorit des systmes de
gestion de base de donnes (MySQL par exemple).

La bibliothque et son code source sont open source , cest--dire quils peuvent tre
utiliss sans restriction.

Ainsi, les donnes telles que les messages ou encore les contacts sont stockes dans
des bases de donnes de type SQLite.

Figure 3 : SQLite, Modle embarqu

Espace application

Application

SQLite

Donnes

(Wikipdia, SQLite)

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 2
2.1.2 Fichier SQLite
Avant tout, il est important de dcrire la structure de la base de donnes.

La base contient un fichier principal (.db) ainsi que deux fichiers (-wal et shm) crs
automatiquement ds la cration de la base de donnes (.db).

Le format de fichier de donnes qui est utilis est de type SQLite. Cest--dire que les
donnes sont stockes dans des fichiers dont le langage est SQL.

Le fichier principal (sur la Figure 4, il sagit du fichier sms.db ) est divis en plusieurs
pages (terme donn par SQLite) de taille fixe. Ces pages sont numrotes partir
de 1 par SQLite. Chaque page a un rle, par exemple : contenir des informations sur la
structure de la base de donnes, contenir les donnes elles-mmes etc.

Les 100 premiers octets du fichier principal (dans la premire page) dfinissent et
dcrivent la base de donnes.

Figure 4 : Structure simplifie du fichier principal sms.db

1 Page 1

2 Page 2

3 Page 3

(Daprs les explications de SQLite, The SQLite Database File Format)

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 3
Les pages que nous allons tudier dans le cadre de la rcupration de messages sont
les pages de type B-Tree, celles qui contiennent les donnes.
Les pages B-Tree peuvent tre composes de page :

Interne : contenant des pointeurs vers dautres pages internes ou autre pages de
type B-Tree

Feuille : contenant des donnes

Racine : page unique

Comme nous pouvons lobserver sur Figure 5 qui est un exemple de structure dune
page de type B-Tree.
Figure 5 : Structure dune page de type B-Tree

Page racine

Page interne Page interne

Page interne Page interne Page feuille Page feuille

Page feuille Page feuille

(Daprs les explications de SQLite, The SQLite Database File Format)

Pour donner un exemple concret, la table Message (que nous analyserons plus tard) de
la base de donnes sms.db est une page de type B-Tree compose dune ou
plusieurs pages.
La page racine de la table Message aura un pointeur vers un certain nombre de page(s)
feuille(s) si la table est petite. En revanche, si la table contient un grand nombre de
donnes, la page racine aura un pointeur sur une ou plusieurs pages internes qui
pointera (ont) leur tour soit sur une ou plusieurs page(s) interne(s) soit sur une page
feuille.
Le nombre de pages utilises par la table peut varier en fonction des modifications
apportes la base.
Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 4
Voici la structure dune cellule dune page feuille, ces cellules sont importantes car il
sagit des cellules contenant les donnes enregistres.

Figure 6 : Structure dune cellule contenue dans une page feuille

Taille de Identifiant de
Taille de lentte Donne 1 Donne N
la cellule lenregistrement

Entte de la cellule Entte de lenregistrement Zone denregistrement


des donnes

Taille de la cellule

(Daprs les explications de SQLite, The SQLite Database File Format)

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 5
2.1.3 Gestion des erreurs
Dans la version prcdant la 3.7.0 dSQLite, le moteur SQLite utilisait un mcanisme
dont le nom tait RollBack Journals lui permettant de traiter les erreurs survenant
lors de lutilisation de la base de donnes.
Ainsi, lors dune modification sur une page de la base de donnes, la page entire tait
sauvegarde avant modification dans un fichier de journal distinct.

Si la transaction se droulait correctement (checkpoint), le fichier de journal distinct tait


supprim. Dans le cas contraire, le fichier tait conserv et lorsque SQLite voulait y
accder et trouvait quun fichier de journal tait prsent, cela signifiait quil y avait eu un
problme. Par consquent, le moteur se serait charg de restaurer la base son tat
prcdent en utilisant le fichier de journal distinct.

Sur SQLite, depuis la version 3.7.0, un nouveau mcanisme appel Whrite Ahead Log,
a t introduit, dont labrviation est WAL.

A la place de sauvegarder les pages originales avant la modification, les modifications


(par exemple : suppression dun message) sont directement effectues.
Les modifications qui ont t effectues sont crites dans un fichier spar (WAL) qui
est automatiquement cr (en mme temps que la base de donnes). Les pages
modifies restent dans le fichier WAL. Le moteur de la base de donnes lira les donnes
depuis le WAL, jusqu ce quil y ait un checkpoint.
Lors dun checkpoint, le moteur copiera les pages du fichier WAL vers le fichier de base
de donnes principal.

Le checkpoint peut avoir lieu automatiquement lorsque la taille du fichier sms.db-wal


atteint une certaine taille (par dfaut 1000 pages) ou lors dune commande SQL
manuelle (wal_checkpoint PRAGMA;) ou encore par le biais dun programme si une
application accde lAPI interne du moteur SQLite.

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 6
Afin de mieux visualiser le mcanisme, voici quelques figures.

Sur la Figure 7, nous constatons quil ny a aucune page dans le WAL. Il sagit de ltat
initial.

Figure 7 : Etat initial dune base de donnes SQLite


Fichier de base de Write Ahead Log (WAL)
donnes

Page 1

Page 2

Page 3

(Daprs les explications de SQLite, The SQLite Database File Format)

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 7
Sur la Figure 8, la page 2 est modifie. La page 2 modifie est crite dans le WAL
(Nouvelle Page 2). Le moteur de base de donnes utilise cette nouvelle version
(modifie) et non lancienne version (qui est ignore) dans le fichier de base de donnes.

Figure 8 : Modification dune page


Fichier de base de Write Ahead Log (WAL)
donnes

Page 1 Nouvelle Page 2

Ancienne Page 2
(ignore par le moteur de
base de donnes)

Page 3

(Daprs les explications de SQLite, The SQLite Database File Format)

Lors dune validation de transaction (opration checkpoint), la version modifie de la


page qui tait dans le WAL est crite dans le fichier de base de donnes.

Figure 9 : Validation dune transaction


Fichier de base de
Write Ahead Log (WAL)
donnes

Nouvelle Page 2
Page 1 (ignore par le moteur de
base de donnes)

Les pages modifies sont crites


dans le fichier de base de donnes
Nouvelle Page 2
(Fichier principal)

Page 3

(Daprs les explications de SQLite, The SQLite Database File Format)

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 8
3. Message sur iOS
Tout dabord nous allons lister les diffrents types de messages que nous pouvons
retrouver sur un appareil iOS. Nous avons la possibilit denvoyer des messages via
lapplication Message inhrente lappareil iOS.
Voici la liste du type de messages que nous retrouvons :
SMS (Couleur verte)
iMessages (Couleur bleue) introduits partir de la version 5 diOS
Photo
Vido
Partitions audio
Mais nous pouvons galement envoyer des messages via des applications telles que
Whatsapp ou Viber.
Dans le cadre de ce travail, les SMS et les iMessages seront les types de messages que
nous analyserons.

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 9
4. Sauvegarde
La sauvegarde est une fonctionnalit importante dans le cadre de la rcupration de
message. Il sagit dune mesure ncessaire pour viter que les donnes ne soient
corrompues, endommages ou perdues. Cette dernire permet de prvoir l'imprvisible.
En effet, tout support de stockage peut tout moment tomber en panne et une erreur
humaine peut galement subvenir tout moment (modification ou suppression par
accident).

4.1 Techniques
Il existe diffrentes mthodes de sauvegarde et il est possible de combiner ces
dernires.

4.1.1 ICloud
Sur les appareils, 5 gigas despace de stockage sont fournis gratuitement par lentreprise
lors de linscription iCloud. Il sagit dun service de cloud computing propos par
Apple.

La sauvegarde iCloud se fait automatiquement lorsque lappareil est connect un


rseau Wifi. Le logiciel iTunes nest donc pas ncessaire (bien quil soit galement
possible de leffectuer partir de ce dernier, le temps de sauvegarde sera moins long).

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 10
ICloud permet, non seulement, la sauvegarde automatique dachats effectus dans les
stores Apple mais galement, celle des photos, vidos, rglages, donnes des
applications, lorganisation des applications, les sonneries, la messagerie vocale visuelle
ainsi que les iMessages et SMS prsents sur lappareil.

Figure 10 : Sauvegarde iCloud sur iOS

4.1.2 Applications
Les sauvegardes peuvent galement seffectuer par le biais de logiciel tel que
MobileTrans. Il sagit dapplications de sauvegarde disponibles sur plusieurs systmes
dexploitation permettant une sauvegarde manuelle des donnes dun appareil iOS.
Ainsi, lutilisateur peut sauvegarder ses applications, contacts, messages, fichiers audio,
vidos, photos etc.

Nous avons analys les mthodes de sauvegarde pour les appareils non jailbreaks
(craqus). Mais lorsque lappareil est jailbreak, il existe des applications telles que
PKGBackup ou AptBackup permettant deffectuer une sauvegarde.

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 11
4.1.3 Ordinateur
4.1.3.1 Fonctionnement de la sauvegarde
Il sagit ici de sauvegardes dites manuelles car lutilisateur doit brancher lappareil
lordinateur et effectuer la sauvegarde via le logiciel iTunes.

La sauvegarde iTunes comprend les contacts, les calendriers, les notes, lhistorique des
appels, les mmos vocaux, les achats sur les stores Apple, les photos et vidos
prsentes sur lappareil. Cette dernire comprend galement les rglages, les donnes
ainsi que lorganisation des dapplications, les sonneries ainsi que les iMessages et les
SMS.

Figure 11 : Sauvegarde via le logiciel iTunes

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 12
4.1.3.2 Emplacement de stockage
Lemplacement de stockage des donnes de sauvegarde dpend du systme
dexploitation. Les donnes sont stockes dans un dossier dont le nom est compos de
chiffres et de lettres comme sur la Figure 12.

Figure 12 : Exemple dun dossier de sauvegarde iTunes sur Windows 7

Voici les emplacements pour les systmes dexploitation les plus utiliss :
MAC OS :
~/Bibliothque/Application Support/MobileSync/Backup/
Le signe ~ reprsente votre dossier de dpart.
Windows Vista, 7 et 8 :
\Utilisateurs\(nom dutilisateur)\AppData\Roaming\Apple
Computer\MobileSync\Backup\
AppData est un dossier cach, il faut donc faire afficher les fichiers, dossiers et
lecteurs cachs pour y accder.
On peut galement y accder directement en cliquant sur Dmarrer, en
saisissant %appdata% dans la barre de recherche et entrer.
Windows XP:
\Documents and Settings\(nom dutilisateur)\Application Data\Apple
Computer\MobileSync\Backup\
Pareil que pour Windows vista, 7 et 8 pour les accs directs.

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 13
4.2 Suppression dune sauvegarde
Il est simple deffacer une sauvegarde effectue avec iCloud ou iTunes (ordinateur) sans
connecter lappareil.
Mac OS :
Cliquer sur iTunes Prfrences Appareils Slectionner la sauvegarde
supprimer Cliquer sur Supprimer la sauvegarde
Windows :
Cliquer sur dition Prfrences Appareils Slectionner la sauvegarde
supprimer Cliquer sur Supprimer la sauvegarde

Dans la fentre des prfrences, le nom de lappareil saffiche, ainsi que la date et lheure
auxquelles la sauvegarde a t cre.

Figure 13 : Suppression dune sauvegarde

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 14
4.3 Encryption
Le logiciel iTunes permet de chiffrer la sauvegarde que ce soit pour la mthode de
sauvegarde iCloud ou ordinateur et sur nimporte quel systme dexploitation, ce qui
rend son accs plus compliqu dans le cadre dune enqute.

Dans le cas o le mot de passe est oubli, il sera difficilement possible de restaurer les
donnes de la sauvegarde.

Figure 14 : Chiffrer une sauvegarde iTunes

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 15
5. Suppression de messages
Il y a deux manires de supprimer des messages sur un iPhone. En effet, lutilisateur
peut supprimer manuellement un ou plusieurs messages mais galement activer loption
de suppression automatique.

5.1 Manuelle
5.1.1 Message particulier
Sur les iPhones, Apple nous offre la possibilit de supprimer un ou plusieurs messages
(SMS ou iMessages) de notre conversation (voir Figure 15). Pour cela, il faut simplement
slectionner la conversation, puis slectionner (clic long) le message supprimer, des
options apparaissent :

Copier : Permettant de copier le message

Option : Permettant de slectionner le ou les messages supprimer (comme


sur limage ci-dessous). En cliquant sur la petite corbeille, une confirmation de la
suppression du ou des messages nous sera demande.

Figure 15 : Suppression dun ou plusieurs message(s)

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 16
5.1.2 Conversation
Dans cette mthode, il suffit de slectionner la ou les conversations supprimer, puis
cliquer sur le bouton rouge supprimer .

Figure 16 : Suppression dune ou plusieurs conversations

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 17
5.2 Automatique
Comme nous lavons voqu prcdemment, il est possible de supprimer
automatiquement les messages en activant loption de suppression.

Pour cela, il faut se rendre dans les rglages, slectionner messages puis se rendre
dans la partie Historique des messages , on se retrouve sur loption garder les
messages .

Il est possible de choisir entre 3 possibilits : supprimer les messages de plus de 30


jours ou de plus dun an ou choisir de les garder indfiniment.

Figure 17 : Suppression automatique

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 18
6. Rcupration de messages
Avant de prsenter les diffrentes techniques possibles de rcupration de messages,
il est important danalyser la structure de la base de donnes o sont stocks les
messages. Cest ce que nous ferons dans un premier temps.

6.1 Structure de stockage des messages


Les messages sont contenus dans diffrents fichiers de type SQLite sur lappareil iOS.
Il ne sagit donc pas dune seule base de donnes contenant les messages. Il sagira,
dans un premier temps, de dterminer o sont situs ces fichiers et quoi servent-ils.

Puis, comment rcuprer ces fichiers.

Les messages sont contenus dans les fichiers suivants :

Sms.bd
Sms.db-shm
Sms.db-wal
SMSSearchindex.sqlite
SMSSearchindex.sqlite-shm
SMSSearchindex.sqlite-wal

La Figure 18 permet de visualiser les bases de donnes ainsi que les fichiers qui les
composent.

Figure 18 : Bases de donnes contenants des messages

Base de donnes Message Base de donnes Spotlight

Sms.bd Sms.db-shm Sms.db-wal SMSSearchi SMSSearchi SMSSearchi


ndex.sqlite ndex.sqlite- ndex.sqlite-
shm wal

(Daprs les explications de SQLite, The SQLite Database File Format)

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 19
6.1.1 Fichier sms.db
Sur iOS, le fichier principal contenant les messages sappelle sms.db .

La structure du fichier a volu au cours des mises jour quApple a effectu sur iOS.
En effet, auparavant il excitait dans la table Message un attribut nomm flags . Il
sagissait dun entier permettant de connaitre ltat du message (lorsque lenregistrement
tait supprim la valeur de lattribut flag tait 129).

Le fichier sms.db que nous allons tudier se base sur la version 7.1.2 diOS.

De plus, dans le cadre de ce travail, une comparaison avec la version 8.3 de la structure
du fichier sms.db a t effectue. Cette comparaison ne montre aucune diffrence.

Nous allons commencer par analyser la structure du fichier.

6.1.1.1 Structure du fichier sms.db


_SqliteDatabaseProperties : La table contient deux colonnes : key et value, qui
contiennent des informations gnrales de configuration telles que :

counter_out_all : Le nombre de messages sortants depuis la dernire


rinitialisation du compteur

counter_out_lifetime : Le nombre de messages sortants depuis toujours

counter_in_all : Le nombre de messages entrants depuis la dernire


rinitialisation du compteur

counter_in_lifetime : Le nombre de messages entrants depuis toujours

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 20
Attachement : La table comporte des informations relatives aux pices jointes envoyes
ou reues.

Tableau 1 : Dictionnaire de donnes de la table Attachement

Nom de la colonne Description

ROWID Cl primaire de la table Attachement

Guid Correspond au nom du sous dossier dans le dossier


Attachements

Create_date La valeur est un entier correspondant la date de cration

Strart_date Correspond la date de dbut quand il y a des vidos. La


valeur est 0 lorsquil ny a rien

Filename Correspond au nom du fichier complet (avec le chemin)

Uti La valeur est soit public.jpeg soit public.vcard soit


public.3gpp soit com.apple.quicktime-movie

Mime_type La valeur est soit image/jpeg soit image/png soit


text/vcard soit text/x-vCard soit video/3gpp soit
video/quicktime

Transfer_state La valeur est toujours 5

Is_outgoing Sil sagit dune pice jointe reue la valeur est 0. Pour
une pice jointe envoye, la valeur est 1

Transfer_name Il sagit du nom de la pice jointe

Total_bytes Il sagit de la taille de la pice jointe

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 21
Chat : Cette table correspond aux conversations. Chaque conversation est unique et
comprend un ou plusieurs messages (voir table Tableau 7).

Tableau 2 : Dictionnaire de donnes de la table Chat

Nom de la colonne Description

ROWID Cl primaire de la table Chat

Guid Il sagit de la mme valeur que chat_identifier de cette


mme table, mais avec le type de service (SMS ou
iMessage) suivi dun '-' (par exemple : iMessage ;- ;
exemple@outlook.com)

Style Les valeurs connues sont 45 ou 43 lorsque le message


est vide (valeur de la colonne text dans la table
Message NULL) ou quil sagit de messages
automatique (par exemple : rpondeur vous informant
quun correspondant chercher vous joindre)

State Les valeurs connues sont 3 ou 2 lorsque la valeur de la


colonne account_id dans la table chat est NULL

Account_id Correspond la valeur de la colonne account_id de la


table Message. Sa valeur est NULL lorsque la valeur de
la colonne state dans la table chat est 2

Properties La valeur est NULL pour la deuxime range ou une


bplist

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 22
Chat_identifier Permet dobtenir ladresse mail, un identifiant ou le
numro duquel liMessage ou SMS est envoy ou reu

Service_name Permet dobtenir le type de Message : iMessages ou


SMS. Cette colonne est importante car une ligne (dans la
table chat) est cre en fonction du type de service mme
sil sagit du mme numro. Cest--dire que pour un
numro avec lequel une conversation est cre, si les
messages sont envoys par le service iMessage, un
enregistrement sera cr dans la base de donnes dans
la table chat et si un message de la mme discussion est
envoy via le service SMS, une autre ligne sera ajoute.
On peut penser quil sagit de deux discussions distinctes
alors quil sagit dune mme discussion utilisant deux
modes de transmissions diffrents

Room_name La valeur toujours NULL

Account_login La valeur est soit 'P:' suivie du numro sur lequel le


message est envoy soit E : soit NULL

Is_archived La valeur est toujours 0

Last_addressed_handle La valeur correspond au numro sur lequel le message


est envoy ou NULL

Display_name La valeur est toujours NULL

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 23
Chat_handle_join : Cette table est une table dassociation entre la table Chat et la table
Handle.

Tableau 3 : Dictionnaire de donnes de la table Chat_handle_join

Nom de la colonne Description

Chat_id Cl trangre de la table Chat.ROWID

Handle_id Cl trangre de la table Handle.ROWID

Chat_message_join : Cette table est une table dassociation entre la table Chat et la
table Message.

Tableau 4 : Dictionnaire de donnes de la table Chat_message_join

Nom de la colonne Description

Chat_id Cl trangre de la table Chat.ROWID

Message_id Cl trangre de la table Message.ROWID

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 24
Handle : Cette table fournit un identifiant unique pour chaque numro de tlphone avec
lequel une conversation est cre. Les colonnes ROWID et id sont importantes.

Tableau 5 : Dictionnaire de donnes de la table Handle

Nom de la colonne Description

ROWID Correspond lidentifiant unique pour un numro avec


lequel une conversation est cre

Id Correspond au numro de tlphone associ une


discussion (Chat)

Country Code ISO du pays, par exemple: 'ch' pour la Suisse

Service Permet davoir le type de messages : iMessages ou SMS

Uncanonicalized_id Identifiant du numro

Message_attachement_join : il sagit dune table dassociation faisant la liaison entre


la table Message et la table Attachement.

Tableau 6 : Dictionnaire de donnes de la table Message_attachement_join

Nom de la colonne Description

Message_id Cl trangre de la table Message.ROWID

Attachement_id Cl trangre de la table Attachement.ROWID

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 25
Message : Il sagit de la table o le contenu des messages est stock. En effet, cette
table contient lensemble des messages effacs ou encore prsents sur le tlphone.

Tableau 7 : Dictionnaire de donnes de la table Message

Nom de la colonne Description

ROWID Cl primaire du message

Guid Il sagit de la mme valeur que le Guid dans la table


Attachement

Text Contenu du message reu ou envoy

Replace La valeur est toujours 0

Service_center La valeur est toujours 0 NULL

Handle_id Correspond au ROWID de la table Handle, nous


permettant ainsi de faire la correspondance avec le
numro. La valeur est NULL si ce nest ni un iMessage
ni un numro de tlphone dune personne (expditeur ou
destinataire)

Subject Il sagit du sujet d'un message

Country Code ISO du pays (par exemple: 'ch' pour la Suisse)


valeur ou NULL

Version Valeur inconnue

Type La valeur est toujours 0 ou 1

Service Type de message (SMS ou iMessage)

Account Tlphone ou e-mail enregistr avec iMessage, vide sil ne


sagit pas dun iMessage

Account_guid GUID du compte utilis

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 26
Date Date du message en format entier, pour convertir la date
en format date il faut faire une requte SQL

Date_read Valeur entire reprsentant la date de lecture. La valeur


est NULL si le message est envoy depuis un appareil
ayant une version iOS antrieure la 5.0. La valeur est 0
sil sagit dun SMS ou un iMessage reu

Date_delivered NULL si le message est pr-iOS 5.0, 0 si SMS ou


iMessage, une valeur entire reue reprsentant la date
envoye

Is_delivered Valeur correspondante lenvoi ou non dun iMessage. La


valeur est 0 si liMessage nest pas livr et 1 dans le cas
contraire

De nombreux autres attributs sont prsents tels que : is_read, is_prepared, is_sent etc.
en fonction de ce que lon cherche rcuprer.

Requte SQL de conversion dune date de format entier en format date :

Voici un script SQL qui permet de traduire les valeurs de la colonne Date (qui sont
cryptes), voici le script SQL :

SELECT datetime (date + strftime ('%s', '2001-01-01 00:00:00'), 'unixepoch',


'localtime') AS date, * FROM message

Figure 19 : Rsultat de la requte de conversion dune date

Excution de la requte

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 27
6.1.1.2 Triggers affects au fichier sms.db
Certains triggers ont t dfinis sur le fichier sms.db . Ces dclencheurs agissent sur
diffrentes tables de la base de donnes. De plus, le fichier sms.db est mis jour
aprs un certain nombre de suppressions de messages ou conversations.

Table Attachement :

delete_attachment_files : Aprs suppression.

CREATE TRIGGER delete_attachment_files AFTER DELETE ON attachment


BEGIN SELECT delete_attachment_path (old.filename); END;

Table Chat_hangle_join :

clean_orphaned_handles : Aprs suppression.

CREATE TRIGGER clean_orphaned_handles AFTER DELETE ON


chat_handle_join BEGIN DELETE FROM handle WHERE handle.ROWID =
old.handle_id AND (SELECT 1 from chat_handle_join WHERE handle_id =
old.handle_id LIMIT 1) IS NULL AND (SELECT 1 from message WHERE
handle_id = old.handle_id LIMIT 1) IS NULL; END;

Table Message :

clean_orphaned_handles2 : Aprs suppression.

CREATE TRIGGER clean_orphaned_handles2 AFTER DELETE ON message


BEGIN DELETE FROM handle WHERE handle.ROWID = old.handle_id AND
(SELECT 1 from chat_handle_join WHERE handle_id = old.handle_id LIMIT 1)
IS NULL AND (SELECT 1 from message WHERE handle_id = old.handle_id
LIMIT 1) IS NULL; END;

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 28
Table Chat_message_join :

update_message_roomname_cache_insert : Aprs insertion.

CREATE TRIGGER update_message_roomname_cache_insert AFTER


INSERT ON chat_message_join BEGIN UPDATE message SET
cache_roomnames = (SELECT group_concat(c.room_name) FROM chat c
INNER JOIN chat_message_join j ON c.ROWID = j.chat_id WHERE
j.message_id = new.message_id) WHERE message.ROWID =
new.message_id; END;

clean_orphaned_messages : Aprs suppression.

CREATE TRIGGER clean_orphaned_messages AFTER DELETE ON


chat_message_join BEGIN DELETE FROM message WHERE (SELECT 1
FROM chat_message_join WHERE message_id = message.rowid LIMIT 1) IS
NULL; END;

update_message_roomname_cache_delete : Aprs suppression.

CREATE TRIGGER update_message_roomname_cache_delete AFTER


DELETE ON chat_message_join BEGIN UPDATE message SET
cache_roomnames = (SELECT group_concat(c.room_name) FROM chat c
INNER JOIN chat_message_join j ON c.ROWID = j.chat_id WHERE
j.message_id = old.message_id) WHERE message.ROWID = old.message_id;
END;

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 29
Table Message_attachement_join :

set_message_has_attachments : Aprs insertion.

CREATE TRIGGER set_message_has_attachments AFTER INSERT ON


message_attachment_join BEGIN UPDATE message SET
cache_has_attachments = 1 WHERE message.ROWID = new.message_id;
END;

clear_message_has_attachments : Aprs suppression.

CREATE TRIGGER clear_message_has_attachments AFTER DELETE ON


message_attachment_join BEGIN UPDATE message SET
cache_has_attachments = 0 WHERE message.ROWID = old.message_id AND
(SELECT 1 from message_attachment_join WHERE message_id =
old.message_id LIMIT 1) IS NULL; END;

clean_orphaned_attachments : Aprs suppression.

CREATE TRIGGER clean_orphaned_attachments AFTER DELETE ON


message_attachment_join BEGIN DELETE FROM attachment WHERE
attachment.ROWID = old.attachment_id AND (SELECT 1 from
message_attachment_join WHERE attachment_id = old.attachment_id LIMIT 1)
IS NULL; END;

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 30
6.1.1.3 Visualisation du fichier sms.db
Loutil DBeaver Entreprise gnrale permet de visualiser les tables contenues dans
le fichier 3d0d7e5fb2ce288813306e4d4636395e047a3d28, rcupr partir de la
sauvegarde iTunes.

Pour ce faire il faut :

Tlcharger loutil1

Lancer loutil

Crer une nouvelle connexion : Database new connection

Spcifier quil sagit dune base SQLite

Tester la connexion

Valider

Aprs ce processus effectu, il faut faire un clic droit sur Tables , puis slectionner
View Tables .

Un diagramme saffichera avec les tables de la base de donnes et les associations


correspondantes.

En revanche il nest pas dit que les associations soient justes et compltes. Cest pour
cela quil faut les ajuster.

1 Loutil est disponible ladresse suivante : http://dbeaver.jkiss.org/download/#windows

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 31
Aprs analyses et corrections des associations, la base de donnes peut tre visualiser
comme sur la Figure 20.

Figure 20 : Diagramme de classe de la base de donnes sms.db

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 32
6.1.2 Autres fichiers
Sur lappareil, dans le dossier /var/mobile/Library/SMS/ , se trouve galement
dautres fichiers et dossiers. Les fichiers sms.db-shm et sms.db-wal peuvent
contenir des messages supprims. Les fichiers sms.db-shm et sms.db-wal sont
utiliss pour l'indexation ou la recherche et peuvent tre recrs dans le cas o ils
seraient supprims.

Si la base de donnes est mise jour manuellement, il est important de recrer ces
fichiers.

6.1.2.1 Fichier sms.db-wal


Il sagit dun fichier temporaire cr par SQLite partir de la base principale. Le fichier
est situ dans le mme rpertoire que le fichier sms.db . Le wal signifie Write
Ahead Log (en rfrence lexplication : Gestion des erreurs).

Ce fichier est responsable du comportement transactionnel. En effet, il contient les


dernires modifications et sera mis jour ds quil y a une modification de la base de
donnes des messages (par exemple : la suppression dun SMS) avant mme que la
base de donnes principale soit mise jour.

Si ce fichier est supprim, il sera automatiquement recr lors de la cration de la base


sms.db (base principale).

6.1.2.2 Fichier sms.db-shm


Il sagit dun fichier temporaire cr par SQLite partir de la base principale. Le fichier
est situ dans le mme rpertoire que le fichier sms.db . Le shm signifie Shared
Memory .

Si ce fichier est supprim, il sera automatiquement recr lors de la cration de la base


sms.db (base principale).

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 33
6.1.3 Autres dossiers
6.1.3.1 Dossier Attachments et Parts
Les dossiers Attachments et Parts contiennent des sous-dossiers comportant les
pices jointes reues et envoyes depuis lappareil.

Le nom dun sous-dossier est court : il est compos soit de deux chiffres, soit dun chiffre
et une lettre soit de deux lettres.

Le nom de la pice jointe peut tre retrouv partir de la base de donnes dans la table
Attachement . En effet, lattribut Filename dfinit o se trouve le chemin daccs
la pice jointe dans la base.

Comme pice jointe nous pouvons retrouver des contacts (nomDuContact.vcf), des
photos (.jpeg, .png), ou encore des vidos (-movie).

6.1.3.2 Dossier Drafts


Le dossier Draft contient les messages qui ont t saisis puis abandonns. Cest ce
que lon appelle un message brouillon . Le message na pas t envoy mais il est
stock en tant que message brouillon . Ainsi, au moment o lapplication Message
est lance nouveau, on retrouve le message saisi, et ce, mme si lon ferme
lapplication.

Chaque message brouillon est contenu dans un dossier propre. Le contenu textuel
du message ainsi que des informations supplmentaires concernant ce dernier, sont
prsents dans le fichier message.plist situ dans le dossier li au brouillon.

6.1.3.3 Dossier EmergencyAlerts


Le dossier EmergencyAlerts contient un fichier PriorAlerts.plist . Le fichier .plist
contient des donnes et des informations relatives lapplication Message.

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 34
6.1.4 Spotlight
6.1.4.1 Gnralits
Spotlight est un moteur de recherche de fichiers intgr iOS. Ce dernier permet
lutilisateur de rechercher du contenu sur liPhone (messages, articles etc.) en saisissant
ce quil souhaite rechercher dans le champ appropri.

Pour accder cette fonctionnalit il suffit de faire glisser le doigt de haut en bas sur
lcran principal pour afficher le champ de recherche (voir Figure 21).

Figure 21 : Recherche de messages via Spotlight

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 35
Spotlight possde un fonctionnement bien particulier, le moteur de recherche analyse le
contenu prsent sur lappareil et y recherche du texte commenant par le terme saisi
dans la barre de recherche. Spotlight ne respecte pas la casse, donc quil sagisse de
minuscule ou majuscule, les rsultats de la recherche seront identiques.

Concernant la recherche de messages, il sagit du point qui nous intresse ici, Spotlight
recherche du texte spcifique contenu dans les messages et dans le nom ou encore
dans le numro de lexpditeur.

Attention, il est possible que les rsultats naffichent aucun message. Si tel est le cas, il
faut aller dans la configuration de Spotlight sur lappareil (voir Figure 22) et vrifier si les
messages ont t slectionns (prise en compte des messages par le moteur de
recherche).

Aller sur lapplication RglageGnralRecherche Spotlight

Figure 22 : Configuration de Spotlight

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 36
6.1.4.2 Fonctionnement interne
A chaque fois que du contenu est ajout sur lappareil (contacts, messages, etc.), quune
recherche sur Safari est effectue ou encore lors de la rception dun nouvel email,
Spotlight indexe le contenu (par exemple : lors de la rception dun message, voir Figure
23).

Figure 23 : Mcanisme dindexation de Spotlight

Message reu Spotlight Base de donnes


Spotlight

Avertissement Stock dans la


au moteur base de
donnes
Mcanisme
dindexation

(Daprs les explications de Wikipdia, Spotlight)

Ainsi, ds quune recherche est effectue via la barre de recherche Spotlight, le moteur
retrouve le contenu dsir. Par dfaut Spotlight indexe tout (par exemple : tous les mots
des mails, dans les messages via les applications inhrentes lappareil : Mail et
Message). Le moteur de recherche indexe aussi bien les iMessage que les SMS.

Alors malgr la suppression de certains messages et/ou conversations, Spotlight, tant


une base de donnes indpendante, les conserves. Mais lorsque lon essaie d'accder
au message complet, c'est impossible. Ce dernier tant bel et bien effac de la liste des
messages. En revanche lindex quant lui est toujours prsent.

Si on dsactive lindexation, Spotlight conserve en mmoire les anciens messages


auxquels nous pourrons toujours accder.

Spotlight utilise une base de donnes SQLite comme les autres fichiers que nous avons
analyss.

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 37
6.1.4.3 Fichier SMSSearchindex.sqlite
La base de donnes Spotlight est compose du fichier principal
SMSSearchindex.sqlite et de deux autres fichiers lis (-wal et shm) comme pour la
base de donnes sms.db

Le chemin permettant daccder au fichier directement sur lappareil est le suivant :

var/mobile/library/spotlight/com.apple.MobileSMS/SMSSearchindex.sqlite

La base de donnes SMSSearchindex.sqlite est compose de quatre tables :

Z_METADATA : Cette table contient un seul enregistrement. Cette table est utilise par
un framework et possde la configuration des donnes de la base.

Z_PRIMARYKEX : Cette table est utilise par un framework et possde un


enregistrement par table. Pour cette base, il y a donc deux enregistrements pour les
tables ZSPRECORD et ZSPTOPHIT.

ZSPRECORD : Cette table contient les mtadonnes indexes. Dans cette table nous
pouvons retrouver des enregistrements supprims.

ZSPTOPHIT : Cette table tait vide au moment des tests.

6.1.4.4 Visualisation du fichier SMSSearchindex.sqlite


Voici le diagramme de classe nous permettant de visualiser la base de donnes du
fichier SMSSearchindex.sqlite .

Figure 24 : Diagramme de classe de la base de donnes


SMSSearchindex.sqlite

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 38
6.2 Techniques de rcupration des fichiers
Avant toute chose, nous allons commencer par rcuprer les messages contenus dans
les diffrents fichiers. Bien que le format de base de donnes SQLite soit dans
lensemble similaire, les techniques de rcupration des fichiers sur un smartphone
varient en fonction de diffrents paramtres (par exemple : scurit place sur le
smartphone, appareil jailbreak, version du systme dexploitation etc.). Il faut donc
prendre en compte ces variations afin de pouvoir reconstruire les donnes effaces.

6.2.1 Rcupration du fichier sms.db


A prsent, analysons les diffrentes techniques de rcupration du fichier sms.db .
Ce dernier peut se rcuprer par diffrentes techniques :

Par le biais dune sauvegarde iTunes

Physiquement sur liPhone

6.2.1.1 Depuis lordinateur avec une sauvegarde iTunes


Cette technique sapplique nimporte quel type diPhone. Ici, il nest pas obligatoire
davoir un tlphone. En effet, si lon rcupre un ordinateur et que la sauvegarde sy
trouve, il est possible de lexploiter.

Dans le cas contraire, il suffit deffectuer une sauvegarde de lappareil. Il sagit dune des
possibilits de rcupration via le logiciel iTunes (voir Figure 11). En effet, la sauvegarde
iTunes contient le fichier dont le nom est :

3d0d7e5fb2ce288813306e4d4636395e047a3d28

Ce dernier est contenu dans le dossier de sauvegarde iTunes (voir Figure 12).

Petit rappel, selon le systme dexploitation utilis ce fichier est situ dans un rpertoire
diffrent.

Sur MAC OS :

/Users/USERNAME/Library/Application Support/ MobileSync/ Backup/


NOMDOSSIER

Sur Windows :

/Users/USERNAME/AppData/Roaming/Apple Computer/MobileSync/Backup/
NOMDOSSIER

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 39
Une fois le fichier rcupr, il faut le lire. Diffrents outils sont disponibles pour rendre la
lecture de ce fichier facilement comprhensible. En effet, certains sites tels que
smsIphone , proposent de transformer le fichier de sauvegarde, non lisible, en format
PDF, csv etc. Mais il existe galement des logiciels tels que SQLite Expert Personal ,
proposant dimporter le ficher de sauvegarde afin de le rendre lisible pour lutilisateur.
Nous utiliserons cet outil lors de la rcupration de fichiers. Evidemment quel que soit
loutil de visualisation de requtes, les mmes tables seront cres, le fichier contenant
un ensemble de commandes SQL.

Comme nous lavons voqu prcdemment, SQLite Expert Personal est un outil
permettant une meilleure visualisation des donnes contenues dans le fichier de
sauvegarde. Nous allons prsent procder la visualisation des messages.

Dmarche :

Tlcharger loutil SQLite Expert Personal2

Cliquer sur File open database

Rechercher le fichier 3d0d7e5fb2ce288813306e4d4636395e047a3d28

Cliquer sur ouvrir

La base de donnes se cre automatiquement

2 Loutil est disponible ladresse suivante : http://www.sqliteexpert.com/download.html

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 40
Nous obtenons une hirarchie comme celle prsente sur la Figure 25, une base de
donnes avec des tables. Sur loutil, les donnes sont situes dans la colonne Data
de chaque table.

Figure 25 : Visualisation du fichier de sauvegarde avec SQLite Expert Personal

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 41
6.2.1.2 Depuis un iPhone jailbreak
Afin de rcuprer le fichier sur le tlphone directement, il faut quil soit jailbreak.

Le jailbreak est un processus par lequel le systme dexploitation iOS est modifi pour
excuter du code non sign dans le but daccder des fichiers auxquels Apple ne nous
laisse pas accder nativement.

A travers ces modifications, nous pouvons installer des applications non officielles sur
liPhone par le biais de Cydia3.

Pour accder au fichier sms.db , il faut que liPhone soit jailbreak comme nous
lavons dit, deux manires dy accder sont possibles :

Par le biais dun tweak

En ligne de commande par le biais dune connexion SSH

Via un programme en utilisant une connexion SSH

3 Cydia est une application non officielle pour iOS conue par Jay Ryan Freeman, en Open
Source, et donnant accs des applications non signes numriquement par Apple
(Wikipdia)

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 42
6.2.1.2.1 Par le biais dun tweak4
Le paquet iFile disponible sur le store Cydia permet laccs au fichier sms.db . Il suffit
de se rendre sur Cydia, dans rechercher, saisir iFile, installer le tweak.

Aprs linstallation, lancer iFile puis aller dans var/mobile/Library/SMS

La Figure 26 prsente le fichier sms.db comme nous pouvons lobserver.

Figure 26 : Base de donnes via iFile

4 Tweak : paquet Cydia qui apporte une modification au systme iOS (ex : thme ou
modification du systme)

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 43
6.2.1.2.2 En ligne de commande par le biais dune connexion SSH
SSH est un protocole de communication permettant daccder
physiquement liPhone. Pour accder au fichier, il faut tablir une
connexion SSH.

Se connecter en SSH (Secure Shell) sur liPhone :

Phase dinstallation
Sur liPhone il faut :

Se connecter au rseau sans fil (Wifi)

Dsactiver le verrouillage automatique : Il faut que liPhone soit constamment


allum, il faut donc dsactiver le verrouillage automatique

Installer le tweak OpenSSH. Par le biais de lapplication Cydia, il faut aller dans
Rechercher et saisir OpenSSH

Activer SSH en slectionnant licne SSH (licne devient vert une fois activ),
voir Figure 27

Figure 27 : Activation de SSH sur iPhone jailbreak

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 44
Installer le tweak SBSettings : Par le biais de lapplication Cydia, il faut aller dans
Rechercher et saisir SBSettings. Aprs installation, relancer le SpringBoard.

Lancer SBSettings et activer loption SSH

Sur lordinateur il faut :

Tlchargez et installer un client SSH sur ordinateur : PuTTY sur PC ou Fugu sur Mac

Phase de connexion
Dans cette phase il sagit dtablir la connexion entre liPhone et lordinateur.
Sur liPhone :

Se rendre dans Rglages de liPhone Wifi Slectionner le rseau sur lequel


lappareil est connect

Noter ladresse IP (par exemple : 10.0.0.18)

Ladresse est galement disponible directement depuis le gestionnaire prsent dans la


Figure 27 (il sagit de la Wi-Fi IP Address ).

Sur lordinateur :

Ouvrir le logiciel SSH (PuTTY)

Saisir ladresse IP puis cliquer sur open afin douvrir la connexion comme sur
la Figure 28.

Figure 28 : Fentre de configuration de PuTTY

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 45
Une fentre DOS souvre comme sur la Figure 29, saisir root comme nom de login
( login as ) et alpine comme mot de passe ( password ).

Figure 29 : Fentre DOS de PuTTY

Par mesure de scurit, il faut changer le mot de passe de connexion. Pour ce faire il
faut avoir une connexion SSH tablie comme expliqu au-dessus. Une fois la connexion
tablie, saisir dans la fentre DOS de PuTTY (celle de la Figure 29) la commande
passwd , un nouveau mot de passe est demand (minimum 5 caractres). Le valider
en cliquant sur la touche entre du clavier puis confirmer le mot de passe et valider
par la touche entre du clavier.

Le fichier sms.db se trouve dans le dossier SMS ( /var/mobile/Library/SMS/ ).

On accde au dossier travers les commandes linux standards. Pour se dplacer utiliser
la commande cd suivie du chemin.

Copier les fichiers travers une interface en ligne de commande ntait pas toujours
vident, cest pour cela que je me suis tourne vers un autre outil avec une interface
utilisateur. Il sagit de FileZilla, qui requiert galement lutilisation du protocole SSH.

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 46
6.2.1.2.3 Via un programme en utilisant une connexion SSH
Une manire plus facile de rcuprer les fichiers de liPhone est FileZilla.

FileZilla est un client FTP possdant plusieurs fonctionnalits. Ce logiciel permet


notamment de grer des fichiers, dossiers via une interface utilisateur par le biais dune
connexion SSH. A travers ce logiciel, nous pouvons rcuprer diffrents fichiers et
lments prsents sur lappareil tels que les fichiers de base de donnes des messages,
les pices jointes et de nombreux autres lments.

Pour lutilisation de ce programme il faut accomplir quelques manipulations :

Phase dinstallation
Sur liPhone il faut :
Effectuer les mmes manipulations que dans le point En ligne de commande par le
biais dune connexion SSH
Sur lordinateur il faut :

Tlcharger et installer le logiciel disponible sur le site internet de lditeur

Phase de connexion
Dans cette phase il sagit dtablir la connexion entre liPhone et lordinateur afin de
pouvoir rcuprer les lments voulus.
Sur liPhone :

Se rendre dans Rglages de liPhone Wifi Slectionner le rseau sur lequel


lappareil est connect
Noter ladresse IP (par exemple : 10.0.0.20)

Ladresse est galement disponible directement depuis le gestionnaire prsent dans la


Figure 27 (il sagit de la Wi-Fi IP Address ).

Sur lordinateur :

Ouvrir le logiciel FileZilla


Saisir les informations suivantes :

o Hte : adresse IP

o Identifiant : root

o Mot de passe : alpine

o Port : 22

Cliquer sur Connexion rapide afin douvrir la connexion.


Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 47
Linterface du logiciel se prsente comme sur la Figure 30 :

Figure 30 : Logiciel FileZilla

6.2.2 Rcupration des autres fichiers et dossiers


Comme nous lavons analys prcdemment les autres fichiers et dossier intressants
dans le cas dune rcupration de messages sont :

Sms.db-shm
Sms.db-wal
SMSSearchindex.sqlite
SMSSearchindex.sqlite-shm
SMSSearchindex.sqlite-wal

Le logiciel FileZilla (voir Figure 30) permet de rcuprer ces diffrents fichiers prsents
sur lappareil.

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 48
7. Procds disponibles sur iTunes
Le logiciel iTunes permet lutilisateur deffectuer soit une sauvegarde de lappareil (voir
prcdemment :Sauvegarde) soit une synchronisation de celui-ci. Il sagit de deux
processus bien distincts.

7.1 Sauvegarde iTunes


La sauvegarde est une copie des donnes du tlphone. Ainsi, les fichiers de donnes
prsents sur lappareil sont copis dans un fichier de sauvegarde.

Lors du processus lappareil nest, en aucun cas, impact.

7.2 Synchronisation
La synchronisation iTunes est une opration permettant de rendre identiques les
contenus des lments synchroniss entre lordinateur et lappareil.

Cette opration peut se raliser en branchant lappareil lordinateur (par cble USB, de
faon manuelle) ou par le biais dune connexion Wifi (de faon automatique) via le
logiciel iTunes.

Par le biais de cette fonctionnalit, lutilisateur pourra transfrer des musiques, films,
photos etc. depuis lordinateur vers liPhone. En effet, le logiciel iTunes (disponible sur
plusieurs systmes dexploitations) nous permet deffectuer des synchronisations
slectives (nous choisissons ce que nous souhaitons synchroniser).

Il nest pas requis de disposer dun compte iCloud pour effectuer une synchronisation.
Sur le logiciel iTunes, il suffit de slectionner et synchroniser chaque mdia dont on
souhaite une synchronisation (par exemple : synchroniser la musique).

La synchronisation ne ralise en aucun cas une sauvegarde de lappareil. Par


consquent, si lon souhaite conserver les donnes prsentes sur liPhone, il faut
sauvegarder rgulirement les donnes qui sont synchronises. Concernant la premire
synchronisation, il faut donc effectuer une sauvegarde.

Lors du processus le contenu de lappareil est modifi.

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 49
8. Restauration
La restauration sur iOS est un processus qui permet de remettre lappareil son tat
dorigine ou ltat dune sauvegarde existante. Dans le cadre de la rcupration de
messages supprims il est important danalyser les effets dun tel processus sur
lappareil.

8.1 Sans reprise dune sauvegarde existante


Il y a deux manires de remettre lappareil ltat dorigine : via le logiciel iTunes ou
directement depuis lappareil.

8.1.1 Via le logiciel iTunes


Il suffit de brancher lappareil lordinateur, de lancer le logiciel iTunes et de slectionner
restaurer liPhone en tant que nouvelle appareil.

8.1.2 Via lappareil


Le terme nest pas le mme, ici il sagit de rinitialisation des rglages et/ou effacement
du contenu de lappareil.

Pour cela il faut lancer lapplication Rglages puis aller sur Gnral Rinitialiser (voir
Figure 31).

Ainsi, depuis liPhone directement, du contenu peut tre effac.

Figure 31 : Rinitialiser le contenu de lappareil

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 50
8.2 Avec reprise dune sauvegarde existante
Une restauration de lappareil partir dune sauvegarde existante est possible. Quil
sagisse dune sauvegarde iCloud ou local, le procd reste identique.

Il faut pralablement effectuer une sauvegarde (soit iCloud soit local, sur lordinateur),
puis, brancher lappareil lordinateur, lancer le logiciel iTunes et slectionner
restaurer la sauvegarde .

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 51
9. Exploitation des fichiers rcuprs
Prcdemment, nous avons rcupr des fichiers tel que le fichier sms.db , nous
avons pu le lire laide de loutil SQLite Expert Personal (voir Figure 25).

En revanche, les donnes supprimes de lappareil ne sont pas visibles.

Afin dexploiter les donnes des diffrents fichiers que nous avons rcuprs, nous
allons utiliser loutil Oxygen Forensic SQLiteViwer. Il sagit de la version trial 3.0.0.3
(utilisable 30 jours).

Cet outil permet de rcuprer des enregistrements supprims et danalyser les blocks
contenant des donnes supprimes.

9.1 Mcanisme de suppression dun enregistrement


Lors de la suppression dun enregistrement dans la base de donnes, lespace allou
quoccupait le message est libr. Cet espace est dfini comme libre mais le message
supprim est toujours prsent.

Ce nest quau moment o il ny aura plus despace disponible que les nouvelles donnes
seront crites la place du message supprim.

Afin de rcuprer ce message, il faut donc lire lespace dfini comme libr. Cet espace
correspond aux freeblocks

Figure 32 : Processus de suppression dun message

Suppression d'un
enregistrement

Espace libr

Cration d'un
freebock

(Daprs les explications de SQLite, The SQLite Database File Format)

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 52
9.2 Structure dun freeblock
Un freeblock est une structure utilise pour identifier l'espace non allou dans une page
de type B-Tree. Un freeblock est structur comme une chane et a besoin dau moins 4
octets despace.

Les deux premiers octets d'un freeblock sont des entiers dfinissant la position du
prochain bloc disponible (freeblock). La valeur des deux premiers octets est de 00 00 sil
sagit du dernier freeblock de la page.

Les freeblocks sont donc lis mais de taille diffrente.

Les troisime et quatrime octets sont galement des nombres entiers dfinissant la
taille en octet du freeblock.

Figure 33 : Structure dun freeblock

Position du Taille du freeblock


freeblock
prochain freeblock en octet

4 octets dfinissant un Taille du freeblock


freeblock

(Daprs les explications de SQLite, The SQLite Database File Format)

Il arrive parfois que les freeblocks soient fragments, SQLite rorganise donc de temps
en temps la page B-Tree.

Dans les tests suivants nous donnerons un exemple de suppression denregistrement.

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 53
10. Tests effectus
Les tests sont effectus sur le mme appareil mais avec des configurations diffrentes :
selon si liPhone est jailbreak ou non. Si lappareil nest pas jailbreak, les donnes
seront rcupres via une sauvegarde iTunes du tlphone comme vu prcdemment.
Dans le cas contraire, sur le tlphone directement grce au protocole SSH.

Un test dcrit une action que nous effectuons sur lappareil (par exemple : effacer un
SMS reu, d'une conversation).

A prsent, nous allons effectuer diffrents tests nous permettant danalyser le


fonctionnement lors de la suppression de message et lors de restaurations de lappareil.
Puis, nous noterons les constats que nous avons pu dduire de ces manipulations.

10.1 Analyse des tests aprs suppressions


Ici, il sagit deffectuer des tests de suppressions de messages et de conversations afin
dexaminer les donnes que nous parvenons rcuprer.

Nous dtaillerons un des tests effectu afin de comprendre le fonctionnement de la


rcupration de messages supprims.

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 54
10.1.1 Effacer un SMS envoy d'une conversation
Pour ce premier test, nous supprimons les SMS slectionns sur la Figure 34. Aprs
avoir supprim ces SMS nous allons rcuprer le fichier sms.db puis le fichier de
sauvegarde de lappareil afin de tester les deux cas (appareil jailbreak ou non).

Figure 34 : SMS supprims pour le test de rcupration via recovered records

Une fois les fichiers rcuprs, nous utiliserons un outil nous permettant de rcuprer
ces messages. Loutil que nous utiliserons nous donne la possibilit de rcuprer des
enregistrements supprims directement (dans la catgorie recovered records ) et/ou
de les rechercher via la barre de recherche.

En revanche, si on ne trouve pas les messages supprims, il est possible quils soient
contenus dans les blocks disponibles (dans la catgorie Blocks contening deleted
data )

En effet, lors des tests, jai supprim une conversation. Ne layant pas retrouv dans les
recovered records , jai recherch dans les Blocks contening deleted data qui
contenaient le dernier message de la conversation.

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 55
Il arrive parfois quun enregistrement supprim se retrouve dans les deux catgories
( recovered records et Blocks contening deleted data ). Cest aussi pour ces
raisons que nous allons analyser les deux cas.

10.1.1.1 Enregistrement rcupr via recovered records


Nous devons lancer loutil Oxygen Forensic SQLiteViwer et importons, dans un
premier temps le fichier sms.db (voir Figure 36).

Loutil fait automatiquement lanalyse des blocks supprims, sauf sil sagit dune base
de donnes importante. Dans ce cas, il faut cliquer sur le bouton Analyse Deleted Data.

Figure 35 : Analyse de donnes pour base de donnes importante

Aprs analyse des donnes supprimes, nous avons accs de nouveaux lments
tels que la visualisation des blocs contenant les donnes supprimes, ou encore des
enregistrements rcuprs.
Figure 36 : Aprs import du fichier sms.db dans Oxygen Forensic
SQLiteViwer

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 56
Pour accder aux enregistrements rcuprs il faut :

Nous allons effectuer notre analyse en recherchant un SMS envoy parmi ceux que
nous avons supprims. En revanche le processus est le mme pour les autres messages
effacs.

Tout dabord, il faut slectionner la table Message (puisquil sagit dun SMS). Puis
slectionner la colonne Table Data , puis lancer la recherche (situe en haut droite)
du SMS ou parcourir lensemble des Revovered records sans recherche).

Lentiret du SMS saffiche en bas en slectionnant ce dernier (voir Figure 37).

Figure 37 : Rcupration du SMS supprim

La catgorie Actual records contient les enregistrements de donnes actuelles sur


lappareil.

La catgorie Revovered records contient les enregistrements de donnes rcupres


de lappareil.

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 57
10.1.1.2 Enregistrement rcupr via blocks contening deleted data
Ici nous allons analyser en dtail les freeblocks afin de rcuprer lenregistrement.

Le SMS slectionn (en bleu) sur la Figure 38 reprsente le message que nous allons
supprimer.

Figure 38 : SMS supprim pour le test de rcupration via Blocks contening


deleted data

Afin de pouvoir comparer le contenu du SMS avant et aprs, nous avons utilis un outil
nous permettant de lire des donnes sous format hexadcimal, il sagit du logiciel Hex
Editor Neo , ce logiciel est sensible la casse lors de la recherche.

Loutil Oxygen Forensic SQLiteViwer nous permettant de rcuprer le SMS supprim


dans un freeblocks, sous format hexadcimal, nous devons donc passer par ce format
pour la comparaison.

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 58
Sur Figure 39, nous avons utilis Hex Editor Neo pour lire le SMS avant suppression.
Ce dernier est surlign en bleu. La partie centrale slectionne de la figure correspond
au SMS sous format hexadcimal et la partie slectionne droite de la figure
correspond linterprtation textuelle du SMS.

Nous avons vu prcdemment que lorsque le message est supprim, lespace


quoccupait ce message est rendu disponible et le freeblock est crit. Il faut donc
observer si les quatre premiers octets varient entre le message avant suppression et le
message aprs suppression. Puisque, rappelons-le, le message reste prsent jusqu
ce quil ny ait plus despace disponible.

Figure 39 : SMS sous format hexadcimal et textuel avant suppression


: 4 premiers octets avant

Aprs suppression du message et rcupration du fichier, nous utilisons le logiciel


Oxygen Forensic SQLiteViwer afin de rcuprer les blocs contenant des donnes
supprimes. A prsent il sagit de dterminer sil sagit bien de freeblocks. Donc que le
message est toujours prsent mais que le bloc est dfini comme libre.

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 59
Sur la Figure 40, le message correspondant est surlign en bleu (il sagit de lensemble
de la figure). La partie centrale de la figure correspond au message sous format
hexadcimal et la partie droite de la figure correspond linterprtation textuelle du
message.

Lanalyse se porte sur les quatre premiers octets du message. Nous constatons que ces
octets ont chang mais que la suite du message ne varie pas. Il sagit donc bien dun
freeblock.

Figure 40 : SMS sous format hexadcimal et textuel aprs suppression


: 4 premiers
octets aprs

Voici, ci-dessous, un tableau rcapitulatif de la comparaison des quatre premiers octets


avant et aprs suppression du message.

Tableau 8 : Comparaison des quatre premiers octets (premier test)

Octets avant suppression Octets aprs suppression

85 15 04 28 0B 6C 01 98

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 60
A prsent analysons le message que nous avons rcupr. Voici le message que nous
avions (Voir Figure 41) dans la table Message.

Figure 41 : Visualisation du message avant suppression

Voici les informations rcupres aprs suppression que nous pouvons identifier (voir
Figure 42).

Figure 42 : Identification des informations rcupres

Lgende
Guid
Text
Service
Account
Account_guid
Date

Pour rsumer ce que nous venons danalyser. Lorsquune suppression a lieu, SQLite
rcrit les deux premiers octets en mettant comme information le prochain freeblock
disponible. Pour cet exemple, 0B 6C correspond au prochain freeblock, cette information
est en hexadcimal, il faut la traduire en dcimal pour trouver le prochain freeblock (en
dcimal cette valeur quivaut 45164).

Les deux octets suivants sont rcrits galement avec comme valeur celle de la taille du
freeblock courant. Cest pour cela que les valeurs des quatre premiers octets dun
enregistrement supprim varient.

Les manipulations sont les mmes pour les autres bases de donnes que nous avons
analyses (par exemple : la base de donnes SMSSearchindex.sqlite ).

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 61
10.1.2 Effacer un iMessage reu d'une conversation
Afin de confirmer lanalyse, il est important deffectuer un second test en supprimant un
message plus court. Cette fois, il sagit dun iMessage.

Aprs avoir effectu les manipulations des fichiers comme prcdemment expliques,
voici, sur la Figure 43, le message correspondant avant suppression.
Figure 43 : iMessage sous format hexadcimal et textuel avant suppression
: 4 premiers octets avant

Aprs avoir supprim liMessage dont le contenu tait Oui et aprs avoir effectu les
manipulations des fichiers comme prcdemment expliques, nous pouvons analyser
sur la Figure 44 que le message est bien rcupr.

Figure 44 : iMessage sous format hexadcimal et textuel aprs suppression


: 4 premiers
octets aprs

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 62
Lanalyse se porte sur les quatre premiers octets du message comme nous lavons dit
prcdemment. Nous constatons que ces octets ont chang mais que la suite du
message ne varie pas. Il sagit donc bien dun freeblock.

Voici, ci-dessous, un tableau rcapitulatif de la comparaison des quatre premiers octets


avant et aprs suppression du iMessage.

Tableau 9 : Comparaison des quatre premiers octets (second test)

Octets avant suppression Octets aprs suppression

83 05 0E 28 00 00 01 88

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 63
10.1.3 Rsultats des tests aprs suppressions
Aprs avoir effectu les diffrents tests, voici les rsultats que nous obtenons.

Tableau 10 : Rsultats des tests effectus sur lappareil aprs suppressions


N Tests iPhone non jailbreak iPhone jailbreak

Effacer un SMS envoy,


1 SMS envoy, rcupr
d'une conversation

Effacer un SMS reu,


2 SMS reu, rcupr
d'une conversation

Effacer un iMessage
3 envoy, d'une iMessage envoy, rcupr
conversation

Effacer un iMessage
4 iMessage reu, rcupr
reu, d'une conversation

Une partie de la conversation est rcupre avec


Effacer une conversation la version dessai du logiciel Oxygen Forensic
5
entire SQLiteViwer (le programme limite le nombre
dlments rcuprs dans cette version)

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 64
10.2 Analyse des tests aprs restaurations
Ici, il sagit deffectuer des tests de restaurations de lappareil afin de vrifier, en fonction
des tests que nous effectuerons, si nous pouvons rcuprer les donnes ou si elles sont
dfinitivement supprimes.

Au pralable, nous effectuons une sauvegarde dite de base afin de pouvoir comparer
avec les diffrents tests raliss.

Tableau 11 : Tests effectus sur lappareil non jailbreak aprs restaurations

N Tests iPhone non jailbreak

Aprs restauration comme nouvel Aucun message ni conversation


6
iPhone depuis iTunes rcupr

Aprs restauration comme nouvel Aucun message ni conversation


7
iPhone depuis tlphone rcupr

Aprs restauration de liPhone Rcupration des mmes donnes que


8
avec une sauvegarde iCloud pour la sauvegarde de base

Aprs restauration de liPhone Rcupration des mmes donnes que


9
avec sauvegarde iTunes (local) pour la sauvegarde de base

10.3 Analyse des tests avec encryption


Lorsque lon chiffre une sauvegarde iTunes tous les fichiers sont encrypts, et non pas
seulement le dossier de sauvegarde lui-mme. De ce fait, on ne peut pas ouvrir ces
fichiers pour les analyser. Il faudrait rcuprer une cl de cryptage, mais il sagit ici dun
autre sujet.

10.4 Constats
Premirement, il faut quil ny ait plus despace disponible dans la base de donnes
SQLite avant la rcriture des nouvelles donnes sur les freeblocks, l o se trouvent
les enregistrements supprims).

De plus, et cela est constatable, la suppression ne change pas la taille du fichier puisque
les donnes supprimes sont toujours prsentes.

Par ailleurs, il est important de comprendre que les zones non alloues (disponibles) qui
ont des valeurs autres que zro peuvent tre techniquement considres comme une
donne supprime.
Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 65
11. Logiciels existants de rcupration de messages
Certains logiciels proposent de rcuprer les messages prsents sur le tlphone ainsi
que ceux qui ont t supprims. Ces programmes demandent deffectuer une
sauvegarde de lappareil.

Parmi eux le logiciel propos par Istonsoft5.

Par ailleurs, Le groupe CCL, important dans le domaine de la science lgale, propose
de nombreux logiciels6 permettant de rcuprer des informations partir dun appareil.

Malheureusement la plupart des logiciels sont payants et proposent une version dessai
qui ne suffit pas valuer la performance et la qualit du programme.

12. Utilisation dapplications tierces


Lorsque lon utilise une application comme par exemple ZMS , FreeSMS global
ou encore BiteSMS pour envoyer ou recevoir des messages.

Ces messages seront logiquement stocks ailleurs, savoir, dans la racine de


lapplication.

5
Loutil est disponible ladresse suivante :
http://www.istonsoft.fr/ios-recovery/recover-deleted-text-messages-from-iphone.html
6
Les logiciels sont disponibles ladresse suivante :
http://www.cclgroupltd.com/product-category/buy-softw/

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 66
13. Logiciels tests
Avant de parvenir trouver des logiciels me permettant de rcuprer, analyser ou crer
des modles, jai d installer et tester plusieurs outils diffrents.

Le Tableau 12 prsente ces diffrents outils, une description de ce quils permettent


deffectuer ainsi que lutilit dans le cadre de ce travail.

Tableau 12 : Analyse des outils tests

N Nom du logiciel Description Utilis

DBeaver Entreprise Cet outil permet de raliser des modles de donnes


1 par Free Universal partir de base de donnes (SQLite faisait partie Oui
Database Manager des bases prise en compte).

Ce logiciel permet dimporter des bases de donnes


Sqlite expert
SQLite et les interprte de manire ce que la
2 personnal par Oui
lecture des donnes soit plus facile (par le biais de
SQLite Expert
couleurs).

Ce programme permet notamment danalyser les


Oxygen Forensic blocks contenant des donnes supprimes dans un
3 SQLiteViwer par fichier SQLite. Il sagit dun bon outil. En revanche, la Oui
Oxygen Sotware version dessai ne dure que 30 jours et ne permet
pas dobtenir certaines donnes.

Cet outil permet danalyser les fichiers sous format


4 Hex Editor Neo Oui
hexadcimal.

Une des fonctionnalits de ce logiciel est de


SystoolsSQLitedata
5 visualiser les triggers prsents dans un fichier Oui
base recovery
SQLite.

Ce logiciel permet de rcuprer des lments tels


6 Filezilla que des dossiers, fichiers et autres sur lappareil en Oui
utilisant le protocole SSH.

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 67
N Nom du logiciel Description Utilis

iBackup Extractor Ce programme ne permet pas de rcuprer les


7 par messages supprims, seulement ceux prsents sur Non
Wideanglesoftware lappareil partir dune sauvegarde iTunes.

Cet outil permet de visualiser les donnes avec des


couleurs prdfinies que nous pouvons modifier. Cet
8 Addon par Firefox Non
outil concerne la lecture de base de donnes
SQLite.

Forensic Explorer Je n'ai malheureusement pas pu tester ce logiciel qui


par GetData permettait une analyse de fichier sous format
9 Non
Forensics hexadcimal car la fonctionnalit d'import ntait pas
disponible sur la version dessai.

Le Driver permet notamment deffectuer des


Driver ODBC requtes en ligne de commande dans une fentre
10 Non
SQLite DOS. Les rsultats des requtes se prsentent sur
plusieurs lignes et sont difficiles lire et analyser.

Sqlite Database Ce programme interprte les bases de donnes


11 Browser par SQLite SQLite comme loutil Sqlite expert personnal , Non
Browser mais il est moins facile au niveau de la lecture

Cet outil nous permet de lire les fichiers wal, -shm


et autres fichiers que nous ne pouvons pas lire par le
biais dun interprteur de base de donnes SQLite
(car ils sont dit crypts , en ralit ils nont pas le
format de base de donnes SQLite). En revanche, la
12 Fileviewer Lite Non
lecture du fichier nest pas lisible en format texte
comme propos, nous pouvons seulement le lire en
format hexadcimal. Il faut donc exporter ce fichier
en format hexadcimal et utiliser un autre outil nous
permettant dinterprter lhexadcimal.

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 68
N Nom du logiciel Description Utilis

Ce logiciel permet danalyser un fichier en


hexadcimal par le biais de couleurs. Loutil a
Systools Sqlite
13 fonctionn une fois, mais certains boutons ne Non
Forensic Explorer
marchaient pas du tout. De plus, lanalyse du fichier
prend beaucoup de temps.

Ce programme permet la rcupration de messages


prsents sur lappareil et certains messages
supprims. En revanche dans la version d'essai,
Elcomsoft Phone seulement dix messages sont visibles. Le logiciel se
14 Non
Viewver base sur le fichier Manifest.plist . Ce fichier est
prsent dans le chemin suivant : \Utilisateurs\(nom
dutilisateur)\AppData \Roaming\Apple
Computer\MobileSync\Backup

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 69
Conclusion
Les techniques de rcupration de messages sur iOS sont diverses et varies. Selon le
modle et la version du systme dexploitation de lappareil, il faudra utiliser une, voire
plusieurs mthodes afin de russir rcuprer des donnes.

Dans ce travail de Bachelor, la recherche est axe sur la rcupration logique


dinformations. Dans le cas o ce type de rcupration ne peut pas avoir lieu (par
exemple : rcupration dun tlphone endommag), il faudra utiliser du matriel
(hardware) pour extraire des donnes. UFED Touch est notamment une des solutions
de mthodes de rcupration physique permettant dextraire et de dcoder des preuves
numriques contenues dans des appareils mobiles. En revanche ce type dappareil est
conu spcifiquement pour tre utilis par des organismes d'investigation autoriss tels
que les services de police. Lanalyste dinvestigation tudie lappareil pour en dterminer
le fonctionnement interne afin de rcuprer des informations : il sagit bien de reverse
engineering de donnes. Tout lart de la reconstitution de lhistorique des messages.

Grce ce travail de Bachelor, jai pu comprendre le fonctionnement de la suppression


de messages sur iOS. De plus, jai dcouvert et test des logiciels permettant de
rcuprer des messages supprims. La partie de test tait vraiment importante car elle
ma permis de vrifier et de valider la comprhension que jai acquise du fonctionnement.
Ce travail ma apport des connaissances sur des lments auxquels je navais pas
song. Je pense ici la base de donnes Spotlight avec lindexation de la totalit des
mtadonnes, rglages par dfaut de lappareil.

Jajouterais cela comme difficult de ce travail, le manque de documentations li la


notion de lgalit du domaine et surtout le dfaut de mises jour de la documentation
existante. Je fais allusion mes recherches concernant Spotlight, et la difficult de
trouver des explications sur les attributs de la base. Le peu de donne disponible la
plupart des informations tant en anglais.

Cette analyse a requis une importante rigueur afin de conserver le fil conducteur tout au
long de ce dveloppement. Beaucoup dlments tant lis, une simple modification
aurait pu me conduire sur un autre sujet comme lencryption par exemple.

Enfin, outre laspect technique, cette analyse nous ramne ncessairement des
questionnements en termes de confidentialit et de vie prive. .
Jen tire pour ma part une exprience extrmement positive et un enrichissement
personnel qui me motivent dcouvrir dautres outils et poursuivre mes tudes dans
le domaine.

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 70
Webographie
Apple - Sauvegarde iCloud [Consult le 17.03.2015]. Disponible ladresse :
https://support.apple.com/kb/PH12519?locale=en_US&viewlocale=fr_FR

Planetoscope Statistiques en temps rel [Consult le 17.03.2015]. Disponible


ladresse :
http://www.planetoscope.com/electronique/718-nombre-de-sms-envoyes-dans-le-
monde.html

CCL Group Fonctionnement du WAL [Consult le 20.03.2015]. Disponible


ladresse:
http://www.cclgroupltd.com/the-forensic-implications-of-sqlites-write-ahead-log/

SQLite Format de fichier SQLite [Consult le 20.03.2015]. Disponible ladresse :


http://sqlite.org/fileformat2.html

Apple Sauvegardes sur iOS [Consult le 25.03.2015]. Disponible ladresse :


https://support.apple.com/fr-ch/HT204136

Apple Restauration du contenu dun appareil iOS [Consult le 25.03.2015].


Disponible ladresse :
https://support.apple.com/fr-ch/HT1766

The iPhone wiki Dtail de lapplication message [Consult le 30.03.2015]. Disponible


ladresse :
https://theiphonewiki.com/wiki/Messages

Mac Developer Library Base de donnes Spotlight [Consult le 30.03.2015].


Disponible ladresse :
https://developer.apple.com/library/mac/documentation/Carbon/Conceptual/MetadataIn
tro/Concepts/HowDoesItWork.html

SMS iPhone Transformer le fichier de sauvegarde en autre format [Consult le


02.04.2015]. Disponible ladresse :
http://www.smsiphone.org/

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 71
iPhoneTweak Rcupration de messages [Consult le 02.04.2015]. Disponible
ladresse :
http://iphonetweak.fr/2012/11/05/tuto-comment-recuperer-des-sms-effaces-sur-son-
iphone

Cellebrite - Type dextraction [Consult le 15.04.2015]. Disponible ladresse :


http://fr.slideshare.net/cellebriteUFED/explaining-cellebrite-ufed-data-extraction-
processes-final

Analyse forensic [Consult le 20.04.2015]. Disponible ladresse :


https://www.sstic.org/media/SSTIC2012/SSTIC-actes/forensicsios/SSTIC2012-Slides-
forensicsios-sigwald_bedrune.pdf

John Lehr - B-Tree Leaf Pages [Consult le 02.05.2015]. Disponible ladresse :


http://linuxsleuthing.blogspot.ch/2013/09/recovering-data-from-deleted-sqlite.html

Apple - synchronisation iTunes [Consult le 13.05.2015]. Disponible ladresse :


https://support.apple.com/fr-ch/HT201253

Hacking and Securing iOS Application Jonathan Zdziarski [Consult le 14.05.2015].


Disponible ladresse :
https://books.google.de/books/about/Hacking_and_Securing_iOS_Applications.html?hl
=de&id=Youyu15xY9gC

Magnet forensics - Investigating iOS Phone Images, File Dumps & Backups [Consult
le 14.05.2015]. Disponible ladresse
http://www.magnetforensics.com/mobile-forensics/investigating-ios-phone-images-file-
dumps-backups

WikiHow - Comment rcuprer des SMS supprims de l'iPhone [Consult le


23.05.2015]. Disponible ladresse :
http://fr.wikihow.com/r%C3%A9cup%C3%A9rer-des-SMS-supprim%C3%A9s-de-
l%27iPhone

Deadhardrive - Retrouver des sms effacs dans le Spotlight sur iPhone [Consult le
26.05.2015]. Disponible ladresse :
http://www.deadhardrive.com/retrouver-des-sms-effaces-dans-le-spotlight-sur-iphone/

Deadhardrive - Extraire la base de donnes sms.db dun Iphone [Consult le


28.05.2015]. Disponible ladresse :
http://www.deadhardrive.com/extraire-la-base-de-donnees-sms-db-dun-iphone/

Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 72
Wikipdia - Spotlight [Consult le 29.05.2015]. Disponible ladresse :
https://fr.wikipedia.org/wiki/Spotlight

Slideshare - iPhone forensics, without the iPhone [Consult le 01.06.2015]. Disponible


ladresse :
http://fr.slideshare.net/hrgeeks/iphone-forensics-without-the-iphone

Open security research - Forwarding SMS to Email on [Jailbroken] iOS [Consult le


01.06.2015]. Disponible ladresse :
http://blog.opensecurityresearch.com/2013/02/forwarding-sms-to-email-on-
jailbroken.html

Another Forensics Blog - Finding and Reverse Engineering Deleted SMS Messages
[Consult le 02.06.2015]. Disponible ladresse :
http://az4n6.blogspot.fr/2013/02/finding-and-reverse-engineering-deleted_1865.html

Sean Morrissey - iOS Forensic Analysis [Consult le 03.06.2015]. Disponible


ladresse:
https://sensperiodit.files.wordpress.com/2011/04/ios-forensic-analysis-for-iphone-ipad-
and-ipod-touch.pdf

Safari SQLite Databases [Consult le 03.06.2015]. Disponible ladresse :


https://www.safaribooksonline.com/library/view/hacking-and-
securing/9781449325213/ch04s02.html

Researchgate A recovery method of deleted record for SQLite database [Consult le


05.06.2015]. Disponible ladresse :
http://www.researchgate.net/publication/226423207_A_recovery_method_of_deleted_r
ecord_for_SQLite_database

Sandbox - Extracting SQLite records [Consult le 05.06.2015]. Disponible ladresse :


http://sandbox.dfrws.org/2011/fox-
it/DFRWS2011_results/Report/Sqlite_carving_extractAndroidData.pdf

BinaryHexConverter Hexadecimal to Decimal Converter [Consult le 20.06.2015].


Disponible ladresse :
http://www.binaryhexconverter.com/hex-to-decimal-converter

Sanderson Forensics - Recovering deleted records from an SQLite database (updated)


[Consult le 23.06.2015]. Disponible ladresse :
http://sandersonforensics.com/forum/content.php?222-Recovering-deleted-records-
from-an-SQLite-database
Techniques de rcupration de messages sur iOS dans le cadre dune enqute de police
YOUYOU La 73

You might also like