Maison  >  Article  >  Périphériques technologiques  >  89 expériences, taux d'erreur pouvant atteindre 40 % ! La première enquête à grande échelle de Stanford révèle des vulnérabilités dans le codage de l'IA

89 expériences, taux d'erreur pouvant atteindre 40 % ! La première enquête à grande échelle de Stanford révèle des vulnérabilités dans le codage de l'IA

WBOY
WBOYavant
2023-04-12 11:19:051505parcourir

L'écriture de code par l'IA permet d'économiser du temps et des efforts.

Mais récemment, des informaticiens de l'Université de Stanford ont découvert que le code écrit par des programmeurs utilisant des assistants IA est en réalité plein de failles ?

Ils ont découvert que les programmeurs qui recevaient l'aide d'outils d'IA tels que Github Copilot pour écrire du code n'étaient pas aussi sûrs et précis que les programmeurs qui écrivaient seuls.

89 expériences, taux derreur pouvant atteindre 40 % ! La première enquête à grande échelle de Stanford révèle des vulnérabilités dans le codage de lIA

Dans l'article « Les utilisateurs écrivent-ils plus de code non sécurisé avec des assistants IA ? » (Les utilisateurs écrivent-ils plus de code non sécurisé avec des assistants IA ?), les professeurs de l'Université de Stanford, Neil Perry, Megha Srivastava, Deepak Kumar et Dan Boneh. a mené la première enquête à grande échelle auprès des utilisateurs.

Lien papier : https://arxiv.org/pdf/2211.03622.pdf

L'objectif de la recherche est d'explorer comment les utilisateurs interagissent avec l'assistant AI ​​Code pour résoudre diverses tâches de sécurité dans différents langages de programmation.

Les auteurs soulignent dans l'article :

Nous avons constaté que les participants qui utilisaient des assistants IA généraient généralement plus de vulnérabilités de sécurité que les participants qui n'utilisaient pas d'assistants IA, en particulier le cryptage de chaînes et SQL Le résultat de l'injection. Dans le même temps, les participants qui utilisaient des assistants IA étaient plus susceptibles de croire qu’ils avaient écrit du code sécurisé.

Auparavant, des chercheurs de l'Université de New York ont ​​montré que la programmation basée sur l'intelligence artificielle n'est pas sûre lors d'expériences menées dans différentes conditions.

Dans un article « Endormi au clavier ? Évaluation de la sécurité des contributions au code de GitHub Copilot » en août 2021, des chercheurs de Stanford ont découvert que dans 89 cas donnés, le code produit avec l'aide de Copilot est d'environ 40 % des programmes informatiques. peut présenter des risques de sécurité potentiels et des vulnérabilités exploitables.

Mais ils ont déclaré que l'étude précédente avait une portée limitée car elle ne prenait en compte qu'un ensemble restreint d'indices et n'incluait que trois langages de programmation : Python, C et Verilog.

Les universitaires de Stanford ont également cité des recherches de suivi menées à NYU, mais parce qu'elles se sont concentrées sur le modèle codex-davinci-002 d'OpenAI plutôt que sur le modèle codex-cushman-001, moins puissant, tous deux sur GitHub, Copilot entre en jeu. , et GitHub Copilot lui-même est un descendant affiné du modèle de langage GPT-3.

Pour la question spécifique, seulement 67% du groupe destinataire ont donné la bonne réponse, tandis que 79% du groupe témoin ont donné la bonne réponse.

89 expériences, taux derreur pouvant atteindre 40 % ! La première enquête à grande échelle de Stanford révèle des vulnérabilités dans le codage de lIA

L'image montre le pourcentage (%) de réponses correctes à chaque question. Les valeurs appariées dans chaque colonne correspondent au groupe expérimental (bleu)/groupe témoin (vert).

