
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...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.