- Une vulnérabilité permettait, avec le seul nom d’utilisateur d’un compte Instagram, de tromper l’IA du support client de Meta pour réinitialiser le mot de passe et détourner le compte ; de nombreux comptes connus, dont celui de la Obama White House, en ont été victimes
- L’attaquant se connectait via un VPN ou un proxy proche de la ville de la victime pour éviter d’éveiller les soupçons de l’algorithme de sécurité, puis disait à l’IA du support que le compte avait été piraté et demandait l’envoi d’un code de vérification vers une adresse e-mail arbitraire
- Le code était envoyé sans vérification supplémentaire pour savoir si cette adresse e-mail avait déjà été utilisée par l’utilisateur ; une fois le code renvoyé par l’attaquant, un lien de réinitialisation du mot de passe était transmis tel quel : une réinitialisation de mot de passe en zéro authentification (zero auth)
- Comme ce flux de récupération était traité comme une réinitialisation complète du compte par son propriétaire légitime, la 2FA existante était contournée, avec révocation des sessions et changement de mot de passe sans la moindre alerte
- Le problème central est l’absence de garde-fous : l’IA du support d’une entreprise valant 1,5 billion de dollars modifiait l’adresse e-mail liée au compte sur simple demande ; le bug est déjà corrigé, mais il est resté actif pendant plusieurs semaines, voire plusieurs mois
Déroulement de la prise de contrôle de compte
-
Étape 01 — Masquer sa localisation et lancer la demande au support
- Pour démarrer l’attaque, il suffit du nom d’utilisateur du compte visé ; la localisation de l’utilisateur peut être obtenue facilement par divers moyens, comme son profil public ou la section « About »
- En se connectant via un VPN ou un proxy proche de la ville de la victime, l’attaquant fait passer la requête pour normale aux yeux de l’algorithme de sécurité d’Instagram
- Si la requête semble provenir de la bonne région, il suffit ensuite d’indiquer à l’IA du support Meta que le compte a été piraté et de demander l’envoi d’un code de vérification vers une adresse e-mail arbitraire contrôlée par l’attaquant
-
Étape 02 — Et c’est tout
- En pratique, il n’y a rien de plus à faire : c’est le premier cas de réinitialisation de mot de passe en zéro authentification observé en production
- Aucune vérification supplémentaire n’est effectuée pour confirmer que l’adresse e-mail fournie a bien déjà été utilisée par l’utilisateur
- Lorsque l’IA envoie un code de sécurité à l’adresse de l’attaquant, celui-ci n’a plus qu’à le renvoyer pour valider l’opération, et la plateforme lui remet un nouveau lien de réinitialisation du mot de passe, transférant ainsi l’entière propriété du compte
-
Vérification par selfie vidéo
- L’IA d’Instagram peut, ou non, exiger un selfie vidéo (video selfie) pour prouver l’identité
- Sa capacité de détection étant actuellement limitée, il est largement rapporté qu’il suffit d’animer avec l’IA des photos publiques du fil de la cible pour passer cette étape
Même la 2FA n’y change rien
- Comme le système traite ce flux de récupération à privilèges élevés comme une réinitialisation complète du compte du « vrai » propriétaire, la 2FA existante est entièrement contournée pendant le processus
- Les sessions existantes sont révoquées et le mot de passe est modifié, mais sans aucun e-mail, SMS ni notification push
- Le véritable propriétaire ne peut même plus lancer une récupération, puisque l’adresse e-mail et le numéro de téléphone sont déjà remappés vers l’attaquant ; sans interlocuteur humain à qui faire escalader le problème, il ne lui reste qu’à lutter avec le chat pour tenter de reprendre le contrôle
- Et si le compte fait partie d’un test A/B où l’option d’assistance IA est activée, il est impossible de la désactiver
Le marché noir s’emballe
- Plusieurs groupes Telegram du marché noir proposent des services de « prise de contrôle de compte (account takeover) » en mettant en avant des tarifs élevés et des délais très courts
- Les handles courts peuvent valoir de plusieurs centaines de milliers à plusieurs millions de dollars ; l’émergence d’un tel marché n’a donc rien de surprenant
- Des cas concrets incluent l’échange de comptes comme
hey, ou l’exploitation de comptes commeobamawhitehouseetocmssf(compte du Chief Master Sergeant de l’US Space Force) à des fins de propagande
Désormais corrigé
- Meta semble avoir déjà corrigé le problème, et les groupes Telegram se sont calmés, mais cette méthode semble être restée active pendant plusieurs semaines, voire plusieurs mois
- Le véritable problème est qu’une entreprise valorisée à 1,5 billion de dollars, sans garde-fous solides, ait permis à son IA de support de modifier l’adresse e-mail liée à n’importe quel compte dès lors qu’on le demandait avec suffisamment de politesse
1 commentaires
Avis sur Hacker News
Dans la chaîne de sécurité des grandes entreprises, les demandes d’assistance ont toujours été le maillon le plus faible
Par le passé, quelqu’un a déjà désactivé la double authentification et livré mon compte, donc le fait qu’un LLM fasse la même chose n’a rien de très surprenant
Le simple fait qu’un employé du support de premier niveau puisse désactiver la double authentification est révoltant, car cela ruine l’objectif même de la procédure
En fail secure, si vous perdez votre e-mail, le compte est verrouillé pour toujours ; en fail safe, perdre son e-mail ne verrouille pas le compte à vie, mais quelqu’un peut simuler cette situation pour prendre le contrôle du compte
C’est comme un contrôleur de porte électronique qui, en cas de coupure de courant, garde la porte verrouillée ou au contraire l’ouvre ; en cas d’incendie, il faut qu’elle s’ouvre pour laisser sortir les gens, mais un voleur peut aussi couper le courant pour entrer
Une porte qui se verrouille de façon permanente lors d’une panne n’est acceptable que dans des cas extrêmes où la sécurité prime sur tout, et un compte Instagram n’est pas aussi crucial qu’une porte en situation d’incendie
Encore pire, à un moment où ils semblaient avoir changé leur système de support par la suite, le même pirate a de nouveau visé mon compte, l’a effectivement compromis pendant quelques heures, et a même atteint mon compte Twitter
Cela s’est produit à peu près au moment où fElon procédait à des licenciements massifs et supprimait la 2FA par téléphone sur les comptes
Crazy Domains et Newfold Digital (anciennement EIG) sont vraiment les pires, et j’ai fini par perdre jusqu’à mon identifiant OG, que fElon a récupéré pour raconter des absurdités avec Grok
[1] https://news.ycombinator.com/item?id=47913341
[2] https://news.ycombinator.com/item?id=47859496
[3] https://news.ycombinator.com/item?id=47856983
Il fallait supprimer d’urgence un volume de stockage pour libérer de l’espace, mais l’opération destructive était verrouillée de manière à ce que le fournisseur joue le rôle d’une deuxième clé, en plus de la nôtre
Nous n’avions jamais correctement configuré ce mécanisme, et je n’avais même jamais essayé de me connecter à leur compte de support
Le fournisseur a dit qu’il fallait une confirmation de deux contacts approuvés de notre côté, et en pratique la procédure a consisté à ce qu’un collègue en train de gérer un incident Sev1 m’ajoute à un appel Zoom
Le support m’a demandé ma double authentification, mais comme je ne l’avais jamais configurée et qu’aucun e-mail n’était enregistré, j’ai répondu que je ne pouvais rien recevoir ; l’intervenant, qui semblait être un sous-traitant, a alors collé le code dans le chat Zoom et a considéré qu’il suffisait que je le relise à voix haute pour poursuivre la procédure
Sur le moment, j’étais trop stupéfait pour y réfléchir davantage, mais le fait qu’ils puissent voir le code généré attendu et le saisir directement dans leur propre système était intéressant
Au final, cela a évité qu’un Sev1 ne dégénère en Sev0, mais dans l’ensemble, la structure est extrêmement vulnérable aux attaques de social engineering et aux attaques internes
Je doute qu’ils donnent ce genre d’autorisation de contournement à des agents de support clairement de niveau 1 ou 2 ; ce serait plutôt caché d’une autre manière, avec une escalade vers un niveau de privilège supérieur, mais pouvant se faire en quelques minutes plutôt qu’en quelques heures
Cela dit, plus une organisation grossit, plus il devient difficile de maintenir cet équilibre
Le compte Facebook de mon père a probablement été piraté via phishing, mais il n’y avait absolument personne à contacter pour le récupérer
Le déchet humain qui a volé le compte y a même publié du contenu illégal, si bien que le compte et environ dix ans de souvenirs personnels ont été supprimés sans la moindre procédure de recours, et il était impossible de parler à un vrai humain chez Meta
Il n’y avait que des pages de FAQ absurdement inutiles
Je recommande vivement de télécharger et sauvegarder les données personnelles de tous vos comptes de réseaux sociaux, pour vous et votre famille
Ces grandes entreprises ne se soucient pas des utilisateurs au-delà de leur montrer des pubs pour des babioles chinoises expédiées en direct et des TikTok IA merdiques
Donc un agent IA disposait d’un accès privilégié lui permettant de retirer la double authentification, d’ignorer l’e-mail du compte et de livrer le compte au demandeur ?
Franchement, c’est une négligence tellement énorme qu’on en vient à se demander si l’équipe qui a implémenté cette “fonctionnalité” n’essayait pas d’infliger à Meta le plus de dégâts possible, discrètement, avant des licenciements programmés
On regrette presque que personne n’ait tenté de supprimer toute la table de production
Il aurait suffi de se faire passer pour un SRE hautement privilégié, d’affirmer qu’il fallait corriger un bug de prod critique et que la seule solution était de supprimer la base de données
https://www.cia.gov/static/5c875f3ec660e092cf893f60b4a288df/...
Je faisais partie des 6 000 premiers utilisateurs d’Instagram, et mon nom d’utilisateur littéral m’a été volé il y a quelques années
Le support des comptes vérifiés a reconnu le problème, mais a dit ne rien pouvoir faire
Cette fois, il s’agit d’un abus de l’IA, mais dans mon cas c’était un abus du support externalisé : quelqu’un a payé pour faire modifier manuellement mon nom d’utilisateur, puis le transférer à un autre utilisateur
Tant qu’il n’existera pas de véritable support humain responsable et qu’il n’y aura pas de conséquences pénales pour les employés qui enfreignent les règles, il y aura toujours un moyen d’accéder aux comptes
Le compte Instagram lié n’avait aucun problème, mais quand j’ai essayé d’utiliser l’assistance Meta Verified, toutes mes demandes ont été refusées au motif que j’avais déjà épuisé tout mon quota de support
J’attends qu’une banque vienne l’acheter
Il est absurde qu’une IA ait reçu des permissions d’outil lui permettant d’envoyer des e-mails à des adresses arbitraires
Qu’elle puisse envoyer un code de vérification en deux étapes à la demande de l’utilisateur, passe encore, mais elle devrait uniquement pouvoir appuyer sur un bouton qui envoie l’e-mail de 2FA à l’adresse déjà liée au compte, et tout le reste devrait être géré par du code écrit à la main
L’IA n’a aucune raison d’avoir accès au code de vérification en deux étapes lui-même, à l’objet du message, au corps du message, à l’adresse du destinataire, etc.
Je ne comprends vraiment pas pourquoi on lui a donné de tels droits
Le même flux aurait pu être codé en dur de manière statique, et ça a peut-être même été le cas
On ne sait pas vraiment quelle part le chatbot a effectivement jouée ici
Je ne dis pas que c’est forcément le cas ici, mais j’ai une hypothèse sur ce qui a pu se passer en pratique
D’après ce que j’ai vu jusqu’à présent, le Meta AI Support Assistant, ou “MAISA”, semblait disposer a) d’un appel d’outil pour lancer une vérification par e-mail vers un point de contact rattaché à une adresse e-mail, un numéro de téléphone ou un compte donné, et b) d’un appel d’outil pour générer un lien de réinitialisation de mot de passe à partir d’une tentative de vérification par e-mail
Je n’ai pas eu accès au code lui-même, mais il me semble qu’un handle ou un ID de tentative de vérification par e-mail, ainsi que le code de vérification saisi par l’utilisateur, étaient transmis à l’appel d’outil “générer un lien de réinitialisation de mot de passe”, et que cet appel ne vérifiait pas correctement si l’e-mail utilisé pour cette tentative de vérification appartenait bien au compte, ce qui a permis la prise de contrôle de compte
L’appel d’outil de MAISA qui génère un lien de réinitialisation de mot de passe aurait dû échouer si on lui fournissait une tentative de vérification correspondant à une adresse e-mail non liée au compte
Quand j’ai testé quelque chose de similaire sur Facebook, il me semble que cela renvoyait bien une erreur et bloquait l’opération, mais il est possible qu’Instagram ait récemment introduit un changement pour autoriser aussi des adresses e-mail un peu anciennes, récemment dissociées, afin d’aider les victimes à récupérer leur compte après une compromission par un attaquant
Il faudrait alors accepter une adresse qui n’est plus actuellement liée au compte et la définir comme e-mail principal de l’utilisateur
Il est aussi possible qu’un changement dans les appels d’outil de MAISA ait invoqué la mauvaise API, ou qu’un mécanisme ait permis d’utiliser n’importe quelle tentative de vérification par e-mail réussie, et que les ingénieurs n’aient pas ajouté assez de tests de bout en bout avec des tentatives de vérification sans rapport injectées dans l’appel d’outil
C’est là-dessus qu’il faut, à mon avis, concentrer l’attention
Les appels d’outil d’un agent dont l’attaquant peut influencer la sortie doivent être traités comme des API externes accessibles à tous, et testés comme tels
Bien sûr, tout cela reste de la spéculation, ne reflète pas les divers signaux utilisés pour juger de la validité d’une tentative de récupération de compte, et peut être largement erroné, mais pour quelqu’un qui travaille beaucoup sur la sécurité de Meta, c’est l’explication la plus plausible que je voie à ce qui a rendu cet incident possible
Quelqu’un a dû dire : “faites en sorte qu’un agent IA puisse aider à la réinitialisation des mots de passe”, et il semble qu’il n’y ait eu absolument aucun examen humain des changements
Mon compte Facebook a aussi été compromis il y a quelques années après la désactivation de la vérification en deux étapes basée sur TOTP
À l’époque déjà, je n’avais aucune confiance dans les politiques de sécurité de Facebook, et cette nouvelle attaque ne fait que confirmer cette impression
Affecter des ingénieurs juniors au support sécurité est ridicule
C’est aussi parce que les jeunes comprennent parfois mal à quel point la sécurité peut être critique, et qu’ils accordent moins d’importance à la vie privée
Il a été dit que c’était la première vraie réinitialisation de mot de passe sans authentification vue en production, mais il y en avait déjà eu une sur LinkedIn autrefois
C’était peut-être avant la mise en place des récompenses de divulgation, donc je n’ai pas obtenu de réponse sérieuse, mais ils l’ont fini par la corriger
Le fonctionnement était le suivant
LinkedIn supposait que si vous pouviez lire un e-mail envoyé à une adresse donnée, alors cette adresse vous appartenait et pouvait être ajoutée à votre compte
Donc si j’envoyais une invitation LinkedIn à une certaine adresse e-mail et que le destinataire cliquait sur le bouton d’acceptation de l’invitation, cette adresse e-mail était ajoutée à son compte
Si j’envoyais l’invitation à une adresse que je contrôle, par exemple foo@example.com, puis que j’envoyais à quelqu’un d’autre le lien du bouton d’invitation contenu dans un e-mail falsifié, au moment où cette personne cliquait, foo@example.com était discrètement ajouté à son compte
Une fois la confirmation d’amitié reçue, je savais aussi qu’une adresse e-mail que je connaissais avait été ajoutée à ce compte utilisateur, et je pouvais ensuite utiliser foo@example.com, l’adresse à laquelle j’avais envoyé le premier e-mail, pour lancer une réinitialisation complète du mot de passe
J’ai découvert ça parce que quelqu’un avait invité une liste de diffusion entière, et qu’après les clics, l’adresse de la liste de diffusion s’était retrouvée ajoutée soudainement aux comptes de plusieurs personnes
« Si la requête semble provenir de la bonne région, on dit à l’IA d’assistance de Meta que le compte a été piraté et on lui demande d’envoyer le code de vérification à une adresse e-mail arbitraire contrôlée par l’attaquant » : mais qu’est-ce que fait Instagram, au juste ?
Je ne comprends pas pourquoi la réinitialisation serait envoyée vers un e-mail arbitraire plutôt que vers le compte concerné.
On dirait le résultat d’une assistance par IA plutôt que d’un humain, avec en plus la situation suivante : « si vous faites partie des comptes de test A/B où l’option d’assistance IA est activée, pas de chance, et vous ne pouvez même pas la désactiver ».
Je me demandais pourquoi j’avais reçu pas moins de 15 e-mails de réinitialisation de mot de passe Instagram pendant le week-end.
Ça m’a même rappelé que j’avais un compte Instagram, et j’ai aussitôt voulu m’y connecter pour le supprimer.
C’était un compte créé à l’époque du lancement d’Instagram, que je n’avais jamais utilisé et que j’avais complètement oublié.
Mais je me suis retrouvé bloqué par cette situation absurde où il fallait se connecter depuis un appareil déjà utilisé auparavant, et comme cela fait plus de dix ans, je n’ai évidemment plus aucun des appareils qui auraient pu servir à créer le compte ou à y accéder.
J’avais toujours accès à l’adresse e-mail et au numéro de téléphone utilisés pour le compte, mais cela ne suffisait pas.
C’était d’une incompétence tellement grotesque que j’ai déposé une plainte CCPA.
Ils avaient été créés sans numéro de téléphone et je connais toujours le mot de passe, mais quand j’essaie de me connecter, l’activité est signalée comme suspecte et il n’existe aucun parcours de récupération réellement exploitable.
C’est toujours un peu révélateur de voir que beaucoup d’abus paraissent tellement stupides que, à ma place, je n’aurais même pas essayé.
Il suffit donc de demander le mot de passe, et ça marche ?
Les implications de cette affaire sont assez inquiétantes.
Meta a donc donné à un agent des droits d’accès privilégiés en lecture et en écriture sur les comptes utilisateurs, sans aucune revue humaine ?
C’est dingue.
Un des identifiants de mon compte Facebook secondaire a été fusionné d’une manière ou d’une autre avec un autre compte secondaire que j’utilisais auparavant.
Autrement dit, l’e-mail d’un compte me permet de me connecter à un autre, et cette fusion semble persister.
Meta semble avoir conclu, d’une façon ou d’une autre, que les deux comptes appartenaient à la même personne.