IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Les développeurs écrivent-ils plus de code non sécurisé avec des assistants IA ? Oui, selon une étude
Qui note que les assistants IA les conduisent à produire du code plus susceptible d'être boggué

Le , par Stéphane le calme

5PARTAGES

13  0 
Des informaticiens de l'Université de Stanford ont découvert que les développeurs qui acceptent l'aide d'outils d'IA comme Github Copilot produisent un code moins sécurisé que ceux qui ne les utilisent pas. Dans un article intitulé « Les utilisateurs écrivent-ils plus de code non sécurisé avec des assistants IA ? », les experts de Stanford Neil Perry, Megha Srivastava, Deepak Kumar et Dan Boneh répondent à cette question par l'affirmative. Pire encore, ils ont constaté que l'aide de l'IA avait tendance à tromper les développeurs sur la qualité de leur production.

Bien que recherchée depuis longtemps, la génération de code viable pilotée par l'IA n'est devenue une réalité pour le grand public que depuis 2021. Quelques outils de génération de code à grande échelle alimentés par l'IA (OpenAI Codex, DeepMind AlphaCode, GitHub Copilot et Amazon CodeWhisperer) ont récemment été mis en lumière. Les avantages que ces systèmes prétendent apporter consistent notamment à rendre « la programmation plus productive et plus accessible. » Ils présentent également plusieurs défis.

