Avant de toucher à quoi que ce soit
Tu perdrais les preuves.
Pour chercher de l'aide et changer tes mots de passe, prends-en un de confiance.
Avec la date et des captures. Si c'est sérieux, qu'une personne de confiance soit au courant.
Qu'est-ce qui t'arrive ? Commence ici
Je vais à la grève ou à une manifQue faire de ton téléphone avant, pendant et après.
J’ai reçu une alerte d’Apple, Google ou WhatsAppComment savoir si elle est réelle et quoi faire.
Je n’ai plus de ligne, je reçois des codes ou mes appels sont bizarresD’abord l’urgent. Ensuite, cinq minutes.
Quelqu’un sait ce que j’écris sur WhatsApp ou par mailRegarde sur quels appareils ton compte est ouvert.
Je crois qu’on m’espionne ou qu’on a mis quelque chose sur mon téléphone ou mon ordinateurQuinze minutes. Étapes pour iPhone, Android et ordinateur.
Ça peut être une interception judiciaire ?Ce qu’on peut savoir et ce que dit la loi.
Je viens monter le laboratoireZero Breach Toolkit, MVT et PiRogue.
Où se passe chaque intrusion
C'est quoi, exactement, chaque cas ?Il y a cinq cas différents, et l'un d'eux ne se voit pas depuis le téléphone.
| Ce que c'est | Peux-tu le voir toi-même ? |
|---|---|
| Renvoi d'appel ou duplicata de SIM. Tes appels ou tes SMS partent ailleurs. | Oui. Étape 1. |
| Compte ouvert ailleurs. WhatsApp Web, Telegram ou Google sur un appareil qui n'est pas le tien. C'est l'un des cas les plus courants. | Oui. Étape 2. |
| Appli espionne (stalkerware). Quelqu'un a eu ton téléphone en main et y a installé quelque chose. | Souvent, oui. Étape 2. |
| Spyware payant (Pegasus, Predator, Graphite). Il vise des journalistes, des militantes et des personnes précises. Il peut entrer sans que tu touches à rien. | À l'œil nu, non. Il faut un labo, et même là, il peut ne pas apparaître. Étape 3. |
| Interception judiciaire. C'est l'opérateur qui la réalise, sur ordre d'un tribunal. | Non. Elle ne laisse aucune trace sur le téléphone et reste secrète tant qu'elle dure. Une fois terminée, tu as le droit de le savoir. |
Grèves et manifestations
Avant
- Fais une sauvegarde.
- Mets un code long et retire Face ID ou l'empreinte.
- Convenez d'un point de rendez-vous au cas où il n'y aurait pas de réseau.
- Envisage de prendre un téléphone avec peu de données, ou aucune.
- Passe en revue les appareils liés et active la vérification en deux étapes.
- Si tu organises quelque chose, regarde les fausses antennes.
Pendant
- Si tu crains qu'on te le prenne, éteins-le : le mode avion ne suffit pas.
- Prends les photos depuis l'écran verrouillé, sans déverrouiller.
Après
- Floute les visages avant de publier.
- Si on t'a pris le téléphone, même un moment, vérifie-le : étape 2.
D'après le guide de l'EFF (s’ouvre dans un nouvel onglet), pensé pour les États-Unis, et ceux de TeknoKasa (s’ouvre dans un nouvel onglet). Ce n'est pas un conseil juridique : pour savoir quoi faire si on te demande ton téléphone en Espagne, parles-en à ton avocate ou à un collectif antirépression.
Guides de TeknoKasa (Madrid) : verrouillage du téléphone et arrestation (s’ouvre dans un nouvel onglet) Guide de l'EFF pour aller à une manifestation (en anglais) (s’ouvre dans un nouvel onglet)Alerte d’Apple, Google ou WhatsApp
- Ne touche à aucun lien et ne donne aucun code. Dans ces alertes, Apple ne te demande jamais de cliquer sur des liens, d’installer quoi que ce soit ni de donner des mots de passe ou des codes. Si on te le demande, c’est faux.
- Vérifie sans passer par le message. Chez Apple, va à la main sur account.apple.com (s’ouvre dans un nouvel onglet) : si elle est réelle, une alerte s’affiche tout en haut. Chez Google ou WhatsApp, ouvre toi-même l’appli ou le site, pas le lien.
- Si elle est réelle : elle indique qu’il y a eu une tentative, pas que tu es infectée. N’efface rien, ne restaure pas et ne mets rien à jour.
- Demande de l’aide : lignes d’assistance.
Appels et opérateur
Tu vas composer quelques codes et passer un appel.
Urgent. Plus de réseau d’un coup, avec des codes ou des alertes que tu n’as pas demandés ? C’est peut-être un duplicata de SIM.
- Appelle tout de suite ton opérateur depuis un autre téléphone. Si le numéro court ne marche pas depuis une autre ligne, cherche le numéro long sur son site.
- Change les mots de passe de ton mail et de ta banque depuis un appareil de confiance.
1.1 Regarde s'il y a des renvois
Ouvre l'appli Téléphone, compose le code comme un numéro normal et lance l'appel. Prends une photo ou une capture du résultat avant de changer quoi que ce soit.
| Compose | Te dit si les appels sont renvoyés… |
|---|---|
*#21# | tous, tout le temps. C'est le plus important. |
*#61# | quand tu ne réponds pas. |
*#62# | quand tu n'as pas de réseau ou que ton téléphone est éteint. |
*#67# | quand tu es déjà en ligne. |
1.2 Ce que ça veut dire
Il n'y a pas de renvoi. Ça veut dire ça, et rien de plus : ça ne dit rien des applis espionnes ni des interceptions.
- C'est souvent ta messagerie vocale : c'est normal.
- Demande à ton opérateur si ce numéro est le sien.
- Sinon, retire-le avec
##61#,##62#ou##67#.
Ce n'est pas mauvais signe : avec les appels en 4G (VoLTE), certains codes ne marchent pas. Regarde dans l'appli de ton opérateur ou pose la question par téléphone.
Tes appels partent vers ce numéro. Ton téléphone ne sonne même pas.
- Prends l'écran en photo.
- Compose
##21#pour le retirer. - Recompose
*#21#: ça doit afficher « désactivé ». - Appelle ton opérateur et demande quand il a été activé.
- Change tes mots de passe importants depuis un autre appareil.
1.3 Retire les renvois dont tu ne veux pas
##21#,##61#,##62#,##67#retirent chacun le leur.##002#les retire tous d'un coup. Attention, celui de la messagerie vocale aussi : si tu t'en sers, tu devras peut-être le réactiver.
Tu peux aussi vérifier dans les réglages :
- iPhone : Réglages > Apps > Téléphone > Renvoi d'appel.
- Android : appli Téléphone, ses paramètres, puis Renvoi d'appel.
L'intox du *#06#. Il paraît que si tu composes *#06# et que rien ne s'affiche, tu es sur écoute. Ce code montre seulement l'IMEI, le numéro de série du téléphone. Il ne détecte rien.
1.4 Appelle ton opérateur
| Opérateur | Téléphone | Horaires |
|---|---|---|
| Movistar | 1004 | Tous les jours, de 9 h à 22 h |
| Vodafone | 22123 | 24 h/24 |
| Orange | 1470 | Du lundi au samedi, de 9 h à 22 h |
| Yoigo | 622 622 622 622 depuis un autre opérateur | 24 h/24 |
| O2 | 1551 | Tous les jours, de 9 h à 22 h |
| Digi | 1200 | Tous les jours, de 7 h à 24 h |
Autre opérateur, ou numéro qui ne répond pas : regarde sur ta facture ou sur son site. Si tu te méfies de ta ligne, appelle depuis un autre téléphone.
Pose ces questions, telles quelles
- Y a-t-il un renvoi actif sur ma ligne ? Vers quel numéro ?
- Un duplicata de SIM ou un passage en eSIM a-t-il été fait récemment ? Quand et où ?
- Y a-t-il d'autres lignes à mon nom, ou une portabilité ou un changement de titulaire en cours ?
- Quelles mesures avez-vous contre les duplicatas de SIM ? Je veux les activer.
Profites-en pour changer le code PIN de ta messagerie vocale s'il est encore celui d'origine.
Et si c'est une interception judiciaire
- Ni les codes de renvoi ni un appel à l'opérateur ne la révèlent.
- Tant qu'elle dure, elle est secrète.
- Quand elle prend fin, tu as le droit de le savoir par le tribunal, avec des exceptions.
Ce que dit la loi, point par point
- Les codes de renvoi ne la montrent pas non plus. Ils affichent les renvois normaux de ta ligne. Une interception ne renvoie pas l'appel : le réseau en fait une copie, et la norme technique (3GPP TS 33.106) (s’ouvre dans un nouvel onglet) exige qu'elle n'altère pas tes services et ne donne aucun signe.
- En appelant, on ne te le dira pas. L'opérateur a l'obligation légale de garder le secret, et il peut être poursuivi pour désobéissance s'il ne le fait pas (LECrim, art. 588 ter e (s’ouvre dans un nouvel onglet)). Un « on ne voit rien d'anormal » ne l'écarte pas.
- Tant qu'elle dure, elle est secrète : elle est traitée dans un dossier séparé et secret (art. 588 bis d (s’ouvre dans un nouvel onglet)).
- Une fois terminée, tu as le droit de le savoir. Les parties à la procédure reçoivent une copie des enregistrements et des transcriptions. Et le tribunal doit en informer les personnes qui apparaissent dans les communications interceptées, sauf si c'est impossible, si cela demande un effort disproportionné ou si cela nuit à de futures enquêtes (art. 588 ter i (s’ouvre dans un nouvel onglet)).
- Si tu penses qu'une procédure est ouverte contre toi, c'est ton avocate qui peut poser la question au tribunal.
- Données entre les mains de la police : tu peux les demander, mais on peut te les refuser pour ne pas nuire à une enquête. Dans ce cas, tu peux exercer ce droit par l'intermédiaire de l'AEPD, l'autorité espagnole de protection des données (LO 7/2021, arts. 24 et 25 (s’ouvre dans un nouvel onglet)).
Et s’il s’agit d’une perquisition à distance du téléphone (art. 588 septies)2,5 millions · Fortier Europe · fabricant non divulgué
En octobre 2026, le BOE, le journal officiel espagnol, a annoncé (s’ouvre dans un nouvel onglet) que la Guardia Civil avait acheté pour 2 066 115,70 € (environ 2,5 millions TVA comprise) un système de « perquisitions à distance » de téléphones. Il peut « héberger un logiciel » sur Android et iOS pour un « accès transparent » aux contenus et aux communications.
Le marché a été attribué à Fortier Europe, de Boadilla del Monte, par procédure négociée sans publicité et avec une seule offre, au motif de l'exclusivité du fabricant.
Ce qu'on ne sait pas : qui le fabrique, comment il s'installe et si c'est Pegasus. L'avis ne le dit pas, et l'attribuer aujourd'hui à un produit précis relèverait de la spéculation.
La loi (LECrim, art. 588 septies (s’ouvre dans un nouvel onglet)) exige une autorisation judiciaire et le limite à certains délits, pendant un mois renouvelable jusqu'à trois. Auparavant, Citizen Lab a recensé (s’ouvre dans un nouvel onglet) au moins 65 personnes de la mouvance indépendantiste catalane attaquées avec Pegasus et Candiru.
Les données de ta ligne, par écrit
Ce que tu peux demander à l'opérateur, ce sont tes données, grâce au droit d'accès (s’ouvre dans un nouvel onglet) du RGPD (art. 15). Il a un mois pour répondre, et l'AEPD propose un formulaire (s’ouvre dans un nouvel onglet).
Encore des doutes ? Vérifie ton téléphone ↓Vérifie ton téléphone, ton ordinateur et tes comptes
Tu vas regarder ce qui est ouvert et ce qui est installé.
Si tu as de forts soupçons (alerte de spyware, ou tu es journaliste ou militante et il s'est passé quelque chose de précis) :
- Ne restaure et n'efface rien : les preuves se perdent.
- Ne mets pas à jour et, si tu peux, demande avant de redémarrer.
- Regarder les menus, ça tu peux.
- Va à l'étape 3.
2.1 Commence par tes comptes
C’est le plus rapide et c’est ce qui trouve le problème le plus souvent. Fais une capture d’écran, puis ferme ce que tu ne reconnais pas :
- WhatsApp : Réglages > Appareils connectés. Active aussi Réglages > Compte > Validation en deux étapes.
- Signal : Réglages > Appareils reliés.
- Telegram : Paramètres > Appareils.
- Google : myaccount.google.com/device-activity (s’ouvre dans un nouvel onglet).
- E-mail : cherche dans les réglages des transferts ou des filtres que tu n'as pas mis toi-même.
Ne scanne pas de QR pour « vérifier » quoi que ce soit si ce n’est pas toi qui as lancé l’association.
Rien de bizarre et on sait toujours ce que tu écris ? Demande de l’aide.
Ensuite, change tes mots de passe depuis un appareil de confiance, pas depuis celui que tu soupçonnes.
2.2 Ce que veut dire ce que tu remarques
Batterie, codes que tu n’as pas demandés, liens bizarres, bruits...
| Ce que tu remarques | Ce que c'est, le plus souvent |
|---|---|
| Batterie qui tient peu, téléphone chaud, consommation de données | Une vieille batterie ou une appli normale. Ça peut être une appli espionne, mais à lui seul, ce signe ne prouve rien. Regarde laquelle consomme dans les réglages de la batterie. |
| Bruits ou écho pendant les appels | Mauvais réseau. Une interception moderne ne s'entend pas. |
| Codes de vérification que tu n'as pas demandés | Quelqu'un essaie d'entrer dans ce compte. Change le mot de passe et active la validation en deux étapes. |
| Message bizarre avec un lien, même s'il vient de ta banque ou d'« une amie » | C’est une arnaque (phishing). Ne l’ouvre pas. Si tu l’as déjà ouvert, garde-le et continue ta lecture. |
| Quelqu'un sait des choses que tu n'as dites que par téléphone | Regarde d'abord les sessions ouvertes. S'il n'y a rien, passe à l'étape 3. |
| Alerte officielle d'Apple, de Google ou de WhatsApp sur des attaques de spyware | Celle-ci est sérieuse : elle indique qu'il y a eu une tentative, pas que tu es infectée. Seule une analyse peut le confirmer. Étape 3. |
Le spyware haut de gamme ne donne aucun signe. Qu'un téléphone marche bien ne l'écarte pas, et qu'il marche mal ne le confirme pas non plus.
Mythes et fausses alertesY compris l'« astuce » d'éteindre son téléphone cinq minutes.
« Éteindre son téléphone cinq minutes par jour le protège. » C'est ce qu'a expliqué Pedro Sánchez (s’ouvre dans un nouvel onglet) en octobre. Il y a du vrai : beaucoup de spywares commerciaux ne survivent pas à un redémarrage, donc redémarrer souvent aide. Mais ça ne corrige pas la faille (s’ouvre dans un nouvel onglet) par laquelle ils sont entrés, et ils peuvent revenir.
« Batterie, chaleur ou clics = sur écoute. » À eux seuls, ces signes ne prouvent rien.
« Une appli dit que je suis propre, donc je le suis. » Ça veut seulement dire qu'elle n'a pas trouvé ce qui est déjà connu. C'est une fausse sécurité.
« Alerte d'Apple = infectée. » Elle indique une tentative (s’ouvre dans un nouvel onglet). La confirmation vient d'une analyse forensique.
« La première chose à faire, c'est de tout formater. » Ça détruit les preuves. Demande d'abord de l'aide.
« Avec Signal, personne ne me lit. » Le chiffrement fonctionne, mais si on te piège pour relier un autre appareil avec un QR code (s’ouvre dans un nouvel onglet), cet appareil reçoit tes nouveaux messages. Ne scanne aucun QR code pour « vérifier » quoi que ce soit si ce n'est pas toi qui as lancé la liaison.
« En mode avion, je suis invisible. » Seul le fait de l'éteindre (s’ouvre dans un nouvel onglet) offre une garantie.
« Je n'ai rien à cacher. » La surveillance touche aussi les personnes à qui tu parles : sources, camarades, famille.
2.3 Choisis ton appareil et touche pour ouvrir les étapes
iPhone, 7 étapes
- Regarde si Apple t'a prévenue. Les notifications de menace s'affichent sur l'écran verrouillé et dans Réglages, dans un e-mail de
threat-notifications@et dans un avis tout en haut de account.apple.com (s’ouvre dans un nouvel onglet). Dans ces messages, Apple ne te demande jamais de cliquer sur des liens, d'installer quoi que ce soit ni de donner des mots de passe ou des codes. Si on te le demande, c'est un faux. Si c'est un vrai, passe à l'étape 3.email.apple.com - Contrôle de sécurité : Réglages > Confidentialité et sécurité > Contrôle de sécurité > Gérer les partages et les accès. Tu y vois qui a accès à ta position et à tes affaires, et quels appareils sont sur ton compte. « Réinitialisation d'urgence » coupe tous les accès d'un coup.
- Profils : Réglages > Général > VPN et gestion de l'appareil. Si rien n'apparaît, tu n'en as aucun d'installé, ce qui est normal sur un téléphone personnel. Si tu vois un profil que tu ne reconnais pas, prends une photo et demande conseil avant de l'effacer. Si le téléphone appartient à ton entreprise ou à ton établissement scolaire, le profil vient peut-être de là.
- Face ID : Réglages > Face ID et code. S'il y a une « seconde apparence » qui n'est pas la tienne, une autre personne peut le déverrouiller. Change aussi le code si quelqu'un le connaît.
- Applis : descends jusqu'à la Bibliothèque d'apps, écris dans le champ de recherche et parcours la liste. Cherche ce que tu ne te souviens pas d'avoir installé.
- Mets à jour : Réglages > Général > Mise à jour logicielle. Sans soupçon sérieux, c'est l'une des meilleures choses à faire.
- Si tu cours un risque élevé : Réglages > Confidentialité et sécurité > Mode Isolement. Il limite pas mal de choses sur le téléphone, mais c'est sa défense la plus solide contre le spyware payant.
Android, 7 étapes
Les menus changent selon la marque. Si tu ne trouves pas quelque chose, utilise la recherche en haut des Paramètres.
- Play Protect : dans le Play Store, icône de ton profil > Play Protect > Paramètres. Vérifie qu'il est toujours activé et lance une analyse. S'il est désactivé et que ce n'est pas toi qui l'as fait, c'est mauvais signe.
- Accessibilité : Paramètres > Accessibilité, dans la partie des applis installées ou téléchargées. Cette autorisation permet de lire l'écran : c'est la préférée des applis espionnes. S'il y en a une que tu ne connais pas, méfiance.
- Administrateurs : dans Paramètres > Sécurité, cherche « administration de l'appareil ». Sur un téléphone personnel, il ne devrait y avoir que ce qui vient de Google ou de la marque.
- Autorisations spéciales : dans Paramètres > Applis > Accès spéciaux des applis, regarde « Accès aux notifications » et « Installation d'applis inconnues ».
- Applis : dans Paramètres > Applis, affiche-les toutes, y compris celles du système. Méfie-toi des noms vides ou génériques, comme « Sync », « Service » ou « System », sans icône et avec des autorisations pour le micro, la position ou les SMS. Dans le doute, cherche-la depuis un autre appareil.
- Débogage USB : s'il est activé dans Options pour les développeurs et que ce n'est pas toi qui l'as fait, c'est un signe.
- Si tu cours un risque élevé : dans Paramètres > Sécurité et confidentialité > Autres paramètres > Protection Avancée, si ton téléphone l'a (Android 16 ou plus récent).
Ordinateur, 5 étapes
- Contrôle à distance : cherche dans tes programmes TeamViewer, AnyDesk ou des logiciels similaires que tu n'as pas installés toi-même. Ils sont normaux, mais ils permettent de piloter ton ordinateur de l'extérieur. Windows : Paramètres > Applications > Applications installées. Mac : dossier Applications.
- Ce qui se lance tout seul : Windows : Gestionnaire des tâches > Applications de démarrage. Mac : Réglages Système > Général, dans les éléments d'ouverture. Cherche ce que tu ne reconnais pas.
- Gestion à distance sur Mac : Réglages Système > Général > Gestion des appareils. Si le Mac est personnel, rien ne devrait apparaître.
- Analyse : sous Windows, Sécurité Windows > Protection contre les virus et menaces, puis lance une analyse complète. Regarde dans les extensions du navigateur s'il y en a une que tu n'as pas ajoutée.
- Mets à jour le système et le navigateur, sauf si tu as de forts soupçons.
Si tu veux aller un peu plus loin, Zero Breach Toolkit cherche des traces de spywares connus sur l'ordinateur et n'envoie rien sur internet. Il ne regarde que cet ordinateur : il ne te dit pas si le téléphone est infecté.
↑ Revenir au choix de l’appareil2.4 Que faire de ce que tu as vu
Ça ne garantit pas que tu sois propre. Si tu n'as aucune raison de penser qu'on te vise, fais tes mises à jour, utilise des mots de passe différents et la validation en deux étapes.
Fais des captures d’écran avec la date et ferme cette session. Si ce n’est pas clair, va demander de l’aide.
Arrête-toi là. N'efface rien, ne restaure rien et demande de l'aide.
2.5 Complique-leur la tâche pour la prochaine fois
Routine de 10 minutesÀ faire de temps en temps.
- Redémarre le téléphone.
- Installe les mises à jour en attente, du système et des applis.
- Passe en revue les appareils reliés à WhatsApp, Signal, Telegram et Google.
- Utilise un long code de déverrouillage, pas un schéma ni quatre chiffres.
- Efface les applis dont tu ne te sers plus.
Blinde tes comptesMots de passe, clés et vol du téléphone.
- Évite le SMS comme second facteur si tu as une autre option : c'est le plus faible (s’ouvre dans un nouvel onglet). Préfère une passkey ou une appli de codes.
- Clés physiques si tu cours un risque : enregistres-en deux, car si tu perds la seule que tu as, tu te retrouves bloquée.
- iPhone volé : active la Protection en cas de vol de l'appareil (s’ouvre dans un nouvel onglet) dans Réglages > Face ID et code.
- Avant une grève ou une manif, regarde cette partie.
Demande de l'aide
Tu peux venir directement ici, sans faire ce qui précède.
3.1 Lignes d'aide
| Qui | Pour quoi |
|---|---|
| Access Now, Digital Security Helpline (s’ouvre dans un nouvel onglet) | Militantes, journalistes, défenseuses des droits humains et collectifs. Gratuit, 24 h/24, y compris en espagnol. Ils vérifient d'abord qui tu es. |
| Amnesty International, Security Lab (s’ouvre dans un nouvel onglet) | Journalistes, militantes et organisations exposées à des attaques ciblées. |
| INCIBE (s’ouvre dans un nouvel onglet) : 017 |
|
3.2 Guides à suivre, en espagnol
- Kit de premiers secours numériques (s’ouvre dans un nouvel onglet) : il te guide selon ce qui t'arrive.
- Guides d'autodéfense numérique de TeknoKasa (s’ouvre dans un nouvel onglet), de Madrid : verrouillage du téléphone, arrestation et plus encore.
- Évalue tes risques (s’ouvre dans un nouvel onglet), de l'EFF : six questions pour faire ton plan.
- Spyware mercenaire (s’ouvre dans un nouvel onglet), de SocialTIC.
- Data Detox Kit (s’ouvre dans un nouvel onglet), de Tactical Tech.
- Prendre soin de soi quand on traverse ça (s’ouvre dans un nouvel onglet), du même kit.
3.3 Points de rencontre
Nous préparons des points pour vérifier les téléphones en personne. Nous les publierons ici.
Si tu vas à un point de rendez-vous
- Apporte ton téléphone chargé, son câble, ton code de déverrouillage en tête et une liste de ce qui t'est arrivé, avec les dates.
- Tu as le droit de voir tout ce qui est fait et de dire non.
- Personne n'a besoin de tes mots de passe. C'est toi qui les saisis.
- Demande quelles données sont copiées, où elles sont stockées et quand elles sont effacées.
- Méfie-toi de qui te propose sur internet de « nettoyer ton téléphone » : c'est une arnaque classique.
Comment noter ce qui se passeUn modèle pour ne pas perdre les preuves.
Ça te sert à toi et à la personne qui t'aide. Recopie ceci sur papier ou sur un appareil de confiance, avec une ligne par chose bizarre :
Date et heure : Appareil ou compte : Ce qui s'est passé : Numéro, e-mail ou lien concerné : Capture enregistrée (où) : À qui je l'ai dit :
- Fais les captures avant de bloquer ou de signaler un compte : il peut disparaître ensuite.
- N'ouvre pas les liens suspects pour voir ce que c'est. Copie le texte sans cliquer.
- Garde une copie chiffrée. Si c'est trop lourd pour toi, demande à une personne de confiance de s'en occuper.
- Pour porter plainte en Espagne, ce guide (s’ouvre dans un nouvel onglet) explique comment présenter les preuves.
Zone techie : le labo
Pour les hacklabs et pour qui veut apprendre.
Cette partie sert à monter le labo. Tu n'en as pas besoin pour vérifier ton téléphone. Les commandes ne réparent rien à elles seules : un résultat « propre » ne veut pas dire propre, et une correspondance ne veut pas dire infection.
Consentement.
- Seulement ton téléphone, ou celui d'une personne qui te le demande et qui est là.
- Analyser celui d’une autre personne sans son accord peut être un délit.
- La licence de MVT l'interdit expressément.
MVT + AndroidQF (s’ouvre dans un nouvel onglet)
PiRogue Tool Suite (s’ouvre dans un nouvel onglet)
Rayhunter (s’ouvre dans un nouvel onglet)Logos de leurs projets respectifs, seulement pour les identifier. Ce hacklab n'a aucun lien avec eux.
À quoi sert chaque outil
| Outil | Ce qu'il fait | Pour qui |
|---|---|---|
| Zero Breach Toolkit | Cherche des traces publiées de spyware sur les ordinateurs, dans les sauvegardes d'iPhone et dans ce qui est récupéré sur Android. Il a une interface graphique et donne le résultat en langage courant. | Premier filtre, peu de connaissances techniques requises. |
| MVT (Amnesty) | Analyse forensique : extrait des journaux et les compare à des listes d'indicateurs. | Terminal. Le projet lui-même dit qu'il n'est pas fait pour l'autodiagnostic. |
| PiRogue (PTS) | Un Raspberry Pi sert de routeur et analyse le trafic du téléphone. Il ne regarde pas à l'intérieur de l'appareil : il regarde à qui celui-ci parle. | Pour qui s'y connaît en réseaux. |
Ces outils se complètent : les deux premiers regardent ce qui reste stocké sur l'appareil, et PiRogue ce qu'il fait sur le réseau pendant que tu l'observes.
Comment monter le posteLa première chose à faire, avant de toucher au moindre téléphone.
- Un ordinateur portable de confiance avec le disque chiffré, dédié si possible. Si l'ordinateur est compromis, tout l'est.
- Les sauvegardes contiennent toute la vie de la personne : messages, photos, historique. Elles restent en local et chiffrées, et sont effacées quand elle le décide.
- Rien sur le cloud ni sur des services d'analyse en ligne sans son autorisation.
- Mets à jour les indicateurs le jour même. Avec de vieilles listes, le résultat ne vaut rien.
- Face à un résultat positif crédible, arrête de toucher à quoi que ce soit et transmets le cas à Security Lab ou à Access Now.
Triage d’un casQuoi faire et dans quel ordre.
╔════════════════════╗ ╔════════╗ ╔════════════════════╗ ╔════════════╗ ╔══════════════╗ ╔══════════════╗ ║ CAS ║ ║ IOC ║ ║ ACQUÉRIR ║ ║ HASH ║ ║ ANALYSER ║ ║ ESCALADER ║ ╟────────────────────╢ ╟────────╢ mobile ╟────────────────────╢ ╟────────────╢ ╟──────────────╢ si doute ╟──────────────╢ ║ consentement ║─────▶║ à jour ║───────────▶║ copie ou AndroidQF ║─────▶║ possession ║─────▶║ 1 couverture ║─────────────▶║ Access Now ║ ║ hypothèse et dates ║ ╚════════╝ ╚════════════════════╝ ╚════════════╝ ║ 2 alertes ║ ║ Security Lab ║ ╚════════════════════╝ ╚══════════════╝ ╚══════════════╝
╔════════════════════╗
║ CAS ║
╟────────────────────╢
║ consentement ║
║ hypothèse et dates ║
╚════════════════════╝
│
▼
╔════════╗
║ IOC ║
╟────────╢
║ à jour ║
╚════════╝
│ mobile
▼
╔════════════════════╗
║ ACQUÉRIR ║
╟────────────────────╢
║ copie ou AndroidQF ║
╚════════════════════╝
│
▼
╔════════════╗
║ HASH ║
╟────────────╢
║ possession ║
╚════════════╝
│
▼
╔══════════════╗
║ ANALYSER ║
╟──────────────╢
║ 1 couverture ║
║ 2 alertes ║
╚══════════════╝
│ si doute
▼
╔══════════════╗
║ ESCALADER ║
╟──────────────╢
║ Access Now ║
║ Security Lab ║
╚══════════════╝
Ordre proposé par ce hacklab à partir des sources. Aucune n’impose d’ordre unique.
- Avant de toucher à quoi que ce soit. Consentement explicite, qui elle craint et depuis quand. Dates : alerte d’Apple, message bizarre, arrestation, téléphone retenu. Sans hypothèse ni dates, la chronologie ne dit rien.
- Risque élevé ou alerte officielle. Passe directement à Access Now ou à Security Lab. Pas besoin d’analyser d’abord pour demander de l’aide.
- N’y touche pas plus que nécessaire. C’est notre critère : ni réinitialiser, ni mettre à jour, ni désinstaller avant d’acquérir. L’historique de Safari dure quelques mois, et réinitialiser les réglages peut effacer des traces.
- Indicateurs à jour, sur ta machine et avant de brancher le téléphone.
- Acquiers d’abord, analyse ensuite. Ce qui est acquis peut être réanalysé quand de nouveaux indicateurs sortent. Le téléphone, lui, ne sera plus dans le même état.
- Calcule les hashes dès que c’est terminé.
- Analyse et regarde d’abord la couverture : ce qui n’a pas pu être lu. Ensuite les alertes.
- Le réseau à la fin. PiRogue demande des jours d’utilisation en wifi seulement. Ça sert si tu soupçonnes une activité en cours, et une capture propre ne dit rien du passé.
iPhone
pymobiledevice3 usbmux list pymobiledevice3 lockdown info mkdir -p ./caso/copia pymobiledevice3 backup2 backup --full ./caso/copia/
Toujours chiffrée : sans chiffrement, il manque l’historique et l’état de Safari, et les appels. Si tu soupçonnes un accès physique, une copie ne suffit pas car elle ne contient pas ces journaux : il faut un sysdiagnose ou une extraction, de préférence entre des mains expertes. mvt-ios check-sysdiagnose sans plugins ne sort que des données sur l’appareil, et il le signale.
Android
sha256sum -c --ignore-missing checksums.txt chmod +x androidqf_linux_amd64_1.8.3 ./androidqf_linux_amd64_1.8.3 -output ./caso
Réponses raisonnables. Backup : Only SMS. Apps : Only non-system packages. Retirer celles signées avec un certificat de confiance : No. Hash sur le téléphone : No, car c’est lent et ça peut arrêter le collecteur. Intrusion Logs : Yes seulement s’ils étaient activés.
Intrusion Logs : DNS et connexions par appli, lancements de processus, commandes ADB. Android 16 ou supérieur, pour l’instant sur Pixel d’après Security Lab (mai 2026), avec la Protection Avancée. Ils ne sont pas rétroactifs : il faut les activer avant. Ils contiennent l’historique de navigation.
Sources : MVT iOS (s’ouvre dans un nouvel onglet), MVT Android (s’ouvre dans un nouvel onglet), AndroidQF (s’ouvre dans un nouvel onglet), Security Lab (s’ouvre dans un nouvel onglet), Zero Breach (s’ouvre dans un nouvel onglet).
Chaîne de possession et hashesQui a touché quoi, quand et avec quoi.
Ça sert à deux choses : qu’une autre analyste puisse se fier à ta copie et, si l’affaire finit devant un tribunal, démontrer qu’elle n’a pas été altérée. Sur sa valeur légale, demande à une avocate avant de commencer.
Registre
cas : 2026-001 personne : (pseudonyme ; la clé, à part) consentement : date, portée, qui le recueille appareil : modèle, OS, correctif, déverrouillé par elle ? quand qui rôle action hash 2026-11-06 ana analyste reçoit et copie - 2026-11-06 ana analyste sha256 de la copie ab12... 2026-11-07 ana analyste remet à ligne d'aide ab12...
Un identifiant par appareil, une ligne par personne qui le manipule, un scellé si tu le gardes. Heure en UTC. Note aussi les versions des outils.
iPhone
cd ./caso/copia/<UDID> find . -type f -print0 | sort -z | xargs -0 sha256sum > ../copia.sha256 sha256sum -c --quiet ../copia.sha256
decrypt-backup et check-backup acceptent --hashes : l’option enregistre le SHA-256 de chaque fichier dans info.json et affiche le hash de ce info.json. Note-le.
Android
AndroidQF laisse dans le ZIP un hashes.csv (entrée et SHA-256 du contenu, sans en-tête) et acquisition.json avec l’état de chaque module.
sha256sum <UUID>.zip >> caso.sha256
unzip -q <UUID>.zip -d adq/ && cd adq/
python3 -c "
import csv,hashlib
for n,h in csv.reader(open('hashes.csv')):
if hashlib.sha256(open(n,'rb').read()).hexdigest()!=h: print('MAL',n)"
jq -r '.module_results[]|select(.status!="completed")|[.name,.status,.error]|@tsv' acquisition.json
Si la vérification n’affiche rien, tout correspond. hashes.csv est dans l’archive elle-même et ne protège pas contre quelqu’un qui referait le ZIP : d’où le hash externe, gardé ailleurs. Un module partial ou failed veut dire acquisition incomplète, et ça va dans le rapport.
Chiffrer dès l’origine
age-keygen -o privada.txt # sur une autre machine ; elle ne voyage pas avec toi # la clé publique (age1...) va dans key.txt, à côté du binaire ./androidqf_linux_amd64_1.8.3 -output ./caso age --decrypt -i privada.txt -o <UUID>.zip <UUID>.zip.age
Avec key.txt, AndroidQF écrit <UUID>.zip.age et ne laisse pas de ZIP en clair. Celle qui transporte l’ordinateur portable ne peut pas déchiffrer, même sous la contrainte. Sans chiffrement, une panne peut laisser des fichiers temporaires en clair.
Partager et effacer
- Demande à la ligne d’assistance comment elle veut le recevoir.
- Indique avec TLP jusqu’où ça se partage et avec PAP ce qu’on peut en faire. PAP:RED : rien de détectable depuis l’extérieur.
- Signature séparée pour démontrer l’origine :
gpg --detach-sign caso.sha256. - Pour effacer, PTS indique
shred -u. Sur SSD, ne t’y fie pas : ce qui protège, c’est le disque chiffré.
Sources : PTS g6 (s’ouvre dans un nouvel onglet), PTS g4 (s’ouvre dans un nouvel onglet), Colander : chaîne de possession (s’ouvre dans un nouvel onglet), AndroidQF : archives (s’ouvre dans un nouvel onglet).
Zero Breach ToolkitPremier filtre. Avec interface graphique.
Projet très jeune et anonyme. Le dépôt a été créé en octobre 2026, son README dit que le projet est anonyme et nous n’avons trouvé aucun audit indépendant. Les versions 2.0.0 à 2.0.2 pouvaient afficher du vert sans avoir fini de vérifier un téléphone : recommence avec la dernière version stable. Il existe des dépôts aux noms similaires. Télécharge uniquement depuis interplains/Zero-Breach-Toolkit (s’ouvre dans un nouvel onglet).
Installation. Télécharge le programme pour ton système (Windows, Mac ou Linux) et ouvre-le. Comme il n'est pas encore signé, le système et certains antivirus afficheront un avertissement. Vérifie d'abord son origine :
gh attestation verify <fichier> --repo interplains/Zero-Breach-Toolkit gpg --verify SHA256SUMS.txt.asc SHA256SUMS.txt sha256sum -c SHA256SUMS.txt
Mets à jour les listes d'indicateurs avant de lancer la vérification. L'analyse n'envoie rien sur internet.
Ordinateur. Ferme les navigateurs et les applis de messagerie, choisis la vérification « Standard » (15 ou 20 minutes) et clique sur « Start check ».
iPhone. On analyse une sauvegarde sur l'ordinateur, jamais sur le téléphone lui-même. Branche-le, touche Se fier et fais une sauvegarde en cochant « Chiffrer la sauvegarde locale » (Finder sur Mac, Appareils Apple sur Windows). Dans le programme, choisis « A phone » et fais glisser le dossier de la sauvegarde, qui se trouve ici :
Mac: ~/Library/Application Support/MobileSync/Backup Windows: %USERPROFILE%\Apple\MobileSync\Backup
Android. Active les Options pour les développeurs (touche sept fois Numéro de build) et le Débogage USB. Branche avec un câble de données et autorise l'ordinateur. Dans le programme, « A phone » et l'option de récupération depuis Android par USB. Garde le téléphone déverrouillé. À la fin, coupe le Débogage USB.
La collecte guidée d’Android est expérimentale. Réponds : Backup, Only SMS ; Apps, Only non-system ; Remove trusted, No ; le reste, No. Accepte « Back up my data » sur le téléphone.
Comment le lire
Rien des listes publiques n'apparaît aux endroits qu'il a pu lire. Regarde la liste de ce qu'il n'a pas pu vérifier. Un spyware sans traces publiées n'apparaît pas.
Ça veut dire « regarde de plus près », pas « tu es infectée ». N'efface rien et ne visite pas l'adresse indiquée. Garde le rapport et transmets-le à la ligne d'aide. Un domaine partagé peut donner des correspondances innocentes.
MVT (Mobile Verification Toolkit)Analyse forensique en terminal.
Il faut Python 3.11 ou plus récent, et Linux ou Mac. Sous Windows, par WSL. Sa licence lui est propre et restreint l'usage sans consentement : ce n'est donc pas un logiciel libre au sens strict.
sudo apt install python3 python3-venv python3-pip sqlite3 libusb-1.0-0 pipx pipx ensurepath pipx install mvt mvt download-iocs
Après pipx ensurepath, ouvre un autre terminal. MVT demande Python 3.11 : Ubuntu 22.04 ne convient donc pas tel quel.
Par défaut, MVT sort sur le réseau : il suit les liens raccourcis, ce qui peut toucher l’infrastructure du lien reçu. Pour le couper :
export MVT_NETWORK_ACCESS_ALLOWED=false
iPhone
Avec une sauvegarde chiffrée, on voit plus de journaux, comme l'historique de Safari. Tu peux la faire depuis Finder ou Appareils Apple, ou en terminal :
sudo apt install usbmuxd pipx install pymobiledevice3 pymobiledevice3 lockdown pair pymobiledevice3 backup2 encryption on 'MOTDEPASSE' pymobiledevice3 backup2 backup --full ./copia/
S’il y avait déjà un mot de passe de sauvegarde, utilise celui-là. Réinitialiser les réglages, seulement en dernier recours : ça peut effacer des traces.
Ce mot de passe reste dans l'historique du shell : efface-le ensuite. Garde le téléphone déverrouillé. La sauvegarde apparaît dans un sous-dossier portant l'UDID du téléphone. Pour la déchiffrer et l'analyser :
read -rs MVT_IOS_BACKUP_PASSWORD; export MVT_IOS_BACKUP_PASSWORD mvt-ios decrypt-backup -d ./descifrada ./copia/<UDID> unset MVT_IOS_BACKUP_PASSWORD mvt-ios check-backup --output ./salida ./descifrada
Android
MVT n'analyse plus directement par ADB. La récupération se fait avec AndroidQF (s’ouvre dans un nouvel onglet) : active le Débogage USB, autorise l'ordinateur, exécute le binaire et réponds à ses questions. Ensuite :
unzip <UUID>.zip -d adq/ mvt-android check-androidqf --output ./salida ./adq
Extrais toujours le ZIP d’AndroidQF et utilise --output. Dans un test avec des données synthétiques, passer le ZIP directement a donné 0 alerte, sans avertissement clair. Ça n’a pas été confirmé avec un vrai téléphone.
L’option --virustotal est désactivée par défaut. Elle envoie les hashes des APK hors système et nécessite MVT_VT_API_KEY. Laisse-la désactivée, sauf si la personne l’accepte.
PiRogue Tool SuiteUn Raspberry Pi qui analyse le trafic.
C'est un Raspberry Pi qui crée un wifi. Tu y connectes le téléphone et le Pi analyse en direct tout le trafic avec Suricata, à l'aide des règles ProofPoint ET Open et des indicateurs de stalkerware d'Echap.
Matériel : pour avoir des alertes, Raspberry Pi 4 de 4 ou 8 Go : la 3B, la 3B+ et la Pi 4 de 1 ou 2 Go ne font pas tourner Suricata. Elle gère 2 ou 3 téléphones. La Pi 5 utilise une image expérimentale à part. Ça peut aussi être un PC ou une machine virtuelle. Alimentation, microSD de 32 Go (64 Go pour les longues captures) et câble réseau.
Installation
Télécharge l'image de PiRogue OS depuis le guide officiel (s’ouvre dans un nouvel onglet), vérifie le hash et grave-la avec Balena Etcher. Branche le Pi par câble et connecte-toi :
sha256sum PiRogue-OS-*.img.xz # mot de passe initial : raspberry, change-le à la connexion ssh pi@pirogue.local sudo apt update sudo apt dist-upgrade -y sudo apt install pirogue-base -y sudo reboot
Pendant l'installation, réponds Non à l'enregistrement des règles de pare-feu IPv4 et IPv6, et Oui à la capture sans root. Récupère ensuite la clé du wifi et celle du tableau de bord (en version 2.x, elles sont aléatoires ; la 1.x est différente, le guide l'explique) :
pirogue-admin-client wifi get-configuration pirogue-admin-client dashboard get-configuration
Le tableau de bord est sur https://pirogue.local/, avec un certificat autosigné. La télémétrie est activée d’origine : elle envoie chaque jour l’ID, l’ASN, le pays et le système d’exploitation. Coupe-la avant d’y connecter le téléphone de qui que ce soit :
sudo pirogue-telemetry config disable
Pour MVT, suis docs.mvt.re (s’ouvre dans un nouvel onglet) : le guide g7 de PTS utilise des commandes déjà supprimées.
Capture
Lance la capture avant d’allumer le wifi du téléphone, sinon tu perdras les premières connexions. Sur le téléphone : mode avion, wifi seulement et pas de VPN. Les flux apparaissent dans le tableau de bord au bout de 4 minutes environ. Laisse tourner environ 3 jours avec un usage normal. Le tableau de bord garde 5 jours.
Pour capturer dans un fichier et l'ouvrir ensuite dans Wireshark :
sudo tcpdump -i wlan0 -w $(date +%Y%m%d%H%M)_captura.pcap scp pi@pirogue.local:~/*_captura.pcap .
Ce que ça veut dire
- Alertes de sécurité : regarde l'heure, la gravité, le type de menace, le nom de la règle et les IP source et destination. Beaucoup sont du bruit, comme la publicité ou les traqueurs. Lis la règle avant de tirer des conclusions.
- Liste des flux et carte : cherche des domaines bizarres, de gros envois de données à des heures creuses ou des connexions régulières quand le téléphone est au repos. Vérifie à qui appartient chaque destination. La plupart seront Apple, Google et les applis habituelles.
- Limites : presque tout est chiffré, donc tu vois à qui il se connecte et le volume échangé, pas le contenu. Suricata ne détecte que ce qui est déjà connu. L'absence d'alertes ne garantit rien.
- Vie privée : la capture dresse le portrait de la vie de la personne. Elle se traite comme toute autre sauvegarde : en local, chiffrée et effacée à la fin.
Le projet lui-même recommande que, dans les situations à risque, l'analyse soit suivie par des professionnelles. Guides de PTS (s’ouvre dans un nouvel onglet)
Indicateurs : d’où ils viennent et comment s’en servirSTIX2, mise à jour et limites.
╔════════════════════════╗ ╔═════════════════╗ ║ ENQUÊTES ║ STIX2 ║ mvt-indicators ║ ╔═══════════════════╗ ╔═════╗ ╟────────────────────────╢──────────▶╟─────────────────╢─────▶║ mvt download-iocs ║─────▶║ MVT ║ ║ Amnesty, Echap, autres ║ ║ indicators.yaml ║ ╚═══════════════════╝ ╚═════╝ ╚════════════════════════╝ ╚═════════════════╝
╔════════════════════════╗
║ ENQUÊTES ║
╟────────────────────────╢
║ Amnesty, Echap, autres ║
╚════════════════════════╝
│ STIX2
▼
╔═════════════════╗
║ mvt-indicators ║
╟─────────────────╢
║ indicators.yaml ║
╚═════════════════╝
│
▼
╔═══════════════════╗
║ mvt download-iocs ║
╚═══════════════════╝
│
▼
╔═════╗
║ MVT ║
╚═════╝╔═════════════════╗ quotidien ╔════════════════╗ ╔══════════╗ ║ ET OPEN + ECHAP ║──────────────▶║ suricata.rules ║─────▶║ SURICATA ║ ╚═════════════════╝ ╚════════════════╝ ╚══════════╝
╔═════════════════╗
║ ET OPEN + ECHAP ║
╚═════════════════╝
│ quotidien
▼
╔════════════════╗
║ suricata.rules ║
╚════════════════╝
│
▼
╔══════════╗
║ SURICATA ║
╚══════════╝
Un indicateur est une donnée précise publiée après une enquête : domaine, nom de processus, hash, ID d’appli. S’il n’apparaît pas, ça veut seulement dire qu’il n’apparaît pas.
- mvt-indicators (s’ouvre dans un nouvel onglet) : la liste que télécharge MVT. Pegasus, Predator, RCS Lab, stalkerware et d’autres.
- AmnestyTech/investigations (s’ouvre dans un nouvel onglet) : ceux des enquêtes d’Amnesty.
- Echap (s’ouvre dans un nouvel onglet) : stalkerware. Alimente aussi les règles de PiRogue.
mvt download-iocs # sous Linux : ~/.local/share/mvt/indicators ; chargés automatiquement mvt-ios check-backup --iocs caso.stix2 --output ./salida ./descifrada export MVT_STIX2="/ruta/uno.stix2:/ruta/dos.stix2" mvt-ios check-iocs --iocs nuevo.stix2 ./salida # sur des résultats déjà extraits
Sur Android, pour appliquer de nouveaux indicateurs, relance check-androidqf sur l’acquisition enregistrée.
Sans réseau. MVT résout les liens raccourcis avec une requête HEAD et vérifie la version et les indicateurs :
export MVT_NETWORK_ACCESS_ALLOWED=false mvt-ios --disable-update-check --disable-indicator-update-check check-backup ...
Ton propre STIX2
MVT implémente un sous-ensemble : une valeur par motif, sans expressions booléennes. Types : domain-name:value, url:value, process:name, email-addr:value, file:name, file:path, file:hashes.md5/.sha1/.sha256, app:id, configuration-profile:id, android-property:name. Chaque module n’utilise que ceux qui le concernent.
{"type":"bundle","id":"bundle--11111111-1111-4111-8111-111111111111","objects":[
{"type":"malware","spec_version":"2.1","id":"malware--22222222-2222-4222-8222-222222222222",
"created":"2026-11-06T00:00:00.000Z","modified":"2026-11-06T00:00:00.000Z",
"name":"caso-prueba","is_family":false},
{"type":"indicator","spec_version":"2.1","id":"indicator--33333333-3333-4333-8333-333333333333",
"created":"2026-11-06T00:00:00.000Z","modified":"2026-11-06T00:00:00.000Z",
"pattern":"[app:id='com.ejemplo.sospechosa']","pattern_type":"stix",
"valid_from":"2026-11-06T00:00:00.000Z","indicator_types":["malicious-activity"]},
{"type":"relationship","spec_version":"2.1","id":"relationship--44444444-4444-4444-8444-444444444444",
"created":"2026-11-06T00:00:00.000Z","modified":"2026-11-06T00:00:00.000Z",
"relationship_type":"indicates",
"source_ref":"indicator--33333333-3333-4333-8333-333333333333",
"target_ref":"malware--22222222-2222-4222-8222-222222222222"}
]}
La collection prend le nom de l’objet malware et il apparaît dans l’alerte. Colander peut aussi exporter un flux STIX2.
Sources : MVT : IOCs (s’ouvre dans un nouvel onglet), PTS g7 (seulement la partie Colander) (s’ouvre dans un nouvel onglet).
Comment lire la sortie de MVTLes vrais fichiers et ce que veut dire chaque module.
╔═════════════════╗
╔════════════════╗ ╔════════════════╗ ╔═══════════════╗ ║ SORTIE ║
╔════════╗ ║ COPIE CHIFFRÉE ║ ║ DÉCHIFFRER ║ ║ CHECK-BACKUP ║ ╟─────────────────╢
║ IPHONE ║ USB ╟────────────────╢ ╟────────────────╢ ╟───────────────╢ ║ alerts.json ║
╚════════╝────────▶║ backup2 ║─────▶║ decrypt-backup ║─────▶║ + indicateurs ║─────▶║ timeline.csv ║
║ <UDID>/ ║ ╚════════════════╝ ╚═══════════════╝ ║ *_detected.json ║
╚════════════════╝ ║ command.log ║
╚═════════════════╝ ╔════════╗
║ IPHONE ║
╚════════╝
│ USB
▼
╔════════════════╗
║ COPIE CHIFFRÉE ║
╟────────────────╢
║ backup2 ║
║ <UDID>/ ║
╚════════════════╝
│
▼
╔════════════════╗
║ DÉCHIFFRER ║
╟────────────────╢
║ decrypt-backup ║
╚════════════════╝
│
▼
╔═══════════════╗
║ CHECK-BACKUP ║
╟───────────────╢
║ + indicateurs ║
╚═══════════════╝
│
▼
╔═════════════════╗
║ SORTIE ║
╟─────────────────╢
║ alerts.json ║
║ timeline.csv ║
║ *_detected.json ║
║ command.log ║
╚═════════════════╝
╔══════════════╗ ╔════════════╗ ╔══════════════════╗ ╔═════════════════╗ ╔═════════════╗
║ ANDROID ║ ║ ANDROIDQF ║ ║ <UUID>.zip[.age] ║ ║ CHECK-ANDROIDQF ║ ║ SORTIE ║
╟──────────────╢ adb ╟────────────╢ ╟──────────────────╢ extraire ╟─────────────────╢ ╟─────────────╢
║ débogage USB ║────────▶║ collecteur ║─────▶║ hashes.csv ║─────────────▶║ dossier extrait ║─────▶║ alerts.json ║
╚══════════════╝ ║ sur mobile ║ ║ acquisition.json ║ ║ + indicateurs ║ ║ command.log ║
╚════════════╝ ╚══════════════════╝ ╚═════════════════╝ ╚═════════════╝ ╔══════════════╗
║ ANDROID ║
╟──────────────╢
║ débogage USB ║
╚══════════════╝
│ adb
▼
╔════════════╗
║ ANDROIDQF ║
╟────────────╢
║ collecteur ║
║ sur mobile ║
╚════════════╝
│
▼
╔══════════════════╗
║ <UUID>.zip[.age] ║
╟──────────────────╢
║ hashes.csv ║
║ acquisition.json ║
╚══════════════════╝
│ extraire
▼
╔═════════════════╗
║ CHECK-ANDROIDQF ║
╟─────────────────╢
║ dossier extrait ║
║ + indicateurs ║
╚═════════════════╝
│
▼
╔═════════════╗
║ SORTIE ║
╟─────────────╢
║ alerts.json ║
║ command.log ║
╚═════════════╝
D’abord : a-t-il lu quelque chose ?
grep -E 'not found|ERROR|WARNING' salida/command.log jq -r '.[]|select(.missing==true)|.relative_path' salida/manifest.json | head
Un module qui ne trouve pas son fichier finit par dire no detections, exactement comme un module propre. Sur iPhone, "missing": true marque ce que la copie n’a pas acquis. Avec AndroidQF, extrais le ZIP et passe le dossier : dans notre test avec un ZIP synthétique, le passer directement a donné 0 alerte.
Les fichiers
alerts.json: toutes les alertes. Commence ici. N’existe que s’il y en a eu.alerts_timeline.csv: les alertes par date. Remplace l’ancientimeline_detected.csv.timeline.csv: tout, par date. C’est ici qu’on comprend une alerte : ce qui s’est passé avant et après. iOS en UTC ; Android, heure locale.<módulo>.jsonet<módulo>_detected.json: ce qui a été extrait et ce qui correspond.urls.json: liens de SMS, iMessage et WhatsApp, avec leur destination si elle a été résolue.info.json: version de MVT, date, indicateurs utilisés et, avec--hashes, les hashes.command.log: journal complet. Il accompagne le rapport.
Niveaux
CRITICAL est, en général, une correspondance avec un indicateur : regarde matched_indicator. HIGH : par exemple, VirusTotal. MEDIUM est souvent une heuristique : une appli installée via ADB, une redirection rapide, un réglage. INFO et LOW donnent du contexte. MVT le dit dans sa sortie : seule la revue experte confirme, et l’absence d’alertes n’est pas un certificat de bonne santé.
jq -r '.[]|[.level,.module,.event_time,.message]|@tsv' salida/alerts.json | sort jq '.[]|select(.level=="CRITICAL")|.matched_indicator' salida/alerts.json
iPhone : les modules qui comptent
datausage: processus ayant une activité réseau, dansDataUsage.sqlite. N’enregistre pas le trafic wifi. Présent dans la copie.netusageseulement dans le système de fichiers.os_analytics_ad_daily: utilisation de données par processus, une autre source pour dater des exécutions.safari_history,safari_browser_state: seulement avec une copie chiffrée. Signale les redirections HTTP vers un autre domaine en moins d’une seconde.webkit_session_resource_log,webkit_resource_load_statistics: domaines chargés, y compris intermédiaires.sms,sms_attachments,whatsapp: liens et pièces jointes.id_status_cache: comptes iMessage et FaceTime consultés. Vide ou absent depuis iOS 14.7.configuration_profiles,profile_events,applications,tcc: profils, applis hors App Store, autorisations.global_preferences: si le mode Isolement est actif.backup_info: modèle et version.manifest: index de la copie, avec chemins et dates.- Seulement avec le système de fichiers :
shutdown_log,cache_files,analytics,safari_favicon,webkit_indexeddb,webkit_local_storage.
Android : les modules qui comptent
aqf_packages: compare le nom, le hash et le certificat. Signale les applis installées par navigateur ou ADB, les paquets de root et la sécurité désactivée.aqf_settings: Play Protect coupé, accessibilité, rapports désactivés. Quand Android l’enregistre, il dit qui a changé chaque réglage.aqf_get_prop: correctif de sécurité.root_binaries,mounts: traces de root.aqf_processes: litps.txt, mais AndroidQF 1.8.3 écritprocesses.json. En attendant de tirer ça au clair, vérifie ce fichier à la main.dns_event,connect_event,security_event: Intrusion Logs, s’il y en a. DNS et connexions comportentpackage_name.
Sources : MVT : registres iOS (s’ouvre dans un nouvel onglet), Intrusion Logs (s’ouvre dans un nouvel onglet), code de MVT (s’ouvre dans un nouvel onglet).
Traces de Pegasus selon AmnestyCe qui est documenté jusqu’en 2021. Pour comprendre, pas pour diagnostiquer.
Lis ça comme de l’histoire documentée. Le rapport date de 2021 et les traces changent. Chercher ces noms à la main n’est pas une méthode : c’est à ça que servent les indicateurs. Ce qui est utile, c’est la logique : plusieurs traces indépendantes qui concordent dans le temps avec l’histoire de la personne.
Processus
iOS garde les processus ayant une activité réseau dans DataUsage.sqlite (présent dans la copie) et netusage.sqlite (absent). Seuls apparaissent ceux qui ont utilisé le réseau. Amnesty a trouvé un processus bh juste après des visites à des domaines d’installation de Pegasus, et a vérifié qu’aucun binaire légitime ne portait ce nom dans les versions récentes d’iOS de l’époque.
La plupart imitent de vrais services : fmld pour fmfd, aggregatenotd pour aggregated, launchafd pour launchd, nehelprd pour nehelper, roleaccountd pour xpcroleaccountd. D’où l’importance de la graphie exacte.
jq -r '.[]|select(.bundle_id==null or .bundle_id=="")|[.first_isodate,.isodate,.proc_name]|@tsv' salida/datausage.json | sort -u
D’après MVT, les processus sans bundle_id valide peuvent mériter de l’attention. C’est une liste à recouper, pas un résultat.
Enregistrements à moitié effacés
Pegasus a effacé des noms de ZPROCESS sans effacer les lignes de ZLIVEUSAGE : il reste des lignes d’utilisation qui pointent vers un processus inexistant. Amnesty l’a toujours vu avec d’autres indicateurs, et jamais sur les iPhone propres qu’elle a analysés. Ça sert à dater. Ce n’est pas une preuve à soi seul.
jq -r '.[]|select(.proc_name==null or .proc_name=="")|[.live_isodate,.live_proc_id,.wwan_in,.wwan_out]|@tsv' salida/datausage.json # directement sur la copie déchiffrée ; fichier 0d/0d609c54856a9bb2d56729df1d68f2958a88426b SELECT l.Z_PK, l.ZHASPROCESS, datetime(l.ZTIMESTAMP+978307200,'unixepoch') FROM ZLIVEUSAGE l LEFT JOIN ZPROCESS p ON l.ZHASPROCESS=p.Z_PK WHERE p.Z_PK IS NULL;
Redirections de Safari
Dans l’injection réseau, la personne demandait un site normal et le navigateur finissait sur un autre : une visite sur Yahoo a sauté vers bun54l2b67.get1tn0w.free247downloads[.]com:30495/szev4hz. Ce qui attirait l’attention : le sous-domaine de quatrième niveau, le port élevé et le chemin aléatoire.
- L’historique de Safari dure quelques mois et a pu être purgé. Amnesty a trouvé les mêmes domaines dans
Favicon.db, que MVT ne lit que dans le système de fichiers. - Safari ne semble pas garder la chaîne complète : les domaines intermédiaires apparaissent dans les Session Resource logs (
webkit_session_resource_log). - Ça arrive aussi hors du navigateur : un cas s’est produit en prévisualisant un lien dans l’appli Twitter.
Autres pistes du rapport
Library/Preferences/com.apple.CrashReporter.plistdansRootDomain: apparaît avec des infections, d’après Amnesty probablement pour couper les rapports de plantage vers Apple. Une piste, pas un indicateur.- Requêtes sur des comptes iMessage inconnus, dans
idstatuscache, peu avant les processus. Vide ou absent depuis iOS 14.7. - D’après Amnesty, Pegasus semblait avoir cessé d’être persistant : le binaire ne se récupère pas sur le disque.
jq -r '.[]|select(.relative_path|test("CrashReporter"))|[.domain,.relative_path,.modified]|@tsv' salida/manifest.json
Android : Amnesty dit qu’il y a nettement moins de traces accessibles que sur iOS, donc l’absence de trace pèse encore moins.
Source : Amnesty : Forensic Methodology Report (s’ouvre dans un nouvel onglet).
Captures et règles SuricataDu tableau de bord au pcap.
╔════════╗ ╔════════════╗ ╔══════════╗ ╔═════════╗ ║ TRAFIC ║ ║ NFSTREAM ║ ║ INFLUXDB ║ ║ GRAFANA ║ ╟────────╢─────▶╟────────────╢─────▶╟──────────╢─────▶╟─────────╢ ║ wlan0 ║ ║ flux, nDPI ║ ║ 5 jours ║ ║ tableau ║ ╚════════╝ ╚════════════╝ ╚══════════╝ ╚═════════╝
╔════════╗
║ TRAFIC ║
╟────────╢
║ wlan0 ║
╚════════╝
│
▼
╔════════════╗
║ NFSTREAM ║
╟────────────╢
║ flux, nDPI ║
╚════════════╝
│
▼
╔══════════╗
║ INFLUXDB ║
╟──────────╢
║ 5 jours ║
╚══════════╝
│
▼
╔═════════╗
║ GRAFANA ║
╟─────────╢
║ tableau ║
╚═════════╝╔════════╗ ╔════════════════╗ ╔══════════╗ ╔═════════╗ ║ TRAFIC ║ ║ SURICATA ║ ║ INFLUXDB ║ ║ GRAFANA ║ ╟────────╢─────▶╟────────────────╢─────▶╟──────────╢─────▶╟─────────╢ ║ wlan0 ║ ║ ET Open, Echap ║ ║ 5 jours ║ ║ tableau ║ ╚════════╝ ╚════════════════╝ ╚══════════╝ ╚═════════╝
╔════════╗
║ TRAFIC ║
╟────────╢
║ wlan0 ║
╚════════╝
│
▼
╔════════════════╗
║ SURICATA ║
╟────────────────╢
║ ET Open, Echap ║
╚════════════════╝
│
▼
╔══════════╗
║ INFLUXDB ║
╟──────────╢
║ 5 jours ║
╚══════════╝
│
▼
╔═════════╗
║ GRAFANA ║
╟─────────╢
║ tableau ║
╚═════════╝╔════════╗ ╔════════╗ ║ TRAFIC ║ ╔═════════╗ ║ .pcap ║ ╟────────╢─────▶║ TCPDUMP ║─────▶╟────────╢ ║ wlan0 ║ ╚═════════╝ ║ à part ║ ╚════════╝ ╚════════╝
╔════════╗
║ TRAFIC ║
╟────────╢
║ wlan0 ║
╚════════╝
│
▼
╔═════════╗
║ TCPDUMP ║
╚═════════╝
│
▼
╔════════╗
║ .pcap ║
╟────────╢
║ à part ║
╚════════╝
NFStream agrège les paquets en flux et classe avec nDPI. Suricata alerte avec des règles. Les deux écrivent dans InfluxDB et Grafana l’affiche. Le tableau de bord efface au bout de 5 jours : exporte avant.
Capture
tmux # pour qu’elle ne meure pas avec le SSH sudo tcpdump -i wlan0 -w $(date +%Y%m%d%H%M)_captura.pcap # maintenant, wifi du téléphone. Environ 3 jours d’usage normal. Ctrl+C pour arrêter. sha256sum *_captura.pcap
Exporter alertes et flux
influx -database 'suricata' -execute 'SELECT * FROM "suricata"."suricata_5d"."alert"' -format 'csv' > alertas.csv influx -database 'flows' -execute 'SELECT * FROM "flows"."flows_5d"."flow"' -format 'csv' > flujos.csv
Flux : requested_server_name, dst_ip, application_name, src2dst_bytes, dst2src_bytes, community_id. Alertes : alert_signature, alert_signature_id, alert_severity, community_id. Les deux tables ont community_id : utilise-le pour recouper une alerte avec son flux.
Regarder le pcap sans passer paquet par paquet
tshark -r c.pcap -Y 'dns.flags.response==0' -T fields -e frame.time_epoch -e dns.qry.name tshark -r c.pcap -Y 'tls.handshake.type==1' -T fields -e frame.time_epoch -e ip.dst -e tls.handshake.extensions_server_name tshark -r c.pcap -q -z conv,ip
- Sors les domaines uniques et enlève ce que tu reconnais : Apple, Google, les applis de la personne. Regarde ce qui reste.
- Cherche une régularité quand le téléphone ne sert pas, et des envois disproportionnés :
src2dst_bytesélevé. - Le pays du serveur ne tranche rien à lui seul. PTS le considère en lien avec la personne et son modèle de menace.
- Avec du DNS chiffré, tu verras moins de noms. Une IP dans le cloud ne dit pas non plus à qui elle appartient.
Règles
Elles sont dans /var/lib/suricata/rules/suricata.rules et se mettent à jour chaque jour : ET Open et celles de PTS (s’ouvre dans un nouvel onglet) à partir d’Echap. Suricata tourne en mode IDS : il prévient, il ne bloque pas. Face à une alerte, cherche sa règle et lis-la :
grep -F 'sid:1000001;' /var/lib/suricata/rules/suricata.rules alert dns $HOME_NET any -> any any (msg:"PTS STALKERWARE TheTruthSpy (copy9[.]com)"; metadata: type stalkerware; dns.query; content:"copy9.com"; depth:9; nocase; endswith; fast_pattern; reference:url,github.com/AssoEchap/stalkerware-indicators; classtype:targeted-activity; sid:1000001; rev:1;)
C’est une correspondance de nom dans une requête DNS, et rien de plus. reference dit d’où ça vient et classtype comment c’est classé.
Pour ajouter des règles, ne modifie pas le fichier, il est écrasé. Publie-les sur une URL :
sudo suricata-update add-source MIAS https://ejemplo.org/mias.rules sudo suricata-update sudo suricatasc -c reload-rules
Pour réanalyser un pcap avec les règles actuelles :
mkdir -p suri/ sudo suricata -r c.pcap -S /var/lib/suricata/rules/suricata.rules -l suri/
Sources : architecture (s’ouvre dans un nouvel onglet), analyse de trafic (s’ouvre dans un nouvel onglet), exporter (s’ouvre dans un nouvel onglet), règles personnelles (s’ouvre dans un nouvel onglet), g2 (s’ouvre dans un nouvel onglet).
Déchiffrer le TLS d’une appli suspecteSur un téléphone de laboratoire. Jamais sur celui de la personne.
╔════════════════╗ ╔═════════════════════════╗ ╔═══════════════╗ ║ ANDROID ROOTÉ ║ ║ PIROGUE ║ ║ .pcap + CLÉS ║ ╟────────────────╢ USB et wifi ╟─────────────────────────╢ ╟───────────────╢ ║ Frida ║────────────────▶║ pirogue-intercept-gated ║─────▶║ traffic.pcap ║ ║ labo seulement ║ ╚═════════════════════════╝ ║ sslkeylog.txt ║ ╚════════════════╝ ╚═══════════════╝
╔════════════════╗
║ ANDROID ROOTÉ ║
╟────────────────╢
║ Frida ║
║ labo seulement ║
╚════════════════╝
│ USB et wifi
▼
╔═════════════════════════╗
║ PIROGUE ║
╟─────────────────────────╢
║ pirogue-intercept-gated ║
╚═════════════════════════╝
│
▼
╔═══════════════╗
║ .pcap + CLÉS ║
╟───────────────╢
║ traffic.pcap ║
║ sslkeylog.txt ║
╚═══════════════╝╔══════════════════╗ tshark ╔══════════════╗ ╔══════════════════╗ ║ decrypted.pcapng ║───────────▶║ traffic.json ║─────▶║ pirogue-view-tls ║ ╚══════════════════╝ ╚══════════════╝ ╚══════════════════╝
╔══════════════════╗
║ decrypted.pcapng ║
╚══════════════════╝
│ tshark
▼
╔══════════════╗
║ traffic.json ║
╚══════════════╝
│
▼
╔══════════════════╗
║ pirogue-view-tls ║
╚══════════════════╝
Ça ne se fait pas avec le téléphone de la personne. Il faut un Android rooté réservé à l’analyse, et ça sert à étudier une appli précise. Ce qui en sort contient des clés, du texte en clair et des identifiants de l’appareil : traite ça comme une preuve.
PiRogue installe Frida sur le téléphone de test et sort les clés TLS de la mémoire pendant qu’il capture le trafic. Toutes les bibliothèques TLS ne sont pas prises en charge, donc du trafic peut rester chiffré. Connecte le téléphone à la PiRogue en USB et à son wifi, installe l’appli et ne l’ouvre pas.
adb devices pirogue-intercept-gated -o $(date +%Y%m%d%H%M)_salida # « Waiting for data » : ouvre l’appli, utilise-la. Ctrl+C pour arrêter. cd <salida> editcap --inject-secrets tls,sslkeylog.txt traffic.pcap decrypted.pcapng tshark -2 -T ek --enable-protocol communityid -Ndmn -r decrypted.pcapng > traffic.json pirogue-view-tls -i traffic.json -t socket_trace.json
Si tu l’as lancé avec sudo, d’abord : sudo chown -R pi:pi <salida>. Tu peux aussi ouvrir le pcap dans Wireshark et indiquer sslkeylog.txt dans Settings, Protocols, TLS.
traffic.pcap: la capture.sslkeylog.txt: clés au format NSS.socket_trace.json: pile d’appels de chaque opération de socket.aes_info.json: opérations AES et RSA, avec texte en clair et chiffré.device.json,ad_ids.txt,experiment.json,screen.mp4: appareil, ID publicitaires, temps, vidéo.
Source : PTS g8 (s’ouvre dans un nouvel onglet).
Faux positifs et quand passer la mainAvant de dire quoi que ce soit à qui que ce soit.
Ce qui est souvent du bruit
- Ta propre acquisition : elle laisse des traces de débogage USB et de shell ADB. Place ton activité sur la chronologie avant de la lire.
- Applis hors Play Store : une boutique alternative, c’est INFO ; par navigateur ou ADB, MEDIUM. MVT ne sait pas si c’est normal pour elle.
- Profils et MDM : normaux sur un téléphone de travail ou d’établissement scolaire, ou un filtre DNS qu’elle a mis elle-même.
- Réglages : l’accessibilité activée ou les rapports désactivés peuvent être sa décision. Regarde qui et quand.
- Correctif ancien : ça parle de risque, pas d’infection.
- Redirection rapide (MEDIUM) : de HTTP vers un autre domaine en moins d’une seconde. C’est notre critère : la pub et les raccourcisseurs le font aussi.
- Une page enregistrée qui mentionne l’adresse, c’est souvent un article sur le spyware. Un domaine partagé peut aussi donner des correspondances innocentes.
- Processus sans
bundle_id: à eux seuls, ils ne prouvent rien. - Règles Suricata : beaucoup sont du bruit, comme la pub ou les traqueurs. Lis la règle.
- Rayhunter : fausses alertes à l’atterrissage d’un avion, chiffrement nul dû à une mauvaise configuration du réseau et heuristiques qui varient entre les États-Unis et l’Europe.
Avant de lui dire quoi que ce soit
C’est notre critère. Pour chaque correspondance :
- Quel indicateur exact, de quelle collection, et quelle valeur du téléphone a correspondu ? Lis la source de l’indicateur.
- La date concorde-t-elle avec son histoire et avec la campagne ?
- Qu’y a-t-il avant et après dans
timeline.csv? Y a-t-il une deuxième trace indépendante ? - Fais vérifier par une autre personne. Dis « il y a quelque chose à vérifier », pas « tu es infectée », et n’utilise pas ce téléphone pour parler du cas.
Quand passer la main
- Toute correspondance CRITICAL qui résiste à ce qui précède.
- Alerte officielle d’Apple ou d’une autre plateforme, même si rien ne sort.
- Journalistes, militantes ou défenseuses en danger, même si le résultat est propre : les indicateurs publics ne suffisent pas, et un accompagnement fiable demande des indicateurs non publics.
- Soupçon d’accès physique : téléphone retenu ou outils d’extraction.
- Une trace que tu ne comprends pas. Ça compte aussi.
Stop. Ne réinstalle pas, ne réinitialise pas, n’efface rien et ne visite pas les adresses. Garde l’acquisition, les hashes et command.log, et demande comment elles veulent les recevoir. Ne l’envoie nulle part.
- Access Now Digital Security Helpline (s’ouvre dans un nouvel onglet) : société civile, militantes, médias, défenseuses. Gratuite, 24/7, 10 langues, dont l’espagnol. Elle dit répondre en deux heures. Elle vérifie que le cas entre dans son mandat.
help@accessnow.org, avec PGP (s’ouvre dans un nouvel onglet). - Amnesty Security Lab (s’ouvre dans un nouvel onglet) : journalistes, militantes et organisations exposées à des attaques ciblées.
Sources : MVT (s’ouvre dans un nouvel onglet), PTS g2 (s’ouvre dans un nouvel onglet), Rayhunter (s’ouvre dans un nouvel onglet), Zero Breach (s’ouvre dans un nouvel onglet).
Fausses antennes : 2G et RayhunterPour les organisatrices d'un événement ou d'une action.
Un IMSI catcher est une fausse antenne qui identifie les téléphones à proximité. Contrairement au spyware, il ne touche pas au téléphone, et la personne qui l'utilise doit être dans la zone.
- Coupe la 2G : la Protection Avancée d’Android (s’ouvre dans un nouvel onglet) l’évite sur les téléphones compatibles, et sur iPhone le mode Isolement (s’ouvre dans un nouvel onglet) désactive la 2G et la 3G. Tu peux te retrouver sans réseau là où il n’y a que celles-là.
- Rayhunter (s’ouvre dans un nouvel onglet) (EFF) cherche les signes de fausses antennes avec un routeur mobile bon marché. En Europe, ils recommandent (s’ouvre dans un nouvel onglet) le TP-Link M7350, mais n’achète pas la version matérielle 10.0 (s’ouvre dans un nouvel onglet) : c’est celle qui se vend neuve et elle ne marche pas. Cherche-le d’occasion et confirme la version avant de payer. Mets une SIM d’un opérateur local, même sans forfait actif, et une carte SD en FAT.
./installer tplink # interface sur http://192.168.0.1:8080 rayhunter-check -p captura.qmdl # réanalyser sur l’ordinateur
Désactive l’économie d’énergie dans l’interface TP-Link, sinon il cessera d’enregistrer. Les heuristiques (s’ouvre dans un nouvel onglet) regardent les demandes d’IMSI sans authentification, les rétrogradations vers la 2G, le chiffrement nul et les SIB incomplets. Une alerte ne prouve pas qu’il y a une fausse antenne. La capture peut contenir ton IMSI et les antennes proches, ce qui peut révéler où tu étais. L’EFF conseille de consulter une avocate hors des États-Unis.
Comment entre le spyware payant
Voici les trois voies documentées par les enquêtes d'Amnesty International. Savoir par où il entre aide à savoir quoi chercher.
Schémas réalisés par nos soins à partir de Forensic Methodology Report: How to catch NSO Group's Pegasus (s’ouvre dans un nouvel onglet) (2021) et de Predator Files: Technical deep-dive (s’ouvre dans un nouvel onglet) (2023), d'Amnesty International. Ce hacklab n'a aucun lien avec Amnesty International.
Reprends le reste de ta vie numérique
Sur resetea.net.
À propos de ce guide
Il est tenu à jour par Hacklab la Raíz. Ce qu'il affirme vient des sources citées plus bas. Il ne remplace ni une analyse forensique ni une avocate. Si tu vois une erreur ou un menu qui a changé, écris à hacklab-laraiz@riseup.net.
Sources
Vérifié en novembre 2026. Les menus et les numéros changent : si quelque chose ne correspond pas, fie-toi à la source officielle.
- Amnesty International : méthodologie forensique sur Pegasus (s’ouvre dans un nouvel onglet) et Predator Files (s’ouvre dans un nouvel onglet)
- BOE-B-2026-33966 : contrat de la Guardia Civil (s’ouvre dans un nouvel onglet)
- Digital First Aid Kit (s’ouvre dans un nouvel onglet), EFF : Surveillance Self-Defense (s’ouvre dans un nouvel onglet), Coalition Against Stalkerware (s’ouvre dans un nouvel onglet) et Tactical Tech : Holistic Security (s’ouvre dans un nouvel onglet)
- Apple : notifications de menace (s’ouvre dans un nouvel onglet), Mode Isolement (s’ouvre dans un nouvel onglet) et Contrôle de sécurité (s’ouvre dans un nouvel onglet)
- Google : Play Protect (s’ouvre dans un nouvel onglet) et Protection Avancée (s’ouvre dans un nouvel onglet)
- Vodafone : renvoi d'appel (s’ouvre dans un nouvel onglet) et O2 : contact (s’ouvre dans un nouvel onglet)
- Selectra : codes de renvoi 2026 (s’ouvre dans un nouvel onglet)
- Zero Breach Toolkit (s’ouvre dans un nouvel onglet), MVT (s’ouvre dans un nouvel onglet), AndroidQF (s’ouvre dans un nouvel onglet) et PiRogue Tool Suite (s’ouvre dans un nouvel onglet)