Le traceur Android pour savoir si vos applications vous écoutent !

Mobilité

De nos jours, de nombreuses applications sur votre téléphone sont autorisées à accéder à votre micro… QUID du traceur Android ?

traceur android

Certaines, comme l’application du téléphone lui-même, étaient déjà présentes sur votre téléphone quand vous l’avez acheté, mais vous en avez certainement ajoutées d’autres entre temps, telles que WhatsApp, Skype et Facebook par exemple.

A partir du moment où vous avez donné à ces applications une autorisation audio, elles ont pu vous écouter quand elles le voulaient, et sans vous le dire !

En théorie, vous ne saurez jamais si une application franchit la ligne rouge. Cependant, dans la pratique, il existe des moyens efficaces pour vérifier si une application vous écoute réellement.

Pouvoir suivre et enregistrer les comportements d’une application est une compétence technique pratique à avoir, alors nous allons vous montrer comment examiner les appels système effectués par votre smartphone Android vers le sous-système audio.

Fini les écoutes secrètes !

En suivant notre tutoriel, vous pourrez savoir précisément quand une application accède à votre micro.

Remarque : Pour cet article, nous avons utilisé un périphérique de test qui a été nettoyé au préalable et ensuite rooté. Cela signifie que nous avons délibérément modifié les paramètres de sécurité pour nous donner un accès administratif. Sous Linux/Android, le compte administrateur est appelé root, signifiant ainsi que l’accès root est familièrement appelé rooting. Nous vous recommandons fortement de ne pas effectuer de recherches de ce type avec votre téléphone habituel, au cas où un incident se produirait. Et surtout, n’essayez pas avec votre téléphone professionnel !

Suivi des appels API sous Android

L’outil que nous utiliserons pour savoir si les applications nous écoutent s’appelle AppMon.

Le Traceur Android dans AppMon peut surveiller les applications sur votre téléphone en traçant les classes Java lorsqu’elles sont appelées (presque toutes les applications Android sont écrites en Java).

Les applications qui souhaitent utiliser le micro utilisent la classe AudioRecord. En surveillant celle-ci avec le Traceur Android, nous pouvons voir comment et quand les applications interagissent avec le micro.

La plupart de la documentation d’AppMon se concentre sur macOS et Linux, mais dans cet article, nous allons vous montrer comment l’installer sous Windows.

AppMon communique avec Android via un utilitaire appelé Frida, un logiciel de surveillance que vous devez d’abord installer sur votre appareil Android de test.

Frida vous permet d’injecter des scripts dans les processus Android, de les relier à des fonctions et d’espionner les API crypto. Ainsi, il s’agit d’une application plutôt effrayante à installer sur n’importe quel téléphone, en dehors d’un environnement de test.

Vous ne la trouverez pas dans le Google Play Store, vous devrez pour cela effectuer un sideloading, avoir activé le débogage sur votre mobile et installé l’Android Debugging Bridge (ADB) sous Windows.

Voici comment procéder.

Activation du débogage USB sur Android

Tout d’abord, vous devez vous assurer que votre appareil Android est en mode développeur et que le debogage USB est activé :

  1. Ouvrez l’application Paramètres.
  2. Sélectionnez Système (uniquement sous Android 8.0 ou supérieur).
  3. Faites défiler vers le bas et sélectionnez À propos du téléphone.
  4. Faites défiler vers le bas et entrez le numéro de Build 7 fois (oui, c’est officiellement comme cela que vous devez procéder !).
  5. Revenez à l’écran précédent pour trouver les options de développeur en bas.

Activez le mode développeur, faites défiler l’affichage jusqu’à ce que l’option de débogage USB apparaisse enfin et activez-la. Maintenant, branchez l’appareil Android sur votre machine Windows avec son câble USB, et vous êtes alors prêt pour l’étape suivante !

Installation d’ADB sous Windows

ADB est un outil pratique pour interagir avec les téléphones Android, et nous l’utiliserons pour installer Frida sur notre appareil.

Téléchargez les outils de ligne de commande android-sdk pour Windows.

Une fois les outils téléchargés et décompressés, vous pouvez exécuter adb.exe au niveau de la ligne de commande.

Ouvrez une fenêtre d’invite de commande dans le répertoire où adb.exe se trouve actuellement. Pour ce faire, maintenez la touche MAJ enfoncée tout en cliquant avec le bouton droit de la souris sur la fenêtre de l’explorateur où adb.exe apparaît, puis sélectionnez “Ouvrir une fenêtre invite de commande ici“.

Avec votre invite de commande récemment ouverte, tapez adb devices et appuyez sur Entrée.

Cela vous affichera une liste d’appareils Android avec le débogage activé et actuellement connectés.

Exemple :

    C:\Users\User1> adb devices
    List of devices attached
    XXXXXXXXX    device

Utilisation de Frida sous Android

Téléchargez l’application frida-server, dont vous avez besoin sur votre appareil Android pour surveiller les applications en cours d’exécution.

Téléchargez le fichier binaire compressé avec le nom de fichier “Frida-server-NN.N.NNN-android-MMM.xz” où NN.N.NN représente le numéro de version et MMM le type de processeur de votre téléphone (en spécifiant l’ARM, arm64, x86 ou x86_64).

NB : La plupart des anciens appareils Android ont des puces ARM, beaucoup de nouveaux téléphones ont le processeur ARM64 plus puissant. Si vous choisissez la mauvaise version de frida-server, vous ne casserez rien, mais cela ne fonctionnera pas. En cas de doute, utilisez un moteur de recherche pour trouver le type de processeur correspondant à votre modèle de téléphone.

Décompressez le fichier téléchargé dans le même emplacement qu’adb.exe et renommez le fichier avec Frida-server.

De retour dans l’invite de commande que vous avez ouverte plus tôt, déplacez le fichier Frida-server vers votre appareil Android et exécutez-le :

    adb push frida-server /data/local/tmp/
    adb shell "chmod 755 /data/local/tmp/frida-server"
    adb shell
    su
    /data/local/tmp/frida-server &

Ici, nous avons déplacé le fichier Frida-server vers notre appareil Android à l’emplacement /data/local/tmp/, qui est un répertoire du système de fichiers Android qui vous permet d’exécuter un script.

Ensuite, nous avons utilisé chmod pour modifier les autorisations de fichier du serveur Frida afin de s’assurer qu’il était autorisé à fonctionner.

Enfin, nous avons lancé le programme Frida-server (l’esperluette à la fin de la commande le fait fonctionner en arrière-plan).

Préparation de Windows

Windows doit maintenant être prêt à exécuter le Traceur Android. Ce Traceur Android est écrit en Python et donc celui-ci doit être installé pour pouvoir s’exécuter.

En plaçant Python et adb dans les variables d’environnement Windows, vous pouvez exécuter à la fois ADB et Python sans avoir à être dans le répertoire où adb.exe ou python.exe sont installés.

Installation de Python 2

Voici un guide rapide pour vous familiariser avec Python 2.7, qui, au moment où j’écris ces lignes, est la version la plus récente de Python 2.

Rendez-vous sur le site web de Python, choisissez “télécharger” à côté de la dernière version de python 2 (2.7.15 au moment d’écrire cet article). Faites défiler la liste jusqu’à voir le MSI pour les environnements 64 bits et 32 ​​bits et sélectionnez le MSI correspondant à votre version de Windows. Une fois téléchargé, lancez le fichier MSI et suivez les instructions d’installation.

Variables d’environnement Windows Python et ADB

Sous Windows 10, ouvrez le Panneau de configuration et recherchez “variables d’environnement”. Sous Système, sélectionnez Modifier les variables d’environnement du système.

traceur android

Sélectionnez Variables d’Environnement en bas de la fenêtre. Une nouvelle fenêtre s’ouvrira où vous verrez les variables Utilisateur pour <votre utilisateur> et les variables Système. Sous variables Système, il existe une variable nommée Path. Sélectionnez cette option de sorte à la mettre en surbrillance comme indiqué dans la capture d’écran ci-dessous, puis sélectionnez Modifier ….

traceur android

Sélectionnez Nouveau pour ajouter le répertoire adb à la liste existante et entrez le répertoire où se trouve actuellement adb.exe (par exemple, C:\Program Files\ADB\).

Sélectionnez Nouveau une seconde fois et ajoutez l’emplacement de python.exe (par exemple, C:\Python27\).

Sélectionnez Nouveau pour la dernière fois et ajoutez l’emplacement de pip.exe (par exemple, C:\Python27\Scripts \).

Installation des Dépendances AppMon

Pour exécuter AppMon sous Windows, certaines dépendances Python sont nécessaires.

AppMon utilise argparse, frida, flask, termcolor et dataset.

Exécutez la commande suivante au niveau de votre périphérique Windows pour installer ces dépendances :

   pip install argparse frida flask termcolor dataset --upgrade

Installation d’AppMon

Sur la page github d’AppMon, sélectionnez clone ou download et téléchargez le fichier zip contenant AppMon. Vous devrez décompresser le dossier appmon-master au niveau d’un emplacement approprié sur votre appareil Windows.

Naviguez maintenant vers l’emplacement où AppMon est décompressé et accédez au dossier nommé Tracer. Maintenez la touche MAJ enfoncée et cliquez avec le bouton droit de la souris dans ce répertoire, puis sélectionnez l’option “Ouvrir la fenêtre d’invite de commande ici”.

Vous pouvez maintenant utiliser Tracer pour surveiller si une application mobile vous écoute alors qu’elle ne devrait pas !

Un exemple de commande permettant de vérifier si WhatsApp vous écoute, alors qu’il ne devrait pas, est fourni dans la section suivante.

Surveiller votre micro

Enfin, tous ces efforts vont porter leurs fruits !

Nous pouvons maintenant exécuter le Traceur Android pour surveiller quand le micro commence à enregistrer :

 python android_tracer.py -a "com.whatsapp" -c "*AudioRecord*" -m "startRecording"

Ci-dessus, -a "com.whatsapp" indique que vous souhaitez surveiller une application appelée com.whatsapp. L’option ‑c spécifie la classe (sous-programme Java) à surveiller, et -m indique la méthode spécifique (la fonction Java) à surveiller.

Les astérisques de la chaîne de caractères “*AudioRecord*” indiquent que vous souhaitez faire correspondre tous les caractères au début et à la fin du texte.

Il est donc facile de garder un œil sur un ensemble de classes ou de méthodes liées, sans pour autant avoir à répertorier explicitement chacune d’elles : n’importe quelle méthode dont le nom contient “AudioRecord” sera considérée.

La documentation complète des développeurs Android contient une liste détailée des classes et des méthodes que vous pourriez vouloir surveiller. Par exemple, nous surveillons ici startRecording dans la classe AudioRecord, mais vous pouvez plutôt envisager de surveiller takePicture dans la classe Camera.

Voici ce que nous avons découvert sur notre appareil de test :

Si vous avez aimé faire ces recherches concernant les activités secrètes de votre téléphone portable, découvrez cet article sur le partage excessif des applications.

Nouvelles améliorations au niveau d’Android

Depuis la publication de cet article, Android 9 Pie est sorti, proposant une confidentialité améliorée et indispensable pour nous tous. Dans une déclaration sur le blog des développeurs Android, Dave Burke, vice-président Engineering, a déclaré que le micro ne serait plus accessible lorsque l’application est inactive :

Le système restreint désormais l’accès au micro, à la caméra et à tous les capteurs SensorManager, et ce à partir d’applications inactives.


Billet inspiré de Are your Android apps listening to you?, sur Sophos nakedsecurity.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.