Table des matières
Conception et préparation expérimentales
Maison Périphériques technologiques 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

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

Apr 12, 2023 am 11:19 AM
ai 代码

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 de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Vous avez un jeu croisé?
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Ligne de commande de l'arrêt CentOS Ligne de commande de l'arrêt CentOS Apr 14, 2025 pm 09:12 PM

La commande de fermeture CENTOS est arrêtée et la syntaxe est la fermeture de [options] le temps [informations]. Les options incluent: -H Arrêtez immédiatement le système; -P éteignez l'alimentation après l'arrêt; -r redémarrer; -t temps d'attente. Les temps peuvent être spécifiés comme immédiats (maintenant), minutes (minutes) ou une heure spécifique (HH: mm). Des informations supplémentaires peuvent être affichées dans les messages système.

Quelles sont les méthodes de sauvegarde pour Gitlab sur Centos Quelles sont les méthodes de sauvegarde pour Gitlab sur Centos Apr 14, 2025 pm 05:33 PM

La politique de sauvegarde et de récupération de GitLab dans le système CentOS afin d'assurer la sécurité et la récupérabilité des données, Gitlab on CentOS fournit une variété de méthodes de sauvegarde. Cet article introduira plusieurs méthodes de sauvegarde courantes, paramètres de configuration et processus de récupération en détail pour vous aider à établir une stratégie complète de sauvegarde et de récupération de GitLab. 1. MANUEL BACKUP Utilisez le Gitlab-RakegitLab: Backup: Créer la commande pour exécuter la sauvegarde manuelle. Cette commande sauvegarde des informations clés telles que le référentiel Gitlab, la base de données, les utilisateurs, les groupes d'utilisateurs, les clés et les autorisations. Le fichier de sauvegarde par défaut est stocké dans le répertoire / var / opt / gitlab / backups. Vous pouvez modifier / etc / gitlab

Comment vérifier la configuration de CentOS HDFS Comment vérifier la configuration de CentOS HDFS Apr 14, 2025 pm 07:21 PM

Guide complet pour vérifier la configuration HDFS dans les systèmes CentOS Cet article vous guidera comment vérifier efficacement la configuration et l'état de l'exécution des HDF sur les systèmes CentOS. Les étapes suivantes vous aideront à bien comprendre la configuration et le fonctionnement des HDF. Vérifiez la variable d'environnement Hadoop: Tout d'abord, assurez-vous que la variable d'environnement Hadoop est correctement définie. Dans le terminal, exécutez la commande suivante pour vérifier que Hadoop est installé et configuré correctement: HadoopVersion Check HDFS Fichier de configuration: Le fichier de configuration de base de HDFS est situé dans le répertoire / etc / hadoop / conf / le répertoire, où Core-site.xml et hdfs-site.xml sont cruciaux. utiliser

Quelles sont les méthodes de réglage des performances de Zookeeper sur Centos Quelles sont les méthodes de réglage des performances de Zookeeper sur Centos Apr 14, 2025 pm 03:18 PM

Le réglage des performances de Zookeeper sur CentOS peut commencer à partir de plusieurs aspects, notamment la configuration du matériel, l'optimisation du système d'exploitation, le réglage des paramètres de configuration, la surveillance et la maintenance, etc. Assez de mémoire: allouez suffisamment de ressources de mémoire à Zookeeper pour éviter la lecture et l'écriture de disques fréquents. CPU multi-core: utilisez un processeur multi-core pour vous assurer que Zookeeper peut le traiter en parallèle.

Comment entraîner le modèle Pytorch sur Centos Comment entraîner le modèle Pytorch sur Centos Apr 14, 2025 pm 03:03 PM

Une formation efficace des modèles Pytorch sur les systèmes CentOS nécessite des étapes, et cet article fournira des guides détaillés. 1. Préparation de l'environnement: Installation de Python et de dépendance: le système CentOS préinstalle généralement Python, mais la version peut être plus ancienne. Il est recommandé d'utiliser YUM ou DNF pour installer Python 3 et Mettez PIP: sudoyuMupDatePython3 (ou sudodnfupdatepython3), pip3install-upradepip. CUDA et CUDNN (accélération GPU): Si vous utilisez Nvidiagpu, vous devez installer Cudatool

Comment est la prise en charge du GPU pour Pytorch sur Centos Comment est la prise en charge du GPU pour Pytorch sur Centos Apr 14, 2025 pm 06:48 PM

Activer l'accélération du GPU Pytorch sur le système CentOS nécessite l'installation de versions CUDA, CUDNN et GPU de Pytorch. Les étapes suivantes vous guideront tout au long du processus: CUDA et CUDNN Installation détermineront la compatibilité de la version CUDA: utilisez la commande NVIDIA-SMI pour afficher la version CUDA prise en charge par votre carte graphique NVIDIA. Par exemple, votre carte graphique MX450 peut prendre en charge CUDA11.1 ou plus. Téléchargez et installez Cudatoolkit: visitez le site officiel de Nvidiacudatoolkit et téléchargez et installez la version correspondante selon la version CUDA la plus élevée prise en charge par votre carte graphique. Installez la bibliothèque CUDNN:

Explication détaillée du principe docker Explication détaillée du principe docker Apr 14, 2025 pm 11:57 PM

Docker utilise les fonctionnalités du noyau Linux pour fournir un environnement de fonctionnement d'application efficace et isolé. Son principe de travail est le suivant: 1. Le miroir est utilisé comme modèle en lecture seule, qui contient tout ce dont vous avez besoin pour exécuter l'application; 2. Le Système de fichiers Union (UnionFS) empile plusieurs systèmes de fichiers, ne stockant que les différences, l'économie d'espace et l'accélération; 3. Le démon gère les miroirs et les conteneurs, et le client les utilise pour l'interaction; 4. Les espaces de noms et les CGROUP implémentent l'isolement des conteneurs et les limitations de ressources; 5. Modes de réseau multiples prennent en charge l'interconnexion du conteneur. Ce n'est qu'en comprenant ces concepts principaux que vous pouvez mieux utiliser Docker.

CentOS installe MySQL CentOS installe MySQL Apr 14, 2025 pm 08:09 PM

L'installation de MySQL sur CENTOS implique les étapes suivantes: Ajout de la source MySQL YUM appropriée. Exécutez la commande YUM Install MySQL-Server pour installer le serveur MySQL. Utilisez la commande mysql_secure_installation pour créer des paramètres de sécurité, tels que la définition du mot de passe de l'utilisateur racine. Personnalisez le fichier de configuration MySQL selon les besoins. Écoutez les paramètres MySQL et optimisez les bases de données pour les performances.

See all articles