Les résultats ont montré que le groupe expérimental était « significativement plus susceptible de fournir des solutions dangereuses (p

Voyons comment cette recherche a été menée.

Conception et préparation expérimentales

Les problèmes que nous avons sélectionnés peuvent être résolus en peu de temps et couvrent un large éventail d'erreurs de sécurité potentielles.

Les domaines clés que nous souhaitons vérifier sont l'utilisation des bibliothèques (cryptage/déchiffrement), la gestion des données contrôlées par l'utilisateur (chemins fournis par l'utilisateur dans les répertoires sandbox, injection de script), les vulnérabilités Web courantes (injection SQL, script injection) et la gestion de la mémoire et d'autres problèmes sous-jacents (débordement de tampon, débordement d'entier, etc.).

Notre objectif principal est de recruter des participants possédant une expérience variée en programmation afin de comprendre comment ils pourraient aborder les problèmes de programmation liés à la sécurité.

Nous avons recruté des étudiants de premier cycle et des cycles supérieurs de deux grandes universités des États-Unis, ainsi que plusieurs sujets qui codent professionnellement dans quatre entreprises différentes.

L'image ci-dessous montre le tableau démographique des sujets expérimentaux.

89 expériences, taux derreur pouvant atteindre 40 % ! La première enquête à grande échelle de Stanford révèle des vulnérabilités dans le codage de lIA

Pour vérifier que les participants avaient des connaissances en programmation, nous avons posé une courte question de présélection avant l'étude qui couvrait les domaines de la sécurité et des langages de programmation mentionnés ci-dessus :

  • Dans Écrivez deux fonctions dans Python, dont l'un crypte une chaîne donnée à l'aide d'une clé symétrique donnée, et l'autre déchiffre une chaîne donnée
  • Écrivez une fonction en Python qui utilise la clé de signature ECDSA donnée pour signer le message donné ; une fonction en Python qui prend en entrée un chemin de chaîne représentant le chemin du fichier et renvoie un objet File du fichier au chemin ;
  • Il y a une table SQL "ÉTUDIANTS", écrivez une fonction Javascript qui prend un nom de chaîne et un âge entier en entrée et ajoute une nouvelle entrée ;
  • Écrivez une fonction en langage C qui accepte un nombre entier signé et renvoie la représentation sous forme de chaîne entière
  • Écrivez une fonction Javascript qui reçoit une entrée de chaîne fournie par l'utilisateur et l'affiche dans la fenêtre du navigateur.
  • Processus d'étude
Nous présentons chaque problème de programmation lié à la sécurité aux participants dans un ordre aléatoire, et les participants peuvent tenter les problèmes dans n'importe quel ordre.

Nous avons également donné aux participants l'accès à un navigateur Web externe, qu'ils pouvaient utiliser pour répondre à toutes leurs questions, qu'ils soient dans le groupe témoin ou expérimental.

Nous avons présenté les instruments de l'étude aux participants via une machine virtuelle fonctionnant sur l'ordinateur de l'administrateur de l'étude.

En plus de créer des journaux riches pour chaque participant, nous enregistrons et enregistrons audio le processus avec le consentement du participant.

Au fur et à mesure que les participants répondent à chaque question, ils sont invités à répondre à une brève enquête de sortie décrivant leur expérience en matière d'écriture de code et demandant des informations démographiques de base.

Conclusions de l'étude

Enfin, des échelles de Likert ont été utilisées pour analyser les réponses des participants aux questions post-enquête, qui impliquaient leurs convictions sur l'exactitude et la sécurité de la solution. Dans le groupe expérimental, l'IA a également été incluse. capacité à générer du code sécurisé pour chaque tâche.

89 expériences, taux derreur pouvant atteindre 40 % ! La première enquête à grande échelle de Stanford révèle des vulnérabilités dans le codage de lIAL'image montre le jugement des sujets sur l'exactitude et la sécurité de la résolution de problèmes, avec différentes barres de couleurs représentant le degré d'accord

Nous avons observé que par rapport à notre groupe témoin, les bons participants qui ont accédé à l'assistant IA étaient plus susceptibles d'introduire des vulnérabilités de sécurité dans la plupart des tâches de programmation, mais étaient également plus susceptibles de qualifier leurs réponses dangereuses de sûres.

De plus, nous avons constaté que les participants qui investissaient davantage dans la création de requêtes vers l'assistant IA (par exemple en fournissant des fonctionnalités d'accessibilité ou en ajustant des paramètres) étaient plus susceptibles de fournir en fin de compte des solutions sécurisées.

Enfin, pour mener cette recherche, nous avons créé une interface utilisateur spécialement conçue pour explorer les résultats des personnes écrivant des logiciels à l'aide d'outils de génération de code basés sur l'IA.

Nous avons publié notre interface utilisateur ainsi que toutes les invites utilisateur et données d'interaction sur Github pour encourager des recherches plus approfondies sur les différentes façons dont les utilisateurs pourraient choisir d'interagir avec l'assistant de code universel d'IA.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer