2>&1

"Détecter un logiciel espion sur un smartphone avec TinyCheck" on https://aligot-death.space, available at https://aligot-death.space/txt/tinycheck-fr

txt/guides IT

Détecter un logiciel espion sur un smartphone avec TinyCheck

TinyCheck, un projet permettant de rapidement vérifier qu'un smartphone n'est pas infecté par un logiciel espion

Read it aloud: play pause stop
10 min

Ce tutoriel a vocation a rendre le plus accessible possible pour des personnes non techniciennes un outil qui peut s'avérer utile dans des situations à risque. Si vous savez ce que vous faites, préférez le tutoriel disponible sur le wiki du projet originel.

TinyCheck est un projet créé par des membres de la firme de sécurité Kaspersky et qui permet de détecter la présence de logiciels espions (dits "stalkerware") sur un smartphone. Son principe de fonctionnement et son utilisation sont assez simples, même si son installation elle-même nécessite un peu de connaissances ou bien d'être guidé.

Son fonctionnement est le suivant : il crée un réseau Wi-Fi temporaire auquel on connecte le smartphone, on fait une utilisation typique de l'appareil, et TinyCheck analyse le trafic qui a circulé pour détecter des comportements typique de stalkerwares. Ces programmes peuvent être installés par des personnes mal intentionnées, allant du simple parent un peut trop intrusif à des groupes de surveillance, étatiques ou non. La page Github du projet mentionne d'ailleurs que cet outil a originellement été mis au point pour être mis à disposition dans des foyers pour femmes.

Sommaire

Installation#

Matériel#

une image montrant un Raspberry Pi modèle 3

Un Raspberry Pi modèle 3 (qui a bien vécu)

Ce projet tourne à l'aide d'un RaspBerry Pi, un petit ordinateur de la taille d'une carte de crédit et coûtant (seul) quelques dizaines d'euros selon les modèles. En l'occurence, il faut un modèle "récent" disposant du Wi-Fi, c'est à dire un modèle 3 ou 4.

Pour pouvoir s'en servir, il faudra également une carte micro SD, un chargeur de smartphone pour l'alimenter, et au besoin un adaptateur pour le brancher sur un écran : les modèles "4" récents utilisent d'ailleurs un branchement "mini-HDMI". Pour simplifier la vie, Les sites revendeurs comme Kubii proposent des kits clef en main, comme ce Starter Kit Raspberry Pi 4 2GB.

Si vous êtes sur Mac OS ou Linux, des instructions d'installation sont disponibles sur le site officiel

Préparation du Raspberry Pi#

Il faut donc pour commencer préparer la carte micro SD pour installer le système. Pour cela, il suffit de chercher sur le web "raspberry pi os" et de cliquer sur le lien "Raspberry Pi OS – Raspberry Pi" :

une image montrant une recherche sur google montrant le premier résultat pertinent

Une fois sur le site, descendre jusqu'au bouton "Download" qui devrait proposer la version adaptée à votre ordinateur :

Une image montrant le bouton "Download" sur le site de Raspberry Pi

Enregistrer le fichier alors proposé, ouvrir ses téléchargements et lancer le fichier.

Si vous êtes sur Windows, une fenêtre de sécurité bloquant le lancement peut s'afficher : simplement cliquer sur "Informations complémentaires" puis sur "Exécuter quand même".

Faire l'installation en cliquant simplement sur "Install", puis une fois fini sur "Finish". Le logiciel se lance alors. Au besoin, vous pouvez le retrouver sur votre ordinateur sous le nom "Rapberry Pi Imager".

Brancher alors la carte micro SD dans l'ordinateur à l'aide d'un adaptateur (USB et/ou SD).

Une carte SD et son adaptateur USB

Dans le logiciel :

  • Cliquez sur "Choisissez l'OS", et sélectionner le premier choix "Raspberry Pi OS (32bit)" ;
  • Cliquez sur "Choisissez la carte... " et sélectionner la carte micro-SD : si plusieurs choix s'offrent à vous, basez vous sur la taille de la carte pour savoir laquelle est la bonne. Attention, les donneés de la carte sélectionnée seront effacées, pensez à les copier si vous ne souhaitez pas les perdre et à vérifier trois fois qu'il s'agit bien de la bonne.

Cela donne par exemple :

Une image montrant le logiciel prêt à lancer l'installation.

Enfin, cliquer sur "écrire", et validez en cliquant sur "Oui".

L'opération d'écriture peut durer entre 10 minutes et une heure selon les performances de votre installation : ne débranchez pas la carte, prenez une tasse de votre boisson préférée et attendez le message vous indiquant que tout est fini.

Installation du logiciel#

Insérez la carte micro SD dans le Pi, puis branchez un écran (avec un adaptateur si nécessaire), un clavier et une souris, ainsi qu'un câble Ethernet : ne passez pas par le Wi-Fi pour vous connecter à internet, car il sera utilisé par le logiciel. Enfin, branchez l'alimentation. Le Raspberry Pi devrait allumer une diode rouge indiquant qu'il est alimenté, ainsi qu'une diode verte indiquant qu'il travaille.

Si tout se passe bien, l'écran devrait afficher un carré arc-en-ciel, puis arriver sur un bureau. Le Pi va éventuellement vous demander de choisir une disposition clavier (mettre French) et de faire une mise à jour, à la suite de laquelle il redémarrera. Sinon, la première chose à faire pour se faciliter la vie est de changer la disposition de clavier en français (ou tout autre clavier que vous avez). Pour cela, cliquer sur la framboise en haut à gauche, puis sur "Preferences" et enfin "Mouse and keyboard settings". Dans la fenêtre qui s'ouvre, cliquer sur "Keyboard", puis sur "Keyboard layout" (disposition clavier). Enfin, cherchez votre disposition clavier (par exemple, "French" pour français) en face de "Layout", cliquer sur "OK" et attendre quelques secondes que les paramètres soient appliqués.

Ensuite, il faut lancer un terminal. Pour cela, cliquer sur le carré noir écrit ">_" en haut. Nous allons taper des commandes textuelles pour l'installation, une par une. Le bout de texte "pi@raspberrypi:~ $" (appelé prompt) déjà présent indique que le terminal est prêt à recevoir une commande : il réapparaitra en dessous du résultat quand la commande précédente sera finie. Il faut donc bien attendre celui-ci.

Bien penser à appuyer sur la touche "Entrée" pour lancer une commande une fois celle-ci tapée.

