Codage

Quand l’IA «hallucine» un composant logiciel, mieux vaut que personne ne s’amuse à le créer…

Alors que les LLM trouvent leur place dans le développement logiciel, il arrive que ces outils «hallucinent» des composants inexistants susceptibles d’exposer les entreprises à des vulnérabilités d’un nouveau genre. Il suffit en effet de donner corps à un package régulièrement «inventé» par l'IA, pour que celui-ci soit largement téléchargé, comme l'a constaté un chercheur.

(Source: Domaine public; Nathan Dumlao/Unsplash)
(Source: Domaine public; Nathan Dumlao/Unsplash)

Les chatbots basés sur la GenAI ne sont pas toujours bons conseillers. Ils peuvent en effet «halluciner» et tromper les clients, comme l’a illustré un récent verdict contre Air Canada. Il est aussi arrivé que des avocats citent des décisions juridiques inventées par ChatGPT… Les LLM s’étant en outre fait une place au soleil dans le domaine du développement logiciel, leurs «hallucinations» peuvent poser de sérieux risques de sécurité informatique. 

Un spécialiste en cybersécurité a récemment montré de manière plutôt cocasse comment détourner des éléments de code purement inventés par un assistant GenAI. Opérée par des individus malveillants, la méthode pourrait avoir des conséquences potentiellement gravissimes. Bar Lanyado, chercheur chez Lasso Security, explique dans un billet de blog avoir mené une analyse qui a révélé que des systèmes d'IA employés comme assistant au codage, dont GPT-4, GPT-3.5 et Gemini, suggèrent fréquemment l'utilisation de packages et bibliothèques de code qui, en réalité, n'existent pas. Les programmeurs qui recevraient  les mêmes suggestions des outils d’assistance pourraient ensuite intégrer à leur code des dépendances à ces composants «hallucinés». Or, le chercheur a découvert que ces faux composants sont parfois générés de façon récurrente par les outils IA.  

Le chercheur donne corps à l'hallucination

Pour illustrer ce scénario, Bar Lanyado a posé aux LLM une série de questions génériques typiques de développeurs. Lors de cette recherche, un package Python fictif nommé «huggingface-cli», suggéré régulièrement par les outils d’assistance, a été identifié. «J'ai décidé de téléverser un package vide portant le même nom et de voir ce qui se passe», confie le spécialiste. Les résultats ont été étonnants: en trois mois, ce faux paquet a été téléchargé plus de 30’000 fois. Une investigation sur GitHub a également montré que plusieurs grandes entreprises avaient utilisé ou recommandé ce paquet dans leurs dépôts. Notamment dans les instructions d'installation figurant dans le fichier «README» d'un répertoire publié par Alibaba.

La prudence est de mise

Le package créé par le chercheur était donc vide… Mais on peut aisément imaginer les dégâts potentiels s’il avait contenu du code malveillant. Le chercheur en cybersécurité prodigue des conseils pour se prémunir contre ce genre de scénario catastrophe. Premièrement, il recommande de prendre des précautions lors de l'utilisation de LLM: en cas de doute sur l'exactitude d'une réponse, il est essentiel de procéder à des vérifications croisées approfondies. Deuxièmement, une approche prudente est recommandée lors de l'utilisation de composants open source. Face à un package inconnu, il est conseillé de consulter le référentiel pour obtenir des informations, telles que la taille de la communauté derrière le composant, l'historique de la maintenance, les vulnérabilités connues et le niveau d'engagement dont le package fait l’objet. 

> Sur le sujet: La supply chain logicielle, nouvel objet d’attention sécuritaire

Webcode
NbJyJgTP