#image_title

L’IA hallucine les packages logiciels et les développeurs les téléchargent même s’ils sont potentiellement empoisonnés par des logiciels malveillants

En profondeur Plusieurs grandes entreprises ont publié du code source intégrant un progiciel jusqu’alors halluciné par l’IA générative.

De plus, quelqu’un, ayant repéré cette hallucination récurrente, a transformé cette dépendance inventée en une dépendance réelle, qui a ensuite été téléchargée et installée des milliers de fois par les développeurs suite aux mauvais conseils de l’IA, a-t-on appris. Si le package contenait de véritables logiciels malveillants, plutôt que d’être un test inoffensif, les résultats auraient pu être désastreux.

Selon Bar Lanyado, chercheur en sécurité chez Lasso Security, l’une des entreprises trompées par l’IA en intégrant le package est Alibaba, qui, au moment de la rédaction de cet article, comprend toujours un pip commande pour télécharger le package Python huggingface-cli dans ses instructions d’installation de GraphTranslator.

Il existe un huggingface-cli légitime, installé en utilisant pip install -U "huggingface_hub[cli]".

Mais le huggingface-cli distribué via le Python Package Index (PyPI) et requis par GraphTranslator d’Alibaba installé à l’aide pip install huggingface-cli est faux, imaginé par l’IA et devenu réel par Lanyado à titre expérimental.

Il a créé huggingface-cli en décembre après l’avoir vu halluciné à plusieurs reprises par l’IA générative ; en février de cette année, Alibaba y faisait référence dans les instructions README de GraphTranslator plutôt que dans le véritable outil CLI Hugging Face.

Étude

Lanyado l’a fait pour explorer si ces types de noms de paquets hallucinés inventés par des modèles d’IA génératifs, vraisemblablement pendant le développement du projet, persistent dans le temps et pour tester si les noms de paquets inventés pouvaient être cooptés et utilisés pour distribuer du code malveillant en écrivant de véritables paquets qui utilisez les noms de code imaginés par les IA.

L’idée ici est qu’une personne malveillante pourrait demander des conseils sur le code aux modèles, prendre note des packages imaginés que les systèmes d’IA recommandent à plusieurs reprises, puis implémenter ces dépendances afin que d’autres programmeurs, lorsqu’ils utilisent les mêmes modèles et obtiennent les mêmes suggestions, finissent par les intégrer. ces bibliothèques, qui peuvent être empoisonnées par des logiciels malveillants.

L’année dernière, par l’intermédiaire de la société de sécurité Vulcan Cyber, Lanyado a publié une recherche détaillant comment poser une question de codage à un modèle d’IA comme ChatGPT et recevoir une réponse recommandant l’utilisation d’une bibliothèque logicielle, d’un package ou d’un framework qui n’existe pas.

« Lorsqu’un attaquant lance une telle campagne, il demandera au modèle des packages qui résolvent un problème de codage, puis il recevra des packages qui n’existent pas », a expliqué Lanyado à Le registre. « Il téléchargera des packages malveillants portant les mêmes noms dans les registres appropriés, et à partir de ce moment, tout ce qu’il aura à faire sera d’attendre que les gens téléchargent les packages. »

Des hypothèses dangereuses

La volonté des modèles d’IA de citer en toute confiance des affaires judiciaires inexistantes est désormais bien connue et a causé beaucoup d’embarras parmi les avocats qui n’étaient pas conscients de cette tendance. Et il s’avère que les modèles d’IA générative feront de même pour les progiciels.

Comme Lanyado l’a noté précédemment, un mécréant peut utiliser un nom inventé par l’IA pour un package malveillant téléchargé dans un référentiel dans l’espoir que d’autres puissent télécharger le malware. Mais pour que cela constitue un vecteur d’attaque significatif, les modèles d’IA devraient recommander à plusieurs reprises le nom coopté.

C’est ce que Lanyado a décidé de tester. Armé de milliers de questions pratiques, il a interrogé quatre modèles d’IA (GPT-3.5-Turbo, GPT-4, Gemini Pro alias Bard et Command [Cohere]) concernant les défis de programmation dans cinq langages/environnements d’exécution différents (Python, Node.js, Go, .Net et Ruby), chacun possédant son propre système de packaging.

Il s’avère qu’une partie des noms que ces chatbots tirent de nulle part sont persistants, certains sur différents modèles. Et la persistance dans la répétition du faux nom est la clé pour transformer la fantaisie de l’IA en une attaque fonctionnelle. L’attaquant a besoin du modèle d’IA pour répéter les noms des paquets hallucinés dans ses réponses aux utilisateurs afin que les logiciels malveillants créés sous ces noms soient recherchés et téléchargés.

Lanyado a choisi 20 questions au hasard sur les hallucinations sans tir et les a posées 100 fois à chaque modèle. Son objectif était d’évaluer à quelle fréquence le nom halluciné du paquet restait le même. Les résultats de son test révèlent que les noms sont suffisamment persistants pour qu’ils constituent un vecteur d’attaque fonctionnel, mais pas tout le temps, et plus dans certains écosystèmes d’emballage que dans d’autres.

Avec GPT-4, 24,2 pour cent des réponses aux questions ont produit des paquets hallucinés, dont 19,6 pour cent étaient répétitifs, selon Lanyado. Une table fournie à Le registreci-dessous, montre une répartition plus détaillée des réponses GPT-4.

2134013065454451413713
5347 (25%)2524 (19,3%)1072 (23,5%)1476 (28,7%) 1093 exploitables (21,2%)1150 (30,9%) 109 exploitables (2,9%)
1042 (4,8%)200 (1,5%)169 (3,7%)211 (4,1%) 130 exploitables (2,5%)225 (6%) 14 exploitables (0,3%)
4532 (21%)2390 (18,3%)960 (21,1%)1334 (25,9%) 1006 exploitables (19,5%)974 (26,2%) 98 exploitables (2,6%)
34,4%24,8%5,2%14%

Avec GPT-3.5, 22,2 pour cent des réponses aux questions ont suscité des hallucinations, avec 13,6 pour cent de répétitivité. Pour les Gémeaux, 64,5 des questions portaient sur des noms inventés, dont environ 14 % se répétaient. Et pour Cohere, c’était 29,1 pour cent d’hallucinations, 24,2 pour cent de répétition.

Malgré cela, les écosystèmes d’empaquetage dans Go et .Net ont été construits de manière à limiter le potentiel d’exploitation en refusant aux attaquants l’accès à certains chemins et noms.

« En Go et .Net, nous avons reçu des paquets hallucinés mais beaucoup d’entre eux ne pouvaient pas être utilisés pour des attaques (en Go, les chiffres étaient beaucoup plus importants qu’en .Net), chaque langue pour sa propre raison », a expliqué Lanyado à Le registre. « En Python et npm, ce n’est pas le cas, car le modèle nous recommande des packages qui n’existent pas et rien ne nous empêche de télécharger des packages portant ces noms. Il est donc certainement beaucoup plus facile de lancer ce type d’attaque sur des langages tels que Python et Node.js. »

Ensemencement de logiciels malveillants PoC

Lanyado a fait valoir ce point en distribuant un malware de preuve de concept, un ensemble de fichiers inoffensifs dans l’écosystème Python. Basé sur les conseils de ChatGPT pour exécuter pip install huggingface-cliil a téléchargé un package vide sous le même nom sur PyPI que celui mentionné ci-dessus et a créé un package factice nommé blabladsa123 pour aider à séparer l’analyse du registre des packages des tentatives de téléchargement réelles.

Le résultat, affirme-t-il, est que huggingface-cli a reçu plus de 15 000 téléchargements authentiques au cours des trois mois de sa disponibilité.

« En outre, nous avons effectué une recherche sur GitHub pour déterminer si ce package était utilisé dans les référentiels d’autres sociétés », a déclaré Lanyado dans le texte de son expérience.

« Nos résultats ont révélé que plusieurs grandes entreprises utilisent ou recommandent ce package dans leurs référentiels. Par exemple, les instructions pour installer ce package peuvent être trouvées dans le README d’un référentiel dédié aux recherches menées par Alibaba. »

Alibaba n’a pas répondu à une demande de commentaire.

Lanyado a également déclaré qu’il existait un projet appartenant à Hugging Face qui incorporait le faux huggingface-cli, mais qui a été supprimé après avoir alerté le secteur.

Jusqu’à présent du moins, cette technique n’a pas été utilisée dans une véritable attaque dont Lanyado a connaissance.

« Outre notre paquet halluciné (notre paquet n’est pas malveillant, c’est juste un exemple de la façon dont il pourrait être facile et dangereux d’exploiter cette technique), je n’ai pas encore identifié d’exploitation de cette technique d’attaque par des acteurs malveillants », a-t-il déclaré. « Il est important de noter qu’il est compliqué d’identifier une telle attaque, car elle ne laisse pas beaucoup de traces. »

www.actusduweb.com
Suivez Actusduweb sur Google News


Ce site utilise des cookies pour améliorer votre expérience. Nous supposerons que cela vous convient, mais vous pouvez vous désinscrire si vous le souhaitez. J'accepteLire la suite