Taper les commande suivantes (tel qu'également indiquées dans le tutoriel de TinyCheck) :

Se rendre dans le dossier temporaire "/tmp" :

cd /tmp

Cette commande s'exécute quasi immédiatement. Ensuite, lancer le téléchargement du projet depuis Github :

git clone https://github.com/KasperskyLab/TinyCheck

Se rendre dans le dossier alors créé :

cd TinyCheck

Et enfin lancer l'installation :

sudo bash install.sh

Au bout de quelques minutes, le programme vous posera quelques questions. Il est conseillé de répondre comme suit :

[?] The interface eth0 is connected. Do you want to use it as a bridge to Internet (network/out) ? [Yes/No]

Le logiciel demande s'il peut utiliser le câble "Internet" pour disposer d'internet. Taper "yes" et appuyer sur la touche "Entrée".

[?] The interface wlan0 can be used for the Wi-Fi Access Point. Do you want to use it for the TinyCheck Access Point? [Yes/No] yes

Le logiciel demande s'il peut utiliser le Wi-fi pour proposer l'accès nécessaire à son fonctionnement. Taper "yes" et appuyer sur la touche "Entrée".

[+] Setting the user language...
 Please choose a language for the reports and the user interface (en/fr/cat/es): fr

Le logiciel demande la langue à utiliser : l'équipe ayant des personnes francophones en son sein, le français est disponible : taper "fr" et appuyer sur la touche "Entrée".

[+] Setting the backend credentials...
 Please choose a username for TinyCheck's backend: bob
 Please choose a password for TinyCheck's backend:
 Please confirm the password:

Le logiciel demande de créer un identifiant et un mot de passe : rentrer un nom (sans accent, majuscule ou espace), appuyer sur la touche "Entrée" pour valider, taper le mot de passe, appuyer à nouveau sur la touche "Entrée" pour valider, et retaper le même mot de passe pour confirmer (et vous ne devinerez jamais, appuyez sur la touche entrée pour valider).

[?] Do you want to start TinyCheck in fullscreen during the system startup (aka. Kiosk mode)? [Yes/No]

Le logiciel demande s'il doit se lancer dès le démarrage du raspberry pi : taper "no" pour l'instant, et appuyer sur la touche "Entrée" pour valider.

L'installation va continuer un peu, puis le logiciel affichera une simili fenêtre dans le terminal pour demander s'il doit laisser l'accès à un mode spécial du Wi-Fi aux autres comptes : simplement appuyer sur la touche "Entrée" pour répondre non :

Une capture d'écran de la fenêtre s'ouvrant lors du lancement de TinyCheck demandant le mode d'exécution.

L'installation à proprement dit commence alors et va tourner pendant un bon moment, possiblement plus d'une heure. N'hésitez pas à faire autre chose à côté. L'utilitaire va alors tourner pendant un bon moment afin de mettre en place tous les éléments nécessaires à son fonctionnement.

À la fin de l'installation, le programme redémarre alors le pi : si vous n'avez pas eu la fenêtre de sélection de langue lors du premier démarrage, celle-ci s'affichera alors. Comme indiqué prédédemment, sélectionner l'option "French".

Une icône est désormais présente sur le bureau : le logiciel est prêt à être utilisé.

Utilisation#

Tout d'abord, vérifier si le Wi-Fi est activé : pour cela cliquer sur les deux flèches bleues "⇵" en haut à droite de l'écran. Si l'option "Turn Wi-fi On" apparait, cliquer dessus, sinon si "No Wireless network found" apparait c'est que tout est bon.

Double-cliquer sur l'icône appelée "TinyCheck" sur le bureau, et dans la fenêtre qui s'affiche cliquer sur "Exécuter" (et non "Exécuter dans un terminal") :

Une capture d'écran de la fenêtre s'ouvrant lors du lancement de TinyCheck demandant le mode d'exécution.

Le navigateur internet s'ouvre, et après quelques secondes de chargement l'interface s'affiche :

Une capture d'écran de TinyCheck sur l'écran de démarrage, avec un bouton "Allons-y".

Le logiciel crée alors un réseau Wi-Fi temporaire : cela peut prendre plusieurs secondes. Si cela dure plus d'une minute, revérifier que le Wi-Fi est allumé comme indiqué précédemment. Il affiche ensuite les informations de connexion : connecter le smartphone en activant son wi-Fi et au choix en rentrant le nom et le mot de passe ou en scannant le QRCode.

Très important : il faut couper les "données mobiles" (3G, 4G, etc) du smartphone pour s'assurer que toutes les données transit par le Wifi : pour cela, se rendre dans les paramètres dans la catégorie "Réseaux mobiles" et décocher l'option "données mobiles" : la procédure peut changer selon les modèles, ne pas hésiter à se renseigner sur le web. Penser également à les réactiver après. Pour ne pas créer des incohérences, ne pas essayer de connecter plusieurs appareils en même temps.

Une fois connecté, le logiciel lance tout seul le scan et affiche un chronomètre indiquant depuis combien de temps le scan tourne. Il faut alors utiliser le smartphone de manière "typique", en lançant les applications régulièrement utiliseés, ouvrir une page web, et également lancer un redémarrage de l'appareil, car certains logiciels espions s'actionnent au moment du démarrage.

Après quelques minutes d'utilisation (le plus longtemps ça dure le mieux c'est), cliquer sur "Arrêter la capture". Ensuite, cliquer sur "Oui, allons-y" pour lancer l'analyse : celle-ci peut durer plusieurs minutes. Une fois fini, le logiciel affichera un compte rendu rapide

Il ne faut pas prendre ce compte-rendu au pied de la lettre, mais jeter un œil au rapport complet et le comprendre.

Analyser et comprendre les résultats#

Le logiciel peut potentiellement afficher un écran effrayant comme celui-ci :

Une capture d'écran de TinyCheck avec une alerte de niveau "moyen", indiquant une potentielle compromission.

Celui-ci se contente de checher des "Indicateurs de compromission" (Indicators of compromise, IoC). Le nom est approprié car cela n'est pas forcément révélateur d'une compromission, seulement d'une éventualité. Généralement les comportements atypiques mais bénins ressortiront comme de niveau "faible" ou "moyen". Une alerte de niveau "élevé" est en revanche mauvais signe, car généralement dû à un comportement malveillant bien reconnu.

En cliquant sur "Lire le rapport complet", nous pouvons consulter le résultat détaillé :

Une capture d'écran du TinyCheck rapport de TinyCheck

Dans cet exemple précis, la première alerte de niveau "moyen" est simplement due à mon Nextcloud personnel, et les alertes de niveau "faible" à l'application FaceBook Messenger. D'autres alertes de niveau "faibles" sont apparues dues aux pratiques réseau bancales de l'application Telegram.

Que faire en cas de compromission ?#

La marche à suivre en cas de compromission dépend fortement de la situation : dans le cas d'un stalkerware installé dans le cadre d'une relation abusive, il sera difficile d'enlever le logiciel car :

Le mieux serait de fournir un autre téléphone à la personne, complètement isolé du premier (nouvelle carte SIM, nouveaux comptes mails, etc) pour permettre de maintenir la communication, et d'agir à la source du problème ; ce que Tinycheck n'est pas en mesure de faire, évidemment.