Plusieurs grandes entreprises ont publi du code source incorporant un package logiciel prcdemment imagin par une IA gnrative. Mais ce nest pas tout : un chercheur en scurit, ayant repr cette hallucination rcurrente, a transform cette dpendance fictive en une vraie, qui a ensuite t tlcharge et installe des milliers de fois par des dveloppeurs suite aux mauvais conseils de lIA. Si le package contenait un vritable logiciel malveillant, au lieu dtre un simple test, les consquences auraient pu tre dsastreuses.
Selon Bar Lanyado, chercheur en scurit chez Lasso Security, lune des entreprises trompes par lIA en incorporant ce package est Alibaba, qui, l’heure de l’criture de ces lignes, inclut toujours une commande pip pour tlcharger le paquetage Python huggingface-cli dans ses instructions d’installation de GraphTranslator.
Il existe une version lgitime de huggingface-cli, installe en utilisant pip install -U « huggingface_hub[cli] ». Mais la huggingface-cli distribue via le Python Package Index (PyPI) et requise par le GraphTranslator d’Alibaba – installe l’aide de pip install huggingface-cli – est fausse, imagine par l’IA et rendue relle par Lanyado dans le cadre d’une exprience.
Il a cr huggingface-cli en dcembre aprs l’avoir vu plusieurs reprises invent par l’IA gnrative ; en fvrier de cette anne, Alibaba s’y rfrait dans les instructions README de GraphTranslator au lieu du vritable outil CLI Hugging Face.
Une exprience du chercheur en scurit
Lanyado a cherch savoir si ces types de progiciels hallucins (noms de paquets invents par des modles d’IA gnrative, vraisemblablement au cours du dveloppement d’un projet) persistent dans le temps. Il voulait galement vrifier si les noms de paquets invents pouvaient tre coopts et utiliss pour distribuer des codes malveillants en crivant de vritables paquets qui utilisent les noms de codes imagins par les IA.
L’ide est que quelqu’un de malveillant pourrait demander aux modles des conseils en matire de code, prendre note des paquets imaginaires que les systmes d’IA recommandent plusieurs reprises, puis mettre en uvre ces dpendances de sorte que d’autres dveloppeurs, lorsqu’ils utilisent les mmes modles et reoivent les mmes suggestions, finissent par tirer ces bibliothques, qui peuvent tre empoisonnes par des logiciels malveillants.
Il y a six mois (une ternit en termes d’IA gnrative), alors que je travaillais Vulcan Cyber, j’ai men des recherches sur les hallucinations des LLM concernant les recommandations de paquets open source.
Dans mes recherches prcdentes, j’ai expos une nouvelle technique d’attaque : AI Package Hallucination. Cette technique d’attaque utilise des outils LLM tels que ChatGPT, Gemini, et d’autres, afin de diffuser des paquets malveillants qui n’existent pas, en se basant sur des sorties de modle fournies l’utilisateur final.
J’ai galement test la technique sur le modle GPT-3.5 turbo et utilis 457 questions pour plus de 40 sujets dans 2 langages de programmation. J’ai dcouvert que pour prs de 30 % de mes questions, le modle recommandait au moins un paquet hallucin que les attaquants pouvaient utiliser des fins malveillantes.
Cette fois-ci, j’ai voulu passer la vitesse suprieure et mettre l’chelle tous les lments de ma recherche prcdente : le nombre de questions poses, le nombre de langages vrifis et les modles que nous avons tests.
Selon lui, voici les raisons qui l’ont encourag lancer cette recherche :
- Je cherche savoir si les hallucinations sur les paquets persistent dans le paysage actuel, six mois aprs les premires conclusions. Je voulais raffirmer l’importance de ce problme et vrifier si les fournisseurs de modles l’avaient dj rsolu.
- J’avais l’intention d’largir le champ de mon enqute prcdente en utilisant un plus grand nombre de questions, afin de vrifier si les pourcentages de paquets hallucins restaient cohrents avec mes rsultats antrieurs. En outre, je cherchais valuer la rsilience de cette technique travers diffrents LLM, car il est crucial de comprendre sa capacit d’adaptation.
- Je souhaitais explorer la possibilit d’hallucinations croises, o le mme paquet hallucin apparat dans diffrents modles, mettant ainsi en lumire d’ventuelles hallucinations partages.
- Je cherche rassembler des statistiques plus compltes sur la rptitivit des hallucinations de paquets, afin de mieux comprendre l’ampleur de ce problme de scurit.
- Je voulais tester l’efficacit de l’attaque dans la nature et voir si la technique que j’ai dcouverte pouvait tre exploite, afin de confirmer l’applicabilit pratique de mes dcouvertes.
L’anne dernire, par l’intermdiaire de la socit de scurit Vulcan Cyber, Lanyado a publi une recherche dtaillant la manire dont une personne peut poser une question de codage un modle d’IA comme ChatGPT et recevoir une rponse qui recommande l’utilisation d’une bibliothque logicielle, d’un progiciel ou d’un framework qui n’existe pas.
Lorsqu’un attaquant lance une telle campagne, il demande au modle des paquets qui rsolvent un problme de codage, puis il reoit des paquets qui n’existent pas , a expliqu Lanyado. Il tlcharge des paquets malveillants portant le mme nom dans les registres appropris et, partir de l, il n’a plus qu’ attendre que les gens tlchargent les paquets .
*
Des hypothses dangereuses
L’empressement des modles d’IA citer avec assurance des dcisions de justice inexistantes est dsormais bien connu et a suscit un certain embarras chez les avocats qui n’taient pas au courant de cette tendance. Il s’avre que les modles d’IA gnrative font de mme pour les progiciels.
Comme Lanyado l’a indiqu prcdemment, un malfaiteur pourrait utiliser un nom invent par l’IA pour un paquet malveillant tlcharg sur un rfrentiel dans l’espoir que d’autres personnes puissent tlcharger le logiciel malveillant. Mais pour que ce vecteur d’attaque soit significatif, il faudrait que les modles d’IA recommandent plusieurs reprises le nom coopt.
C’est ce que Lanyado a entrepris de tester. Arm de milliers de questions comment faire , il a interrog quatre modles d’IA (GPT-3.5-Turbo, GPT-4, Gemini Pro alias Bard, et Command [Cohere]) sur des dfis de programmation dans cinq langages de programmation/temps d’excution diffrents (Python, Node.js, Go, .Net et Ruby), chacun d’entre eux ayant son propre systme d’empaquetage.
Il s’avre qu’une partie des noms tirs de nulle part par ces chatbots sont persistants, certains dans diffrents modles. Et la persistance – la rptition du faux nom – est la cl pour transformer la fantaisie de l’IA en une attaque fonctionnelle. L’attaquant a besoin que le modle d’IA rpte les noms des paquets hallucins dans ses rponses aux utilisateurs pour que les logiciels malveillants crs sous ces noms soient recherchs et tlchargs.
Lanyado a choisi 20 questions au hasard pour les hallucinations « zero-shot » et les a poses 100 fois chaque modle. Son objectif tait d’valuer combien de fois le nom du paquet hallucin restait le mme. Les rsultats de son test rvlent que les noms persistent suffisamment souvent pour constituer un vecteur d’attaque fonctionnel, mme si ce n’est pas toujours le cas, et dans certains cosystmes dempaquetages plus que dans d’autres.
Avec GPT-4, 24,2 % des rponses aux questions ont produit des paquets hallucins, dont 19,6 % taient rptitifs, selon Lanyado. Avec GPT-3.5, 22,2 % des rponses aux questions ont provoqu des hallucinations, dont 13,6 % taient rptitives. Pour Gemini, 64,5 % des questions ont donn lieu des noms invents, dont 14 % se rptaient. Enfin, pour Cohere, 29,1 % des hallucinations et 24,2 % des rptitions ont t observes.
Malgr cela, les cosystmes dempaquetages de Go et de .Net ont t conus de manire limiter le potentiel d’exploitation en refusant aux attaquants l’accs certains chemins et noms.
En Go et en .Net, nous avons reu des paquets hallucins, mais beaucoup d’entre eux ne pouvaient pas tre utiliss pour une attaque (en Go, le nombre tait beaucoup plus important qu’en .Net), chaque langage pour sa propre raison , a expliqu Lanyado. Dans Python et npm, ce n’est pas le cas, car le modle nous recommande des paquets qui n’existent pas et rien ne nous empche de tlcharger des paquets avec ces noms, de sorte qu’il est certainement beaucoup plus facile d’excuter ce type d’attaque sur des langages tels que Python et Node.js .
Le test comme preuve de concept
Lanyado a dmontr ce point en distribuant des logiciels malveillants de type « proof-of-concept » en publiant un ensemble de fichiers inoffensifs dans l’cosystme Python. Sur la base du conseil de ChatGPT d’excuter pip install huggingface-cli, il a tlcharg un paquet vide portant le mme nom sur PyPI – celui mentionn ci-dessus – et a cr un paquet factice nomm blabladsa123 pour aider sparer l’analyse du registre des paquets des tentatives de tlchargement relles.
Selon lui, le rsultat est que huggingface-cli a reu plus de 15 000 tlchargements authentiques au cours des trois mois pendant lesquels il a t disponible.
En outre, nous avons effectu une recherche sur GitHub pour dterminer si ce paquet tait utilis dans les dpts d’autres entreprises , a dclar Lanyado dans la description de son exprience. Nos rsultats ont rvl que plusieurs grandes entreprises utilisent ou recommandent ce paquet dans leurs dpts. Par exemple, des instructions pour l’installation de ce paquetage peuvent tre trouves dans le README d’un dpt ddi la recherche mene par Alibaba .
Conclusion
Cette situation soulve des questions sur la persistance de ces packages logiciels imagins par des modles IA gnratifs et sur la possibilit dutiliser des noms de packages invents pour distribuer du code malveillant. En effet, quelquun de mal intentionn pourrait demander des conseils de code aux modles IA, noter les noms de packages imagins que ces systmes recommandent frquemment, puis implmenter ces dpendances afin que dautres dveloppeurs, en utilisant les mmes modles et obtenant les mmes suggestions, finissent par importer ces bibliothques, qui pourraient tre empoisonnes par des logiciels malveillants.
En somme, lIA peut parfois nous jouer des tours inattendus, et il est essentiel de rester vigilant lorsquelle suggre des dpendances logicielles
Sources : Bar Lanyado, Pouvez-vous faire confiance aux recommandations de ChatGPT ? (tude de l’anne dernire de Bar Lanyado), code AliBaba
Et vous ?
La confiance dans les dpendances logicielles : Comment pouvons-nous garantir que les packages que nous utilisons sont srs et fiables, surtout lorsque certains dentre eux sont proposs par des IA ?
Responsabilit des dveloppeurs : Les dveloppeurs ont-ils la responsabilit de vrifier chaque dpendance quils ajoutent leurs projets ? Comment pouvons-nous encourager de bonnes pratiques cet gard ?
Transparence et traabilit : Devrions-nous exiger davantage de transparence de la part des crateurs de packages logiciels ? Comment pouvons-nous tracer lorigine des dpendances pour dtecter les anomalies ?
ducation et sensibilisation : Comment pouvons-nous sensibiliser les dveloppeurs et la communaut logicielle aux risques potentiels lis aux dpendances gnres par des IA ?