Un document (s’ouvre dans un nouvel onglet) par des chercheurs de l’Université de Stanford a découvert que les codeurs qui employaient des assistants IA tels que GitHub Copilot et Facebook InCoder finissaient par écrire du code moins sécurisé.
De plus, ces outils bercent également les développeurs dans un faux sentiment de sécurité, beaucoup pensant qu’ils produisent un meilleur code en utilisant l’aide.
Près de 50 sujets, chacun avec différents niveaux d’expertise, ont reçu cinq tâches de codage, utilisant différents langages, certains aidés par un outil d’IA, et d’autres sans aucune aide.
Jeux de langage
Les auteurs de l’article – Neil Perry, Megha Srivastava, Deepak Kumar et Dan Boneh – ont déclaré qu’il y avait « des résultats particulièrement significatifs pour le chiffrement de chaînes et l’injection SQL ».
Ils ont également fait référence à des recherches antérieures qui ont révélé qu’environ 40 % des programmes créés avec l’aide de GitHub Copilot contenaient du code vulnérable, bien qu’une étude de suivi ait révélé que les codeurs utilisant des grands modèles de langage (LLM), tels que le codex code-cushman-001 d’OpenAI – sur lequel GitHub Copilot est basé – n’a entraîné que 10 % de bogues de sécurité critiques en plus.
Cependant, les chercheurs de Stanford ont expliqué que leur propre étude portait sur le modèle codex-davinci-002 d’OpenAI, un modèle plus récent que cushman, qui est également utilisé par GitHub Copilot.
Ils ont également examiné plusieurs langages de programmation, dont Python, Javascript et C, alors que l’autre article ne se concentrait que sur ce dernier, ce que les auteurs attribuent à ses résultats non concluants. En fait, dans l’article de Stanford, ceux qui utilisaient l’IA pour coder en C n’entraînaient pas non plus beaucoup plus d’erreurs.
L’une des cinq tâches consistait à écrire un code en Python, et ici le code était plus susceptible d’être erroné et non sécurisé lors de l’utilisation d’un assistant IA. De plus, ils étaient également « beaucoup plus susceptibles d’utiliser des chiffrements triviaux, tels que des chiffrements de substitution (p <0,01), et de ne pas effectuer de vérification d'authenticité sur la valeur finale renvoyée".
Les auteurs espèrent que leur étude conduira à de nouvelles améliorations de l’IA plutôt que de rejeter complètement la technologie, en raison des améliorations potentielles de la productivité que ces outils peuvent offrir. Ils soutiennent simplement qu’ils doivent être utilisés avec prudence car ils peuvent induire les programmeurs en erreur en leur faisant croire qu’ils sont infaillibles.
Ils pensent également que les assistants IA peuvent encourager davantage de personnes à s’impliquer dans le codage, quelle que soit leur expérience, qui peuvent également être rebutées par l’air de contrôle autour de la discipline.
Via le registre (s’ouvre dans un nouvel onglet)