Percer le système d'authentification renforcé des entreprises constitue un véritable graal pour les pirates informatiques. Ce n'est d'ailleurs pas un hasard si les RSSI placent le MFA dans le peloton de tête des solutions de sécurité mises en place pour protéger les accès au SI de leur entreprise, comme le montre le récent baromètre du Cesin. Cet enjeu de protection concerne bon nombre d'entreprises, y compris les acteurs américains comme Facebook. Or, un chercheur en sécurité a trouvé un trou dans la raquette du système de double authentification du réseau social.

Invité sur l'événement BountyCon 2022 de Singapour en septembre dernier, le spécialiste népalais en sécurité Gtm Mänôz raconte avoir voulu participer en ayant une seule chose en tête, à savoir « trouver au moins un bug valide et être dans le classement du concours de hack réalisé en direct ». Le hacker trouve alors l'inspiration en s'intéressant de près à la dernière interface utilisateur de Meta Accounts Center sur Instagram, et plus particulièrement l'option d'ajout de mail et de numéro de téléphone valables aussi bien pour Instagram que Facebook. « Le endpoint vérifiant le code à 6 chiffres était vulnérable à l'absence de protection par limite de débit permettant à quiconque de confirmer l'adresse e-mail et le numéro de téléphone inconnus/connus à la fois sur Instagram et sur les comptes Facebook liés », explique Gtm Mänôz.

Casser par force brute le code de confirmation d'enregistrement d'un téléphone de confiance

En ajoutant un numéro de téléphone mobile pour lier les deux comptes de réseaux sociaux , le chercheur trouve alors que la requête post associée /api/v1/fxcal/get_native_linking_auth_blob/ génère un token pour ajouter des terminaux de confiance et vérifier le code de confirmation ad hoc. En ajoutant un point de contact (email/téléphone), /api/v1/bloks/apps/com.bloks.www.fx.settings.contact_point.add.async/ est une autre requête post générée pour demander au serveur d'envoyer le code de vérification à 6 chiffres. En interceptant cette demande à l'aide d'un proxy web et en modifiant la valeur pin_code, le code de confirmation peut alors faire l'objet d'une attaque par force brute.

« Si le numéro de téléphone a été entièrement confirmé et la double authentification (2FA) activée sur Facebook, alors la 2FA sera désactivée ou désactivée du compte de la victime. Et, si le numéro de téléphone a été partiellement confirmé, cela signifie qu'il n'est utilisé que pour 2FA, il révoquera la 2FA et le numéro de téléphone sera également supprimé du compte de la victime », explique le chercheur en sécurité. « Étant donné que le point de terminaison vérifiant à la fois les points de contact (e-mail/téléphone) sur Instagram et les comptes Facebook liés était le même, j'ai pu contourner la vérification des points de contact inconnus et déjà enregistrés (e-mail/téléphone) sur les deux réseaux sociaux ».

Une découverte de bug récompensée 22 700$ par Meta

Fort de sa découverte, Gtm Mänôz a prévenu Meta de cette faille de sécurité à Meta qui a confirmé la mise en place d'un correctif et rétribué le chercheur d'une prime de 27 200$ dans le cadre d'un bug bounty. Le groupe a confirmé que cette faiblesse « aurait pu permettre à un attaquant de contourner la 2FA par SMS en exploitant un problème de limitation de débit pour forcer brutalement le code PIN de vérification requis et ainsi confirmer le numéro de téléphone de quelqu'un ». Gabby Curtis, porte-parole de Meta, a déclaré à TechCrunch que le système de connexion Meta Accounts était encore en phase de test auprès d'un nombre restreint de personnes et précisé que l'enquête menée en interne après le signalement du bogue n'avait révélé aucune preuve d'exploit dans la nature. Meta indique par ailleurs n'avoir enregistré aucun pic d'utilisation de cette fonction spécifique ne présageant aucune forme d'abus en cours.