Les chabots peuvent divulguer vos secrets aux pirates malgré le chiffrement
Les chatbots d'IA sont devenus très populaires auprès du grand public depuis le lancement canon de ChatGPT. Les gens les interrogent sur des sujets sensibles comme les maladies, la grossesse, l'interruption ou la prévention de la grossesse, les consultent lorsqu'ils envisagent de divorcer, cherchent des informations sur la toxicomanie ou demandent des modifications dans des courriels contenant des secrets commerciaux exclusifs. Les fournisseurs de ces services d'IA sont parfaitement conscients du caractère hautement sensible de ces conversations et prennent des mesures actives, notamment sous la forme d'un chiffrement.
Cette mesure vise essentiellement à empêcher les espions potentiels de lire les interactions d'autres personnes. Toutefois, le chiffrement est loin d'être efficace. Des recherches menées par des chercheurs de l'équipe "Offensive AI Research Lab" de l'université Ben-Gurion en Israël concluent que les pirates peuvent lire les conversations privées avec les assistants d'IA même lorsqu'elles sont chiffrées. Les chercheurs ont mis au point une attaque qui permet de déchiffrer les réponses des assistants d'IA avec une précision surprenante. Selon le rapport, l'exploit affecte tous les principaux chatbots, à l'exception de Google Gemini.
La technique exploite un canal auxiliaire présent dans tous les chatbots affectés. Elle affine ensuite les résultats relativement bruts à l'aide de grands modèles de langage spécialement formés pour cette tâche. Le résultat paraît surprenant à bien des égards : un adversaire passif au milieu, c'est-à-dire un adversaire qui peut surveiller les paquets de données passant entre un assistant d'IA et l'utilisateur, peut déduire le sujet spécifique de 55 % de toutes les réponses capturées, généralement avec une grande précision dans les mots. Cette attaque peut déduire des réponses avec une précision parfaite des mots dans 29 % des cas.
Yisroel Mirsky, directeur de la division Offensive AI Research Lab, a déclaré : « actuellement, n'importe qui peut lire les conversations privées envoyées par ChatGPT et d'autres services. Il peut s'agir d'acteurs malveillants présents sur le même réseau Wi-Fi ou LAN qu'un client (par exemple, dans le même café), ou même d'un acteur malveillant sur Internet, c'est-à-dire toute personne capable d'observer le trafic. L'attaque est passive et peut se produire à l'insu d'OpenAI ou de ses clients ». Selon Mirsky, la manière dont OpenAI chiffre le trafic de ChatGPT est défectueuse et n'empêche donc pas ce type d'attaques d'écoute.
Mirsky explique : « OpenAI chiffre son trafic pour empêcher ce type d'attaques d'écoute, mais nos recherches montrent que la façon dont OpenAI utilise le chiffrement est défectueuse, et que le contenu des messages est donc exposé ». Mirsky faisait référence à OpenAI, mais à l'exception de Google Gemini, tous les autres principaux chatbots sont également vulnérables.
Comment les chercheurs ont mis au point leur attaque par canal auxiliaire
Une attaque par canal auxiliaire est un moyen d'obtenir des informations secrètes d'un système par le biais de sources indirectes ou involontaires, comme des manifestations physiques ou des caractéristiques comportementales, comme l'énergie consommée, le temps nécessaire ou le son, la lumière ou le rayonnement électromagnétique produit au cours d'une opération donnée. En surveillant attentivement ces sources, les attaquants peuvent rassembler assez d'informations pour récupérer les frappes ou les clés de chiffrement des processeurs, les cookies du navigateur du trafic HTTPS ou les secrets des cartes à puce.
Le canal auxiliaire dans l'attaque de l'équipe réside dans les jetons que les chabots utilisent lorsqu'ils répondent à une requête de l'utilisateur. Les jetons s'apparentent à des mots qui sont codés de manière à pouvoir être compris par les modèles. Selon les chercheurs, pour améliorer l'expérience de l'utilisateur, la plupart des assistants d'IA envoient les jetons à la volée, dès qu'ils sont générés, de sorte que les utilisateurs finaux reçoivent les réponses en continu, mot par mot, au fur et à mesure qu'elles sont générées, plutôt qu'en une seule fois, beaucoup plus tard, une fois que l'assistant d'IA a généré la réponse complète.
Cependant, bien que la livraison des jetons soit chiffrée, la transmission en temps réel, jeton par jeton, expose un canal auxiliaire jusqu'alors inconnu, que les chercheurs appellent "la séquence de longueur de jeton". Dans un premier temps, l'attaque analyse la taille de chaque jeton, qui est la même sous forme chiffrée et en clair. La longueur du jeton correspond presque directement à la longueur de la chaîne de caractères qu'il représente. Par la suite, l'attaque analyse la séquence de chaque longueur de jeton pour obtenir toutes les phrases ou expressions potentielles que les mots, dans cet ordre, pourraient composer.
Avec des millions de possibilités pour une seule phrase et des ordres de grandeur plus importants pour un paragraphe entier, le résultat de ce canal auxiliaire est au mieux brut. Pour affiner ce résultat, Mirsky et ses coéquipiers (Roy Weiss, Daniel Ayzenshtyen et Guy Amit) ont mis au point ce qu'ils appellent une attaque par inférence de jetons. Elle consiste à faire passer les données brutes renvoyées par le canal auxiliaire par deux modèles d'IA soigneusement entraînés. Mirsky note : « c'est comme essayer de résoudre une énigme dans la Roue de la Fortune, mais dans le cas actuel, il ne s'agit pas d'une simple phrase ».
« Il s'agit d'un paragraphe entier de phrases et aucun des caractères n'a été révélé. Toutefois, les modèles d'IA sont très doués pour étudier les schémas à long terme et peuvent résoudre ces énigmes avec une précision remarquable si l'on dispose d'un nombre suffisant d'exemples tirés d'autres jeux », explique Mirsky. Étant donné que les chatbots dialoguent avec un style distinct et répètent certaines phrases, il est possible d'identifier des schémas dans la séquence de jetons et de déchiffrer ainsi l'ensemble du texte en fonction du contexte. Selon l'équipe de recherche, cela s'apparente à une attaque par texte connu.
L'équipe a découvert qu'il était possible d'apprendre aux modèles à effectuer cette attaque en les entraînant à traduire des séquences de jetons en texte à l'aide d'exemples de chats disponibles sur Internet. Étant donné que la première phrase de la réponse d'une IA a tendance à être plus stylistique et prévisible que les suivantes, les chercheurs ont affiné leurs résultats en utilisant un LLM spécialisé dans la déduction de la première phrase d'une réponse et un autre optimisé pour déduire les phrases intérieures en fonction du contexte des phrases précédentes.
Gemini de Google échappe à l'attaque par canal auxiliaire des chercheurs
À l'exception de Google Gemini, tous les grands modèles de langage basés sur le chat largement disponible transmettent les jetons immédiatement après les avoir générés, en grande partie parce que les modèles sont lents et que les fournisseurs ne veulent pas que les utilisateurs attendent que l'ensemble du message ait été généré avant d'envoyer du texte. Cette conception en temps réel joue un rôle clé dans la création du canal auxiliaire. Étant donné qu'un jeton est envoyé individuellement - un à la fois - les adversaires dotés d'une capacité AitM passive peuvent mesurer leur longueur, quel que soit le chiffrement.
Par exemple, lorsque l'assistant d'IA envoie le texte "Vous devriez consulter un médecin" sous forme de jetons individuels, il transmet un paquet distinct pour chacun de ces mots. La taille de la charge utile de chacun de ces paquets sera de 3, 6, 3, 1, 6 (plus quelques frais généraux statiques qui peuvent être filtrés). Même si un attaquant n'a aucune idée des caractères contenus dans le message, il connaît la longueur de chaque mot et l'ordre de ces mots dans une phrase. Cet exemple est une simplification, car, dans le domaine des grands modèles de langage, les jetons ne sont pas toujours des mots à proprement parler.
En revanche, lorsqu'un chabot envoie tous les jetons ensemble, l'attaquant ne voit qu'un seul paquet dont la taille de la charge utile est de 19. Dans ce cas, il ne sait pas si le paquet comprend un seul mot de 19 caractères ou plusieurs mots de 19 lettres au total. Selon les chercheurs, ce même principe explique pourquoi l'attaque n'est pas en mesure de lire les messages-guides que les utilisateurs envoient aux chatbots. Les jetons contenus dans les messages-guides ne sont pas envoyés au coup par coup ; les messages-guides sont envoyés par lots importants chaque fois que l'utilisateur appuie sur la touche "Entrée".
Le tableau ci-dessus, appelé tableau 1 dans le rapport de l'étude, décompose les chatbots de différents fournisseurs d'IA pour montrer lesquels étaient, ou restent, vulnérables à l'attaque. Dans le rapport de l'étude, le groupe de recherche explique :
Dans un contexte de communication en temps réel, les services d'IA transmettent le prochain jeton ri immédiatement après qu'il a été généré. Nos observations de plusieurs services d'assistants d'IA (référencés dans le tableau 1) indiquent que le jeton ri est envoyé soit en tant que message individuel, soit en tant que partie d'un message cumulatif (par exemple, [r1,r2,...,ri]). Dans les deux cas, la longueur de la charge utile du paquet est directement liée au nombre de caractères contenus dans ri.
Dans le cas des messages cumulatifs, la longueur de chaque jeton peut être déduite en calculant la différence de longueur de la charge utile entre les paquets successifs. Par conséquent, pour chaque message de réponse, il est possible de discerner la longueur de chaque jeton, même lorsque le trafic est chiffré. La séquence de longueur des jetons d'une réponse est notée T = [t1,t2,...,tn], où ti représente la longueur du jeton ri. La relation entre le jeton ri et sa longueur ti peut être exprimée par ti = |ri|, la valeur absolue du nombre de caractères dans ri.
Cette séquence de longueur de jeton L peut être exploitée pour déduire les jetons originaux, ce qui permet de violer la confidentialité de la conversation en révélant chaque réponse de l'IA. Ces réponses peuvent également être utilisées pour déduire les invites elles-mêmes, soit indirectement grâce au contexte, soit directement dans les cas où l'IA répète la question avant de poursuivre.
L'autre consiste à appliquer le "padding", une technique qui consiste à ajouter des espaces aléatoires aux paquets afin qu'ils aient tous une longueur fixe égale au plus grand paquet possible. Ces deux approches risquent de nuire à l'expérience utilisateur du chatbot. L'envoi de jetons par lots importants peut entraîner des retards et rendre le flux de données saccadé. L'ajout de paquets augmente le volume de trafic envoyé dans chaque réponse.
Les plug-ins de ChatGPT comportent plusieurs failles de sécurité critiques
Parmi tous les chatbots vulnérables à l'attaque, ceux d'OpenAI et de Cloudflare ont mis en œuvre des mesures d'atténuation au cours des dernières 48 heures. Microsoft a publié une déclaration faisant état de l'exigence de l'AitM (Adversary in the Middle). Il a ajouté : « il est peu probable que des détails spécifiques tels que les noms soient prédits. Nous nous engageons à protéger nos clients contre ces attaques potentielles et nous allons y remédier par une mise à jour ». L'on ignore si des acteurs de la menace ont pu détecter et exploiter cette vulnérabilité critique affectant les principaux chabots, à l'exception de Gemini.
Par ailleurs, une étude de Salt Labs sur les menaces a mis au jour des failles de sécurité critiques dans les plug-ins ChatGPT, mettant en évidence un nouveau risque pour les entreprises. Ces failles de sécurité introduisent un nouveau vecteur d'attaque et pourraient permettre à des acteurs malveillants de prendre le contrôle du compte d'une organisation sur des sites Web tiers, ou d'accéder à des informations personnelles identifiables (PII) et à d'autres types de données sensibles stockées dans des applications tierces. L'équipe de Salt Labs a découvert trois types différents de vulnérabilités dans les plug-ins ChatGPT.
La première exploite le processus d'approbation du code de ChatGPT pour permettre aux attaquants d'installer un plug-in malveillant donnant accès au compte de l'utilisateur. La seconde se trouve dans PluginLab, un framework que les développeurs et les entreprises utilisent pour développer des plug-ins pour ChatGPT. Les chercheurs ont découvert que PluginLab n'authentifiait pas correctement les comptes d'utilisateurs, ce qui permettrait à un attaquant potentiel d'insérer un autre identifiant d'utilisateur et d'obtenir un code représentant la victime, ce qui pourrait conduire à la prise de contrôle du compte sur le plug-in.
La troisième vulnérabilité, découverte dans plusieurs plug-ins, est la manipulation de la redirection OAuth (Open Authorization). Plusieurs plug-ins ne valident pas les URL, ce qui signifie qu'un attaquant peut insérer une URL malveillante et voler les informations d'identification de l'utilisateur. Après avoir découvert les vulnérabilités, les chercheurs de Salt Labs ont suivi des pratiques de divulgation coordonnées avec OpenAI et les fournisseurs tiers. Tous les problèmes ont été rapidement résolus et rien n'indique que ces failles aient été exploitées dans la nature.
« Les outils d'IA générative tels que ChatGPT ont rapidement capté l'attention de millions de personnes à travers le monde, car ils ont le potentiel d'améliorer considérablement l'efficacité des opérations commerciales et de la vie quotidienne. Alors que de plus en plus d'organisations tirent parti de ce type de technologie, les attaquants réorientent eux aussi leurs efforts, trouvant des moyens d'exploiter ces outils et d'accéder par la suite à des données sensibles », déclare Yaniv Balmas, vice-président de la recherche chez Salt Security.
« Nos récentes découvertes de vulnérabilités dans ChatGPT illustrent l'importance de protéger les plug-ins de ce type de technologie pour s'assurer que les attaquants ne puissent pas accéder aux actifs critiques de l'entreprise et exécuter des prises de contrôle de comptes ».
Sources : Offensive AI Research Lab (PDF), Salt Labs, Cloudflare,
Et vous ?
Quel est votre avis sur le sujet ?
Que pensez-vous de l'attaque par canal auxiliaire affectant les principaux chatbots d'IA ?
L'approche de Google avec Gemini suggère-t-elle que l'entreprise a anticipé cette forme d'attaque ?
Que pensez-vous des failles de sécurité critiques introduites par les plug-ins de ChatGPT pour les utilisateurs ?
Voir aussi
ChatGPT : une faille de sécurité expose 24 adresses e-mail malgré les dispositions prises par OpenAI, tandis que des experts alertent sur le risque de création de « jardins clos d'IA »
Des chercheurs découvrent un moyen simple de faire en sorte qu'une IA ignore ses garde-fous et diffuse des contenus interdits, l'exploit affecte aussi bien ChatGPT que ses rivaux Bard et Claude
Gemini : Google sauvegarde par défaut vos conversations avec son chatbot IA séparément pendant des années, e qui soulève des questions de sécurité