Ce que stockent vos applications Android
Aujourd’hui étant The Day We Fight Back, je trouvais assez adapté de parler d’un des appareil d’espionnage massif le plus répandu: le smartphone. En plus ça me donne une occasion de sortir de mon coma de 10 mois sans article.
Les applications sur Android peuvent stocker des informations soit sur la carte SD, soit en interne dans la mémoire du téléphone. Si les développeurs sont assez intelligents pour ne pas stocker des informations sensibles dans un fichier password.txt sur la carte SD (enfin j’espère), ils font beaucoup moins attention quand il s’agit de stocker cela dans dans la mémoire interne, zone mystérieuse où personne ne va jamais mettre les pieds. Et pourtant c’est bien dommage on y trouve des choses amusantes et bigrement intéressantes.

La méthode
De part le fait que mon téléphone soit rooté, j’ai justement la possibilité d’explorer l’arborescence de fichiers système (chacun sa passion, j’aime pas les timbres). Par exemple, les paramètres de wifi (y compris les clefs) sont stockées dans /data/misc/wifi/wpa_supplicant.conf
, les fichiers .apk des applications sont eux dans /data/app/
. Cependant le répertoire qui nous intéresse pour cet article est /data/data/
.
Voila qui devrait nous occuper pour un moment…
Pour fonctionner chaque application a besoin d’aller rechercher les informations que vous lui avez un jour donné: la question est sous quelle forme sont elles stockées et à quel point se sont ils donnés du mal pour les cacher ? Est-ce qu’une app stocke votre mot de passe en clair ou utilisent ils un protocole type OAuth ? Les applications Android stockent leurs données sous la forme de fichier textes ou le plus souvent de base de données sqlite3. Il suffit donc d’avoir un éditeur texte et de base de données sqlite (sqlitebrowser
sous linux par exemple).
N’hésitez donc pas à reproduire avec votre téléphone c’est pas si difficile et instructif.
Exemples
Voici quelques applications installées sur mon téléphone.
sshtunnel
Si vous préférez administrer votre serveur pendant les repas de famille plutôt que d’écouter les blague de tonton Roger
Pour chaque tunnel, est stocké dans le fichier org.sshtunnel/databases/sshtunnel.db
, le login, mot de passe, emplacement de la clef ssh (stocké dans un fichier, pas en db), fingerprint et autre. Cette info est également répétée dans le fichier org.sshtunnel/shared_prefs/org.sshtunnel_preferences.xml
.
Zombies, Run!
Très chouette jeu/app sportive qui vise le mince publique geek et sportif (mais pas trop)
Dans le fichier texte com.sixtostart.zombiesrun/files/IDENTITY
se trouve un vague UUID. Il serait intéressant de creuser sa signification. Stats ?
Dans la base de donnée com.sixtostart.zombiesrun/databases/zombiesRun2Data.db
, la table player
contient l’email vers le compte de synchronisation et, un token ! Je le souligne parce que c’est une des rares applications ne stockant pas votre mot de passe en clair. Les autres tables contiennent votre historique de jeu (score, records, positions GPS, musiques écoutent pendant la séance,…).
Railtime
Merveilleuse application m’indiquant que j’aurais mieux fait de prendre la voiture plutôt que d’attendre le train.
Dans com.infrabel.railtime/shared_prefs/pushPreferences.xml
on trouve un token surement utile pour ceux qui désireraient faire un peu de reverse engineering sur cette app.
En regardant les bases de données, on voit que Railtime utilise visiblement Google Analytics et dans com.infrabel.railtime/databases/stationsv2.db
l’on retrouve les noms en 4 langues et coordonnées géographiques des 835 gares de Belgique (pratique pour compléter OpenStreetMap ;-))
Mustard
Du microblogging…
La base de donnée org.mustard.android/databases/data
contient les clefs OAuth vers les différents comptes Twitter et autres. Cela veut dire que potentiellement, l’on pourrait envoyer du spam en utilisant les clefs de Mustard et la faire révoquer par Twitter.
C’est une problématique connue des clients open source utilisant OAuth. Il est difficile de cacher cette information puisque quelqu’un attaquant suffisamment persévérant finira toujours par la retrouver dans le code, soyez sympa, pas de bêtises avec.
Into the Dead
Oui j’aime les jeux de Zombie, je sais…
Dans un simple fichier XML com.sidheinteractive.sif.DR/shared_prefs/com.sidheinteractive.sif.DR.xml
on trouve tous les scores du jeu. Si jamais vous êtes bloqué dans une mission, c’est de la provocation tellement il est facile de changer son score. J’avoue avoir triché et je recommencerai surement…
Firefox
Faut-il encore le présenter ?
Dans le dossier org.mozilla.firefox/files/mozilla
se trouve votre profil Firefox (historique, mot de passes & Co.). Je vois pas trop ce que je pourrais ajouter à cela tellement c’était prévisible. Je ne vois même pas pourquoi j’ai créé une entrée pour cette application et ne vous ferez pas l’affront de parler des autres navigateurs.
SMS over IP
Le fichier com.whatsapp/databases/msgstore.db
contient tout votre historique. Vous pouvez utiliser WhatsApp Xtract pour plus de facilité. On appréciera que les images sont stockées comme des URL sans aucune authentification (comme Facebook en fait).
Shazaam
Alias le tueur de blind tests
Vous pouvez facilement retrouver l’historique de vos écoutes dans com.shazam.android/databases/library.db
. Vous retrouvez ainsi artiste, titre et image facilement.
Moins drôle: on retrouve également l’historique des positions géographiques où vous avez écouté chaque titre. Conclusion: ne taggez pas de musique chez votre maitresse.

Ces applications ne sont que quelques exemples personnels d’analyses forensic faites avec une Chimay dans la main (donc de très grandes qualités). Si quelques applications s’en sortent plutôt bien (les « grosses » ne stockent pas les mots de passe en clair par exemple), nombres d’applications stockent encore beaucoup trop d’information sensibles. Si cela n’empêchera pas Google et consorts de connaitre vos moindre faits et gestes (ils s’en balancent du mode de stockage s’ils peuvent récupérer l’info au niveau de l’OS), gardez en tête ce que l’on peut trouver comme information avec un téléphone perdu ou un accès au debugging USB pendant 2min.
Si vous avez découvert d’autres applications stockant des informations amusantes (ou pas), n’hésitez pas à partager.