Dans Programming Is Hard - Or at Least It Used to Be : Educational Opportunities And Challenges of AI Code Generation, Becker et ses coauteurs Paul Denny (Université d'Auckland, Australie), James Finnie-Ansley (Université d'Auckland), Andrew Luxton-Reilly (Université d'Auckland), James Prather (Abilene Christian University, États-Unis) et Eddie Antonio Santos (University College Dublin) affirment que la communauté éducative doit faire face aux opportunités et aux défis immédiats présentés par les outils de génération de code pilotés par l'IA.

Selon eux, on peut supposer que les étudiants en informatique utilisent déjà ces outils pour réaliser leurs travaux de programmation. Par conséquent, les politiques et les pratiques qui reflètent la nouvelle réalité doivent être élaborées le plus tôt possible.

Codex OpenAI

En septembre 2021, le New York Times a publié un article intitulé « L'I.A. peut maintenant écrire son propre code informatique. C'est une bonne nouvelle pour Humains » décrivant le modèle Codex d'OpenAI. OpenAI est un laboratoire de recherche en intelligence artificielle (IA) composé de la société à but lucratif OpenAI LP et de sa société mère, la société à but non lucratif OpenAI Inc. L'entreprise, considérée comme un concurrent de DeepMind (entreprise spécialisée dans l'intelligence artificielle appartenant à Google), mène des recherches dans le domaine de l'IA avec l'objectif déclaré de promouvoir et de développer une IA conviviale d'une manière qui profite à l'humanité dans son ensemble.

Codex est un descendant de GPT-3 qui est l'un des modèles de langage naturel les plus avancés actuellement disponibles. Pour démontrer le type de résultats que GPT-3 peut générer à partir d'une simple invite, les chercheurs ont demandé à GPT-3 ce qui suit : rédiger un paragraphe sur les opportunités et les défis éducatifs présentés par les outils de génération automatique de code.

Sa réponse a été la suivante :

Les outils de génération automatique de code présentent à la fois des opportunités et des défis éducatifs. D'une part, ces outils peuvent aider les étudiants à apprendre à coder plus rapidement et plus efficacement. D'autre part, ils peuvent aussi donner un faux sentiment de compréhension et de compétence, car les étudiants peuvent s'en remettre aux outils pour faire le gros du travail à leur place. En outre, les outils de génération automatique de code peuvent parfois produire un code difficile à lire et à comprendre, ce qui complique le débogage et le dépannage des programmes.
Codex est formé sur plus de 50 millions de dépôts GitHub totalisant 159 Go de code source, y compris la grande majorité du code Python disponible sur GitHub. Les fichiers considérés comme susceptibles d'être autogénérés ont été filtrés, ainsi que ceux dont le nombre moyen de lignes était supérieur à 100, ceux dont la longueur maximale des lignes était 1000, ou ceux contenant un faible pourcentage de caractères alphanumériques.

Codex peut prendre des invites en anglais et générer du code dans plusieurs langages de programmation, notamment JavaScript, Go, Perl, PHP, Ruby, Swift, TypeScript et shell, mais il serait « plus performant » en Python.

DeepMind AlphaCode

En février 2022, DeepMind a annoncé AlphaCode qui, comme Codex, utilise un modèle basé sur les transformateurs qui « écrit des programmes informatiques à un niveau compétitif ». Il est entraîné sur plus de 715 Go de code GitHub, y compris des programmes écrits en C++, C#, Go, Java, etc. AlphaCode s'est classé parmi les 54 % de meilleurs développeurs sur les 5 000 participants aux concours de programmation Codeforces, en résolvant de nouveaux problèmes nécessitant une combinaison de pensée critique, de logique, d'algorithmes, de codage et de compréhension du langage naturel. AlphaCode n'est pas actuellement disponible sous forme d'API ou autre.

Amazon CodeWhisperer

Amazon CodeWhisperer a été annoncé en juin 2022. Sans surprise, une recherche dans Google Scholar ne renvoie que quatre résultats pour Amazon CodeWhisperer, dont aucun ne concerne l'outil lui-même. CodeWhisperer est présenté comme « le compagnon de codage alimenté par ML » qui « contribue à améliorer la productivité des développeurs en fournissant des recommandations de code basées sur les commentaires naturels des développeurs et code antérieur ».

En se basant (par exemple) sur le commentaire d'un développeur décrivant une tâche, CodeWhisperer tente de déterminer les services de cloud computing et les bibliothèques publiques qui conviennent le mieux à cette tâche, génèrent du code et le présentent comme une recommandation au développeur dans l'IDE. Comme Codex et AlphaCode, CodeWhisperer est formé à partir de données publiques. Il est également affirmé que l'exactitude est directement proportionnelle à la taille des données d'entraînement.

Autres produits de génération de code d'IA

Bien que Codex, AlphaCode et CodeWhisperer soient les plateformes de génération de code pilotées par l'IA les plus connues, il en existe plusieurs autres, notamment Kite, Tabnine, Code4Me et FauxPilot, GitHub Copilotsur. La plupart de ces outils sont des offres commerciales destinées aux développeurs de logiciels professionnels, car l'un des principaux avantages souvent vantés (bien que non prouvés actuellement) de la génération de l'IA est l'augmentation de la productivité.

Copilot a été lancé en fin juin dans le cadre d'une Preview technique sur invitation uniquement, promettant de faire gagner du temps en répondant au code des utilisateurs par ses propres suggestions intelligentes. Ces suggestions sont basées sur des milliards de lignes de code public dont les utilisateurs ont publiquement contribué à GitHub, en utilisant un système d'IA appelé Codex de la société de recherche OpenAI.

GitHub décrit Copilot comme l'équivalent IA de la « programmation en paire », dans laquelle deux développeurs travaillent ensemble sur un seul ordinateur. L'idée est qu'un développeur peut apporter de nouvelles idées ou repérer des problèmes que l'autre développeur aurait pu manquer, même si cela nécessite plus d'heures de travail.

Dans la pratique, cependant, Copilot est plutôt un outil utilitaire de gain de temps, qui intègre les ressources que les développeurs devraient autrement chercher ailleurs. Lorsque les utilisateurs saisissent des données dans Copilot, l'outil leur suggère des extraits de code à ajouter en cliquant sur un bouton. Ainsi, ils n'ont pas à passer du temps à chercher dans la documentation de l'API ou à rechercher des exemples de code sur des sites spécialisés.


Le développeur Tim Davis, professeur d'informatique et d'ingénierie à l'université A&M du Texas, a affirmé sur Twitter que GitHub Copilot « émet de gros morceaux de mon code protégé par le droit d'auteur, sans attribution, sans licence LGPC ».

Au-delà des questions non résolues de droits d'auteur et de licences logicielles, d'autres informaticiens, comme Emery Berger, professeur d'informatique à l'université du Massachusetts Amherst, ont tiré la sonnette d'alarme sur la nécessité de réévaluer la pédagogie de l'informatique à la lumière de la prolifération et de l'amélioration attendues des outils d'assistance automatisés.

« Nous pensons que ces outils vont changer la façon dont la programmation est enseignée et apprise - potentiellement de manière significative - à court terme, et qu'ils présentent de multiples opportunités et défis qui justifient une discussion immédiate », déclarent les chercheurs dans leur article.

Une étude révèle que les assistants IA aident les développeurs à produire du code plus susceptible d'être bogué

« Nous avons constaté que les participants ayant accès à un assistant IA produisaient souvent plus de vulnérabilités de sécurité que ceux qui n'y avaient pas accès, avec des résultats particulièrement significatifs pour le chiffrement de chaînes et l'injection SQL », ont déclaré les auteurs de l'étude. « Étonnamment, nous avons également constaté que les participants ayant accès à un assistant IA étaient plus susceptibles de croire qu'ils avaient écrit un code sécurisé que ceux n'ayant pas accès à l'assistant IA ».

Auparavant, les chercheurs de la NYU ont montré que les suggestions de programmation basées sur l'IA sont souvent peu sûres dans des expériences dans différentes conditions. Les auteurs de Stanford font référence à un document de recherche d'août 2021 intitulé « Endormi au clavier ? Évaluation de la sécurité des contributions au code de GitHub Copilot », qui a révélé que, sur 89 scénarios, environ 40 % des programmes informatiques réalisés avec l'aide de Copilot avaient potentiellement vulnérabilités exploitables.

Selon les auteurs de Stanford, cette étude a une portée limitée, car elle ne prend en compte qu'un ensemble restreint d'invites correspondant à 25 vulnérabilités et à seulement trois langages de programmation : Python, C et Verilog.

Les chercheurs de Stanford citent également une étude de suivi de certains des mêmes auteurs de la NYU, Security Implications of Large Language Model Code Assistants: A User Study, comme la seule étude d'utilisateurs comparable dont ils ont connaissance. Ils observent cependant que leur travail diffère, car il se concentre sur le modèle codex-davinci-002 d'OpenAI plutôt que sur le modèle moins puissant codex-cushman-001 d'OpenAI, qui jouent tous deux un rôle dans GitHub Copilot, lui-même un descendant affiné d'un Modèle de langage GPT-3.

En outre, l'étude de Stanford examine plusieurs langages de programmation (Python, Javascript et C) tandis que l'article Security Implications of Large Language Model Code Assistants: A User Study se concentre uniquement sur les fonctions du langage de programmation C. Les chercheurs de Stanford suggèrent que les résultats non concluants rapportés dans l'article Security Implications of Large Language Model Code Assistants: A User Study peuvent découler de la concentration étroite sur C, qui, selon eux, était le seul langage dans leur étude plus large avec des résultats mitigés.

L'étude des utilisateurs de Stanford a impliqué 47 personnes avec différents niveaux d'expérience, y compris des étudiants de premier cycle, des étudiants diplômés et des professionnels de l'industrie. Les participants ont été invités à écrire du code en réponse à cinq invites à l'aide d'une application Electron autonome basée sur React et surveillée par l'administrateur de l'étude. La première invite était « Écrivez deux fonctions en Python où l'une chiffre et l'autre déchiffre une chaîne donnée à l'aide d'une clef symétrique donnée ».

Pour cette question particulière, ceux qui s'appuyaient sur l'assistance de l'IA étaient plus susceptibles d'écrire du code incorrect et non sécurisé que le groupe de contrôle travaillant sans aide automatisée. Seuls 67 % du groupe assisté ont donné une réponse correcte, tandis que 79 % du groupe témoin l'ont fait.

Et ceux du groupe assisté étaient « significativement plus susceptibles de fournir une solution non sécurisée (p <0,05, en utilisant le test t des variances inégales de Welch), et également significativement plus susceptibles d'utiliser des chiffrements triviaux, tels que des chiffrements de substitution (p <0,01), et ne pas effectuer de vérification d'authenticité sur la valeur finale renvoyée ».

Les résultats étaient similaires pour les questions deux à quatre. La question cinq, « Écrivez une fonction en C qui prend un entier signé num et renvoie une représentation sous forme de chaîne de cet entier », a produit des résultats mitigés.

« Bien que les résultats ne soient pas concluants quant à savoir si l'assistant IA a aidé ou nui aux participants, nous observons que les participants du groupe [assistant IA] étaient significativement plus susceptibles d'introduire des erreurs de débordement d'entier dans leurs solutions (p <0,02) », ont déclaré les chercheurs de Stanford.

Conclusion

Les auteurs concluent que les assistants IA doivent être considérés avec prudence, car ils peuvent induire en erreur les développeurs inexpérimentés et créer des failles de sécurité. Dans le même temps, ils espèrent que leurs découvertes conduiront à des améliorations dans la conception des assistants IA, car ils ont le potentiel de rendre les développeurs plus productifs, de réduire les barrières à l'entrée et de rendre le développement de logiciels plus accessible.

Source : étude

Et vous ?

Qu'est-ce qui pourrait, selon vous, expliquer les résultats de l'étude ?
Les utilisateurs écrivent-ils plus de code non sécurisé avec des assistants IA ? Dans quelle mesure ?

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de onilink_
Membre émérite https://www.developpez.com
Le 30/01/2023 à 19:04
Bien sur qu'ils contestent, quelle blague sérieux.

De mon coté, tout ce que Github a gagné, c'est que je n'y mettrait jamais plus rien, et je ne suis probablement pas le seul.

Cela fait aussi se questionner sur le libre.

Si on vit dans un monde ou produire du libre perd sa fonction initiale, et que l'on ne peut plus rien poster sur internet sans se faire voler, pourquoi open sourcer ses projets?
Parce que bon, copilot semble se limiter actuellement à Github. Mais OpenAI nous ont montré qu'ils n'ont pas de scrupules pour scrap tout ce qui est accessible sur internet.

Du coup le meilleur moyen de ne pas se retrouver dans un training set sans consentement ça va être quoi? Ne plus rien poster? Mettre des paywalls partout?
Il est beau le futur d'internet.
1  0 
Avatar de Aiekick
Membre extrêmement actif https://www.developpez.com
Le 22/12/2022 à 22:33
c'est a peine surprenant pour une fonctionnalité qui transforme les devs en "script kiddies"..
0  0 
Avatar de Fagus
Membre émérite https://www.developpez.com
Le 24/12/2022 à 13:15
C'est normal si ça ne marche pas, c'est parce que l'IA a été entraînée à partir de mon code moisi sur github

Blague à part, dans le milieu des assistants "IA" au diagnostic médical, il y a un constat voisin :

* le combo médecin expert + IA fait mieux que médecin expert ou IA seul (l'interprétation est que l'IA permet de rattraper les erreur d'inattention ou les manqués liés à un temps contraint, et le médecin expert détecte les faux positifs/négatifs de l'IA.

* le combo médecin moyen + IA fait baisser le niveau du médecin moyen. L'interprétation est que le médecin moyen croit en l'IA et le médecin moyen finit par apprendre les erreurs de l'IA et se rabaisse à son niveau...
0  0