Des chercheurs de l’entreprise de sécurité des navigateurs Island ont identifié une campagne d’hameçonnage ciblant les employés d’agences publicitaires, les acheteurs médias et les gestionnaires de comptes au moyen de sites usurpant les noms de ChatGPT, Gemini, Claude et Perplexity. Ces pages ciblent des comptes qui permettent généralement de gérer les budgets et les campagnes de plusieurs clients, ce qui offre aux attaquants la possibilité de dépenser les soldes dans des campagnes frauduleuses ou de revendre les comptes à des cybercriminels.
La campagne associe les outils d’intelligence artificielle à des scénarios de travail publicitaire : les faux sites prétendent aider à entrer en contact avec des acheteurs, à obtenir des briefs publicitaires et à planifier et examiner les campagnes et les dépenses. Toutefois, le bouton « Connexion » n’ouvre pas une véritable procédure d’authentification, mais affiche une fausse fenêtre Google à l’intérieur de la page, avec une barre d’adresse donnant l’impression qu’elle se connecte au domaine accounts.google.com.
Comment fonctionne la fausse fenêtre de navigateur ?
L’opération repose sur la technique du « navigateur dans le navigateur » (Browser-in-the-Browser), grâce à laquelle la page malveillante crée, à l’intérieur du navigateur, une fenêtre ressemblant à la fenêtre de connexion originale, à l’aide d’éléments d’interface, d’une adresse et d’un lien falsifiés. En réalité, la fenêtre est un iframe conçu pour recueillir les données de la victime, et non une véritable fenêtre OAuth pouvant être séparée de la page.
Selon les chercheurs, l’outil d’hameçonnage s’adapte aux systèmes Windows, macOS, iOS et Android, et prend également en charge différents modes d’affichage, notamment le mode sombre. Après le démarrage du flux, un opérateur humain peut contrôler les étapes suivantes, notamment demander le mot de passe jusqu’à trois fois, demander un code envoyé par SMS ou par une application d’authentification, ou afficher des demandes Okta Push, des invites d’approbation Google et des codes QR.
L’opérateur peut également rejeter les codes saisis par les victimes, maintenir le processus sur un écran d’attente, ou mettre fin au flux et le masquer à tout moment. Les chercheurs ont constaté que la plateforme prend en charge les parcours de connexion à Google, Meta, TikTok et Okta, et que les commandes de contrôle sont envoyées via des événements Socket.IO.
Des indices d’une opération plus vaste
L’analyse de l’infrastructure a montré que la campagne faisait partie d’une opération plus vaste utilisant plusieurs leurres, notamment de fausses offres d’emploi et des pages de récupération de fonds. Les pages associées à l’opération utilisent en commun Next.js et Socket.IO ainsi que des points d’accès API similaires, tandis que nombre d’entre elles s’appuient sur des interfaces backend Vercel hébergées sur Railway ou Render.
Les chercheurs ont pu suivre l’activité jusqu’en mars après avoir découvert un ancien code source exposé dans des dépôts GitHub publics mal configurés. Le canal de contrôle sur Telegram a également reçu des centaines de données de victimes, bien que ce chiffre ne permette pas d’établir le nombre de comptes effectivement compromis.
À quoi faut-il faire attention ?
La campagne montre que le fait qu’un outil d’intelligence artificielle apparaisse comme interface frontale ne signifie pas que la procédure de connexion est sûre ou authentique. Parmi les indices pratiques d’une fenêtre de navigateur dans le navigateur figure l’impossibilité de la déplacer hors de la fenêtre du navigateur ou d’en modifier la taille, alors que ces fonctions sont généralement disponibles dans les véritables fenêtres OAuth. Les chercheurs indiquent également que la plateforme ne repose pas sur un proxy inverse transparent, mais qu’elle reconstruit localement l’interface du fournisseur de services et recueille les identifiants ainsi que l’état de l’authentification multifacteur via ses propres interfaces, ce qui fait paraître le trafic réseau comme une connexion entre un produit d’intelligence artificielle et un service backend sans lien apparent.