Logo Zéphyrnet

Les hallucinations omniprésentes du LLM élargissent la surface d'attaque des développeurs de code

Date :

Selon une étude récemment publiée, l'utilisation par les développeurs de logiciels de grands modèles de langage (LLM) présente une opportunité plus grande qu'on ne le pensait auparavant pour les attaquants de distribuer des packages malveillants aux environnements de développement.

L'étude du fournisseur de sécurité LLM Lasso Security fait suite à un rapport de l'année dernière sur le potentiel de les attaquants abusent de la tendance des LLM à halluciner, ou pour générer des résultats apparemment plausibles mais non fondés sur des faits, en réponse aux commentaires des utilisateurs.

Hallucination du paquet IA

La étude précédente s'est concentré sur la tendance de ChatGPT à fabriquer les noms de bibliothèques de codes – entre autres fabrications – lorsque les développeurs de logiciels ont demandé l'aide du chatbot activé par l'IA dans un environnement de développement. En d’autres termes, le chatbot diffusait parfois des liens vers des packages inexistants sur des référentiels de code publics lorsqu’un développeur pouvait lui demander de suggérer des packages à utiliser dans un projet.

Le chercheur en sécurité Bar Lanyado, auteur de l'étude et maintenant chez Lasso Security, a découvert que les attaquants pouvaient facilement déposer un véritable package malveillant à l'emplacement vers lequel pointe ChatGPT et lui donner le même nom que le package halluciné. Tout développeur qui télécharge le package sur la base des recommandations de ChatGPT pourrait alors finir par introduire des logiciels malveillants dans son environnement de développement.

Lanyado recherche de suivi a examiné l'omniprésence du problème des hallucinations de paquets dans quatre grands modèles de langage différents : GPT-3.5-Turbo, GPT-4, Gemini Pro (anciennement Bard) et Coral (Cohere). Il a également testé la propension de chaque modèle à générer des packages hallucinés dans différents langages de programmation et la fréquence à laquelle ils généraient le même package halluciné.

Pour les tests, Lanyado a compilé une liste de milliers de questions « comment faire » auxquelles les développeurs de différents environnements de programmation (python, node.js, go, .net, ruby) sollicitent le plus souvent l'aide des LLM dans les environnements de développement. Lanyado a ensuite posé à chaque modèle une question liée au codage ainsi qu'une recommandation pour un package lié à la question. Il a également demandé à chaque modèle de recommander 10 packages supplémentaires pour résoudre le même problème.

Résultats répétitifs

Les résultats étaient troublants. Un nombre surprenant de 64.5 % des « conversations » que Lanyado a eues avec Gemini ont généré des paquets hallucinés. Avec Coral, ce chiffre était de 29.1 % ; d'autres LLM comme GPT-4 (24.2 %) et GPT3.5 (22.5 %) n'ont pas obtenu de meilleurs résultats.

Lorsque Lanyado a posé à chaque modèle la même série de questions 100 fois pour voir à quelle fréquence les modèles hallucineraient les mêmes paquets, il a constaté que les taux de répétition faisaient également sourciller. Cohere, par exemple, crachait les mêmes paquets hallucinés dans plus de 24 % du temps ; Discutez GPT-3.5 et Gemini autour de 14 %, et GPT-4 à 20 %. Dans plusieurs cas, différents modèles hallucinaient des emballages identiques ou similaires. Le plus grand nombre de modèles à hallucinations croisées s’est produit entre GPT-3.5 et Gemini.

Lanyado dit que même si différents développeurs posaient une question à un LLM sur le même sujet mais rédigeaient les questions différemment, il est probable que le LLM recommanderait le même package halluciné dans chaque cas. En d’autres termes, tout développeur utilisant un LLM pour l’aide au codage rencontrerait probablement bon nombre des mêmes packages hallucinés.

"La question pourrait être totalement différente mais sur un sujet similaire, et l'hallucination se produirait toujours, rendant cette technique très efficace", explique Lanyado. "Dans la recherche actuelle, nous avons reçu des 'packages répétitifs' pour de nombreuses questions et sujets différents et même sur différents modèles, ce qui augmente la probabilité que ces packages hallucinés soient utilisés."

Facile à exploiter

Un attaquant armé des noms de quelques paquets hallucinés, par exemple, pourrait télécharger des paquets portant les mêmes noms dans les référentiels appropriés, sachant qu'il y a de fortes chances qu'un LLM les dirige vers les développeurs. Pour démontrer que la menace n'est pas théorique, Lanyado a pris un package halluciné appelé « huggingface-cli » qu'il a rencontré lors de ses tests et a téléchargé un package vide du même nom dans le référentiel Hugging Face pour les modèles d'apprentissage automatique. Les développeurs ont téléchargé ce package plus de 32,000 XNUMX fois, dit-il.

Du point de vue des acteurs malveillants, les hallucinations de paquets constituent un vecteur relativement simple de distribution de logiciels malveillants. « Comme nous l'avons vu à partir des résultats de la recherche, ce n'est pas si difficile », dit-il. En moyenne, tous les modèles ont halluciné ensemble à 35% pour près de 48,000 3.5 questions, ajoute Lanyado. GPT-18 avait le pourcentage d'hallucinations le plus faible ; Gemini a obtenu le score le plus élevé, avec une répétitivité moyenne de XNUMX % sur les quatre modèles, note-t-il.

Lanyado suggère aux développeurs de faire preuve de prudence lorsqu'ils agissent sur les recommandations de packages d'un LLM lorsqu'ils ne sont pas complètement sûrs de leur exactitude. Il indique également que lorsque les développeurs rencontrent un package open source inconnu, ils doivent visiter le référentiel de packages et examiner la taille de sa communauté, ses enregistrements de maintenance, ses vulnérabilités connues et son taux d'engagement global. Les développeurs doivent également analyser minutieusement le package avant de l'introduire dans l'environnement de développement.

spot_img

Dernières informations

spot_img