jeudi, 18 avril 2024

Un bogue ChatGPT expose un problème de vulnérabilité Redis

Lorsque ChatGPT a été lancé pour la première fois en novembre 2022, certains craignaient que le chatbot avancé, qui avait été formé sur du texte extrait d’Internet, ne puisse être utilisé pour écrire des logiciels malveillants. Le modèle de menace était que les acteurs malveillants n’avaient plus besoin de compétences avancées en programmation pour écrire du code capable d’inciter les victimes à transmettre des informations personnellement identifiables (PII). Au lieu de cela, les adversaires pourraient simplement inviter ChatGPT avec des mots-clés appropriés et copier et coller la sortie, plutôt que d’avoir à résoudre la programmation à partir de zéro. Mais il s’avère qu’un bogue ChatGPT a rendu la collecte de PII encore plus facile.

Briefing Kaspersky : ChatGPT et le langage de la cybersécurité

Tous les experts en cybersécurité ne partagent pas les mêmes inquiétudes quant aux dangers que ChatGPT soit utilisé par des acteurs malveillants pour écrire des logiciels malveillants. Les acteurs de la menace distribuent déjà du code et mènent des cyberattaques en échange d’un paiement – une activité appelée Malware-as-a-Service (MaaS). Et donc, le risque de cybersécurité supplémentaire de ChatGPT est discutable. Mais cela ne veut pas dire que le code d’OpenAI est sans risque, car CVE-2023-28858 et CVE- 2023-28859 surbrillance.

Plus tôt ce mois-ci, les utilisateurs de ChatGPT ont signalé que les détails affichés dans leur barre d’historique de chat n’étaient pas les leurs. L’IA générative consiste à créer du texte et des images en fonction d’invites, mais cette créativité ne doit pas déborder sur les données des abonnés. Le comportement inhabituel s’est étendu à l’affichage des noms, des adresses e-mail, des adresses postales et même des numéros de carte de crédit partiels d’autres abonnés dans les espaces réservés de la page de compte d’utilisateur.

Pas mon numéro

Les utilisateurs passant de l’aperçu de recherche gratuit d’OpenAI sur ChatGPT à une version payante de ChatGPT Plus ont signalé que les demandes de code de validation contenaient des numéros de téléphone et des adresses e-mail qu’ils ne reconnaissaient pas. Et la raison de cette confusion ? Une erreur de programmation connue sous le nom de condition de concurrence, où plutôt que de fournir des données de manière logique et prévisible, les processus se disputent les ressources de manière non coordonnée et imprévisible.

Les conditions de concurrence peuvent entraîner le plantage des programmes car le code est alimenté avec des résultats inattendus ou incorrects. Mais, selon la gestion des erreurs, les applications peuvent continuer à s’exécuter et traiter la sortie erronée comme authentique. Et cela semble être le cas pour la mise en œuvre par OpenAI de son interface utilisateur Web ChatGPT.

Les entreprises de cybersécurité examinent le modèle de menace ChatGPT

« Nous avons mis ChatGPT hors ligne plus tôt cette semaine en raison d’un bogue dans une bibliothèque open source qui permettait à certains utilisateurs de voir les titres de l’historique de chat d’un autre utilisateur actif, » a écrit OpenAI dans un article de blog expliquant la panne de ChatGPT survenue le 20 mars 2023. « Il est également possible que le premier message d’une conversation nouvellement créée était visible dans l’historique des discussions de quelqu’un d’autre si les deux utilisateurs étaient actifs à peu près au même moment. »

L’équipe technique d’OpenAI a retracé la situation de concurrence critique jusqu’au déploiement de Redis – une application en mémoire open source populaire magasin de données – que ChatGPT utilise pour mettre en cache les informations des utilisateurs. Redis permet aux développeurs d’accélérer considérablement les requêtes de base de données, les appels d’API et d’autres transactions courantes entre les nœuds. Et il est hautement évolutif. OpenAI utilise Redis Cluster pour distribuer les détails de la session sur plusieurs instances Redis, puis coordonne les informations source contenues dans sa base de données principale à l’aide de la bibliothèque redis-py.

Problème de multitraitement

Les informations contenues dans la base de données d’OpenAI se propagent dans l’environnement Redis. Et les requêtes et les réponses sont gérées de manière coopérative et multitâche grâce à Async IO – une conception de programmation simultanée prise en charge en Python. Les connexions entre le serveur de base de données et le cluster Redis existent sous la forme d’un pool partagé, avec des files d’attente entrantes et sortantes. Normalement, le système fonctionne correctement, mais un problème peut survenir si une demande est annulée après qu’elle a été placée dans la file d’attente entrante, mais avant que la réponse ne soit partie dans le cadre de la séquence d’informations sortante.

Généralement, ces demandes annulées entraînent une « erreur de serveur irrécupérable » et les utilisateurs devront soumettre à nouveau leur demande. Mais pas toujours. La routine considérera les données renvoyées comme valides si la valeur corrompue est du même type de données que la requête entrante – même si elle appartient à un autre utilisateur – comme l’ont découvert les créateurs de ChatGPT. Pour ajouter au drame, les codeurs d’OpenAI avaient introduit un changement (le 20 mars 2023) qui a provoqué une augmentation des annulations de demandes Redis. Et avec plus d’annulations, il y avait plus de chances que les types de données correspondent.

Les chatbots peuvent-ils se souvenir de ce que vous saisissez ? Le NCSC émet un avertissement

OpenAI estime que 1,2 % de ses abonnés ChatGPT Plus qui étaient actifs pendant une fenêtre spécifique de neuf heures – entre 01h00 et 10h00, heure du Pacifique le jour où les annulations de demandes Redis ont augmenté – auraient pu être affectés . OpenAI note que le bogue n’est apparu que dans le client redis-py Async IO pour Redis Cluster, ce qui pourrait expliquer pourquoi les développeurs qui avaient implémenté d’autres schémas de traitement parallèle n’ont peut-être pas observé la même vulnérabilité.

Selon le blog post, OpenAI a contacté Redis mainteneurs avec un correctif pour résoudre le problème, bien que un article du chercheur en sécurité de Sonatype, Ax Sharma, sur le sujet indique que les testeurs ont pu reproduire la faille après la correction. Cependant, les utilisateurs de ChatGPT peuvent dormir un peu plus tranquillement en sachant qu’OpenAI a ajouté des vérifications redondantes pour s’assurer que les données renvoyées par son cache Redis correspondent à l’utilisateur demandant les informations.

Ironiquement, lorsque ChatGPT a été lancé pour la première fois, les développeurs célébraient la capacité du chatbot avancé à trouver des bogues dans le code. Et bien qu’il existe un certain nombre d’outils d’analyse de code statique, qui peuvent aider à identifier les calendriers de threading potentiellement risqués, les conditions de concurrence sont sensibles au temps et ne peuvent apparaître que dans les tests dynamiques. Microsoft répertorie un certain nombre d’outils et de techniques pour identifier les problèmes de concurrence, mais idéalement, les applications seront conçues pour éviter la probabilité que des événements conflictuels se produisent simultanément, même si cette probabilité est considérée comme extrêmement faible.< /p>
.

Toute l’actualité en temps réel, est sur L’Entrepreneur

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici