Explorer l'impact des assistants IA comme GitHub Copilot sur la sécurité du code

Une équipe de chercheurs de l'Université de Stanford a étudié l'impact de l'utilisation d'assistants de codage intelligents sur l'introduction de vulnérabilités. Ils ont envisagé des solutions basées sur la plateforme d'apprentissage automatique OpenAI Codex, comme GitHub Copilot, capable de générer des blocs de code assez complexes, notamment des fonctions complètes. Des inquiétudes naissent du fait que, du code réel provenant de dépôts GitHub publics, y compris ceux contenant des vulnérabilités, ayant été utilisé pour entraîner le modèle d'apprentissage automatique, le code synthétisé peut reproduire des erreurs et suggérer du code contenant des vulnérabilités, et ne pas tenir compte de la nécessité de vérifications supplémentaires lors du traitement de données externes.

L'étude a porté sur 47 volontaires présentant différents niveaux d'expérience en programmation, allant d'étudiants à des professionnels ayant dix ans d'expérience. Les participants ont été divisés en deux groupes : un groupe expérimental (33) et un groupe témoin (14). Les deux groupes avaient accès à toutes les bibliothèques et ressources en ligne, y compris des exemples prêts à l'emploi de Stack Overflow. Le groupe expérimental avait la possibilité d'utiliser un assistant IA.

Chaque participant s'est vu confier cinq tâches impliquant l'écriture de code susceptible d'introduire des erreurs et de générer des vulnérabilités. Ces tâches comprenaient l'écriture de fonctions de chiffrement et de déchiffrement, l'utilisation de signatures numériques, le traitement des données nécessaires à la création de chemins d'accès ou de requêtes SQL, la manipulation de grands nombres en code C et le traitement des entrées affichées sur des pages web. Afin d'examiner l'impact des langages de programmation sur la sécurité du code généré par les assistants IA, les tâches couvraient Python, C et JavaScript.

Finalement, il a été constaté que les participants ayant utilisé l'assistant IA intelligent basé sur le modèle Codex-davinci-002 produisaient un code significativement moins sécurisé que ceux n'ayant pas utilisé l'assistant IA. Globalement, seulement 67 % des participants du groupe assistant IA ont pu produire un code correct et sécurisé, contre 79 % de ceux de l'autre groupe.

De plus, les indicateurs d'auto-évaluation ont été inversés : les participants ayant utilisé l'assistant IA estimaient que leur code serait plus sécurisé que ceux de l'autre groupe. De plus, il a été constaté que les participants ayant moins confiance en l'assistant IA et ayant consacré plus de temps à analyser et modifier les invites fournies créaient moins de vulnérabilités dans leur code.

Par exemple, le code copié à partir de bibliothèques cryptographiques contenait des valeurs de paramètres par défaut plus sûres que le code suggéré par l'assistant IA. Des algorithmes de chiffrement moins sûrs ont également été sélectionnés lors de l'utilisation de l'assistant IA, tout comme l'absence de contrôles de validation sur les valeurs de retour. Dans une tâche impliquant la manipulation de nombres en C, le code écrit à l'aide de l'assistant IA contenait davantage d'erreurs de dépassement d'entier.

De plus, une étude similaire menée par un groupe de l'Université de New York en novembre a impliqué 58 étudiants à qui il a été demandé de mettre en œuvre une structure de traitement d'une liste de courses en C. Les résultats ont montré que l'assistant IA avait un impact négligeable sur la sécurité du code : les utilisateurs qui ont utilisé l'assistant IA ont commis, en moyenne, environ 10 % d'erreurs de sécurité supplémentaires.

 Explorer l'impact des assistants IA comme GitHub Copilot sur la sécurité du code


Source: opennet.ru

Ajouter un commentaire