Categories
News

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.

Ça ne fait aucun doute Carl, cet homme est un grand amateur de Patrick Sébastien à en voir son historique Shazaam

Ça ne fait aucun doute Carl, à en voir son historique Shazaam cet homme est un grand amateur de Patrick Sébastien

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/.

$ adb root
restarting adbd as root
$ adb pull /data/data/ ~/android-data
pull: building file list…

$ ls ~/android-data/ | wc -l
93

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.

WhatsApp

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.

Équipe technique discutant de la protection des données dans leur application

Équipe technique discutant de la protection des données dans leur application

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.

2 replies on “Ce que stockent vos applications Android”

Bonjour,

Est-il possible de retrouver le mot de passe enregistré d’une application sur téléphone Android ?

Merci d’avance

Cela dépend de l’application. Si tu as un téléphone rooté, tu peux essayer de reproduire les même manipulations que j’ai donné. Attention que cet article date de 2014, les choses ont probablement changés depuis.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *