Une étude récente révèle que les ingénieurs en logiciel qui utilisent des systèmes d’IA générant du code sont plus susceptibles de provoquer des vulnérabilités de sécurité dans les applications qu’ils développent. L’article, co-écrit par une équipe de chercheurs affiliés à Stanford, met en évidence les pièges potentiels des systèmes de génération de code alors que des fournisseurs comme GitHub commencent à les commercialiser sérieusement.
« Les systèmes de génération de code ne remplacent actuellement pas les développeurs humains », a déclaré Neil Perry, doctorant à Stanford et co-auteur principal de l’étude, à TechCrunch dans une interview par e-mail. « Les développeurs qui les utilisent pour effectuer des tâches en dehors de leurs propres domaines d’expertise doivent être concernés, et ceux qui les utilisent pour accélérer des tâches pour lesquelles ils sont déjà compétents doivent soigneusement revérifier les sorties et le contexte dans lequel elles sont utilisées dans l’ensemble. projet. »
L’étude de Stanford a porté spécifiquement sur Codex, le système de génération de code d’IA développé par le laboratoire de recherche OpenAI basé à San Francisco. (Codex alimente Copilot.) Les chercheurs ont recruté 47 développeurs – allant d’étudiants de premier cycle à des professionnels de l’industrie avec des décennies d’expérience en programmation – pour utiliser Codex afin de résoudre les problèmes liés à la sécurité dans les langages de programmation, notamment Python, JavaScript et C.
Le Codex a été formé sur des milliards de lignes de code public pour suggérer des lignes de code et des fonctions supplémentaires compte tenu du contexte du code existant. Le système présente une approche ou une solution de programmation en réponse à une description de ce qu’un développeur veut accomplir (par exemple « Dites bonjour au monde »), en s’appuyant à la fois sur sa base de connaissances et sur le contexte actuel.
Selon les chercheurs, les participants à l’étude qui avaient accès au Codex étaient plus susceptibles d’écrire des solutions incorrectes et « non sécurisées » (au sens de la cybersécurité) aux problèmes de programmation par rapport à un groupe témoin. Plus inquiétant encore, ils étaient plus susceptibles de dire que leurs réponses peu sûres étaient sûres par rapport aux personnes du groupe de contrôle.
Megha Srivastava, étudiante de troisième cycle à Stanford et deuxième co-auteur de l’étude, a souligné que les résultats ne constituent pas une condamnation complète du Codex et d’autres systèmes générateurs de codes. Les participants à l’étude n’avaient pas d’expertise en sécurité qui aurait pu leur permettre de mieux repérer les vulnérabilités du code, pour commencer. Cela mis à part, Srivastava pense que les systèmes de génération de code sont utiles de manière fiable pour les tâches qui ne sont pas à haut risque, comme le code de recherche exploratoire, et pourraient, avec un réglage fin, améliorer leurs suggestions de codage.
« Les entreprises qui développent leur propre [systems]peut-être davantage formés sur leur code source interne, pourraient être mieux lotis car le modèle peut être encouragé à générer des sorties plus conformes à leurs pratiques de codage et de sécurité », a déclaré Srivastava.
Alors, comment des fournisseurs comme GitHub pourraient-ils empêcher l’introduction de failles de sécurité par les développeurs utilisant leurs systèmes d’IA générant du code ? Les co-auteurs ont quelques idées, y compris un mécanisme pour « affiner » les invites des utilisateurs afin d’être plus sûrs – un peu comme un superviseur examinant et révisant des brouillons de code. Ils suggèrent également que les développeurs de bibliothèques de cryptographie s’assurent que leurs paramètres par défaut sont sécurisés, car les systèmes générateurs de code ont tendance à s’en tenir à des valeurs par défaut qui ne sont pas toujours exemptes d’exploits.
« Les outils de génération de code d’assistant d’IA sont un développement vraiment passionnant et il est compréhensible que tant de personnes soient désireuses de les utiliser. Ces outils soulèvent des problèmes à envisager pour aller de l’avant, cependant… Notre objectif est de faire une déclaration plus large sur l’utilisation des modèles de génération de code », a déclaré Perry. « Plus de travail doit être fait pour explorer ces problèmes et développer des techniques pour les résoudre. »
Pour Perry, l’introduction de vulnérabilités de sécurité n’est pas le seul défaut des systèmes d’IA générant du code. Au moins une partie du code sur lequel le Codex a été formé est sous licence restrictive ; les utilisateurs ont pu demander à Copilot de générer du code à partir de Quake, des extraits de code dans des bases de code personnelles et des exemples de code tirés de livres tels que « Mastering JavaScript » et « Think JavaScript ». Certains experts juridiques ont fait valoir que Copilot pourrait mettre les entreprises et les développeurs en danger s’ils intégraient involontairement des suggestions protégées par le droit d’auteur de l’outil dans leur logiciel de production.
La tentative de GitHub de rectifier cela est un filtre, introduit pour la première fois sur la plate-forme Copilot en juin, qui vérifie les suggestions de code avec leur code environnant d’environ 150 caractères par rapport au code public GitHub et masque les suggestions s’il y a une correspondance ou une « quasi-correspondance ». Mais c’est une mesure imparfaite. Tim Davis, professeur d’informatique à la Texas A&M University, a découvert que l’activation du filtre amenait Copilot à émettre de gros morceaux de son code protégé par le droit d’auteur, y compris tout le texte d’attribution et de licence.
« [For these reasons,] nous exprimons largement la prudence à l’égard de l’utilisation de ces outils pour remplacer la formation des développeurs débutants aux pratiques de codage solides », a ajouté Srivastava.