Pegasus: fonctionnement et détection du puissant logiciel d'espionnage

Le logiciel espion Pegasus fait la une de l’actualité tech en ce moment. Et pour cause, il s’agit de l’affaire de surveillance et de cyberattaque la plus importante depuis les révélations d’Edward Snowden sur les agissements de la NSA en 2013.

Quelques jours après les premiers éléments d’informations diffusés par Forbidden Stories, on en sait un peu plus sur le mode opératoire de Pegasus, le logiciel utilisé pour pirater des dizaines de milliers de terminaux mobiles de hauts placés politiques, avocats et journalistes à travers le monde ces derniers mois. Il faut d’ailleurs savoir que, si Pegasus pénètre de manière totalement silencieuse et invisible sur un iPhone ou un smartphone Android, il y a désormais un moyen de savoir si vous avez été victime du logiciel, comme décrit plus bas dans l’article.

Quel mode de fonctionnement pour le logiciel espion Pegasus ?

Tout d'abord, remarquons que le logiciel Pegasus n'est pas unique en son genre. Il y a des milliers d’outils qui permettent d’espionner ce qui se passe sur un téléphone portable. Mais au sein de cet écosystème, il existe une toute petite élite de Big Brothers à laquelle appartient Pegasus. Leur particularité ? La discrétion. 

Pegasus appartient à cette petite famille de logiciels espions qui peuvent être activés à distance, sans aucune interaction avec la victime. Autrement dit, la cible n’a pas besoin de cliquer sur un lien, de se rendre sur un faux site ou de répondre à un message pour que le programme de surveillance se mette en branle. Il suffit de rentrer le numéro de téléphone à surveiller sur une plateforme de contrôle à distance et le tour est joué, Pegasus s’occupe du reste. On comprend que ces logiciels se basent sur vulnérabilités zero-day des appareils visés – iPhone et Android – qui ne sont pas encore connues des fabricants de ces smartphones. Il suffit ensuite d'envoyer, par exemple, un code sur le numéro de la victime pour mettre le téléphone sur écoute. Le destinataire n’a même pas besoin d’ouvrir le message.

Une fois que Pegasus est déployé sur le smartphone désiré, il offre un accès total au client, passant même outre les solutions de chiffrement des logiciels Signal, WhatsApp ou bien encore Telegram. En fait, toute l’activité du téléphone peut être surveillée. Cela va des contenus photo et vidéo, aux mots de passe, en passant par les messages, les mails, la navigation internet, la position GPS, etc. C’est comme si un tiers disposait d'un "clone" en temps réel de votre smartphone. 

Comment savoir si mon téléphone a été visé par Pegasus ?

Il existe une méthode un peu technique, à l’heure de la publication de cet article, permettant de dire si oui ou non, votre smartphone héberge le logiciel espion Pegasus. Il faut utiliser le Mobile Verification Toolkit (ou MVT), disponible sur GitHub, qui peut notamment être installé sur Linux et macOS via le terminal. Et c’est par lignes de commande que cet outil va alors être en mesure de vérifier une sauvegarde tout entière du smartphone, faite sur un laptop via liaison câblée. Une fois le backup analysé, le MVT peut affirmer si le smartphone a été infecté par Pegasus ou non. Vous pouvez avoir plus d’informations sur la documentation officielle de MVT.

1. Installation de MVT

Vous devez d'abord installer les dépendances, sous Linux apt-get install python3 python3-pip libusb-1.0-0, ou sous MacOS brew install python3 libusb

Ensuite, vous pouvez installer mvt depuis pypi avec pip install mvt, ou directement depuis les sources :

git clone https://github.com/mvt-project/mvt.git
cd mvt
pip3 install .

Vous devriez maintenant avoir les utilitaires mvt-ios et mvt-android installés.

2. Utilisation de MVT sous Android

Pour différentes raisons techniques, il est plus complexe de faire une analyse forensic d'un téléphone Android. Actuellement MVT permet d'effectuer deux vérifications différentes sur un téléphone Android : Télécharger les APK installés afin de les analyser ou Extraire la sauvegarde Android afin de rechercher les SMS suspects. Nous présenterons dans cet article la deuxième méthode.
Pour ce faire, vous devez connecter votre appareil Android à votre ordinateur. 

Vous devrez ensuite activer le débogage USB sur l'appareil Android. Si c'est la première fois que vous vous connectez à cet appareil, vous devrez approuver les clés d'authentification via une invite qui apparaîtra sur votre appareil Android. 

Ensuite, vous pouvez utiliser adb pour extraire la sauvegarde pour SMS uniquement avec la commande suivante : 

adb backup com.android.providers.telephony

Vous devrez approuver la sauvegarde sur le téléphone et éventuellement entrer un mot de passe pour chiffrer la sauvegarde. La sauvegarde sera alors stockée dans un fichier nommé backup.ab. 

Vous devrez utiliser Android Backup Extractor pour le convertir en un format de fichier lisible. Assurez-vous que Java est installé sur votre système et utilisez les commandes suivantes : 

java -jar ~/Downloads/abe.jar unpack backup.ab backup.tar
tar xvf backup.tar

Si la sauvegarde est chiffrée, le mot de passe sera demandé par Android Backup Extractor. Vous pouvez ensuite extraire les SMS contenant des liens avec MVT :

mvt-android check-backup --output sms .

Grâce à l'option --iocs, vous pouvez spécifier un fichier STIX2 définissant une liste d'indicateurs malveillants à vérifier par rapport aux enregistrements extraits de la sauvegarde par mvt. Toutes les correspondances seront mises en évidence dans la sortie du terminal.

3. Utilisation de MVT sous iOS

La meilleure option consiste à générer une sauvegarde iTunes (dans la version la plus récente de macOS, elles ne sont plus lancées depuis iTunes, mais directement depuis le Finder). Il est possible de faire une sauvegarde iPhone en utilisant iTunes sur des ordinateurs Windows ou Mac (dans les versions les plus récentes de MacOS, cette fonctionnalité est incluse dans le Finder). Une fois la sauvegarde terminée, vous pouvez la retrouver dans ~/Library/Application Support/MobileSync/

Si vous disposez d'une sauvegarde chiffrée, vous devrez d'abord la déchiffrer. Cela peut également être fait avec mvt-ios. Vous pouvez spécifier un mot de passe via la ligne de commande ou transmettre un fichier de clé, et vous devez spécifier un chemin de destination où la sauvegarde déchiffrée sera stockée, comme suit :

mvt-ios decrypt-backup -p password -d /path/to/decrypted /path/to/backup

Une fois que vous disposez d'une sauvegarde déchiffrée pour analyse, vous pouvez utiliser la sous-commande check-backup :

mvt-ios check-backup --output /path/to/output/ /path/to/backup/udid/

Cette commande créera quelques fichiers JSON contenant les résultats de l'extraction. Si vous ne spécifiez pas d'option --output, mvt-ios traitera simplement les données sans stocker les résultats sur le disque.

Grâce à l'argument --iocs, vous pouvez spécifier un fichier STIX2 définissant une liste d'indicateurs malveillants à vérifier par rapport aux enregistrements extraits de la sauvegarde par mvt. Toutes les correspondances seront mises en évidence dans la sortie du terminal et enregistrées dans le dossier de sortie à l'aide d'un suffixe "_detected" au nom du fichier JSON.

 

La Rédaction d’Africa CyberSecurity Mag

Sources : iphon.fr, mvt.readthedocs.io