Understanding the Impact of AI Code Assistants on Security API Usage: An Empirical Study
Cette étude empirique portant sur 44 développeurs professionnels révèle que, bien que GitHub Copilot améliore la correction fonctionnelle et réduise marginalement certains modèles non sécurisés, il ne parvient pas à améliorer significativement l'utilisation d'API de sécurité, laissant souvent les développeurs inconscients des vulnérabilités restantes.
Article original sous licence CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Ceci est une explication générée par l'IA de l'article ci-dessous. Elle n'a pas été rédigée ni approuvée par les auteurs. Pour une précision technique, consultez l'article original. Lire la clause de non-responsabilité complète
Imaginez que vous construisez un club privé ultra-secret et que vous devez installer des verrous high-tech, des alarmes et des tunnels secrets pour tenir les intrus à l'écart. Ces verrous sont comme des API de sécurité — des outils spéciaux que les développeurs utilisent pour protéger les logiciels. Mais voici le hic : ces verrous sont capricieux. Si vous les installez mal, le tunnel « secret » pourrait bien devenir une porte grande ouverte pour les hackers.
Imaginez maintenant que vous avez un assistant robotique super intelligent nommé Copilot qui peut écrire du code pour vous. Vous pourriez vous dire : « Génial, le robot connaît toutes les règles, donc mon club sera une forteresse ! » Mais une nouvelle étude menée par Zahra Mousavi et son équipe dans des universités et des laboratoires de recherche en Australie a décidé de mettre cette idée à l'épreuve. Ils n'ont pas seulement demandé au robot de construire un verrou ; ils ont observé 44 développeurs professionnels réels essayant de construire ces verrous, avec et sans l'aide du robot.
Voici ce qu'ils ont découvert, servi avec une dose de réalité.
Le robot est un excellent assistant, mais un mauvais garde de sécurité
D'abord, la bonne nouvelle : Copilot est un fantastique accélérateur. Lorsque les développeurs devaient construire un verrou complexe (plus précisément, un système Google OAuth pour accéder aux données des utilisateurs), le robot les a aidés à terminer la tâche beaucoup plus rapidement.
- Sans le robot, seuls 45 % des développeurs (10 sur 22) ont réellement réussi à faire fonctionner le verrou.
- Avec le robot, 91 % des développeurs (20 sur 22) l'ont fait fonctionner.
- Le robot a également réduit de 63 % le temps nécessaire pour accomplir la tâche complexe, faisant passer la moyenne de 62 minutes à 23 minutes.
Ainsi, si votre objectif est simplement de construire la porte et de la faire pivoter, le robot est une grande victoire.
Mais attention : Ce n'est pas parce que la porte est construite qu'elle est verrouillée. En fait, aucun des développeurs, qu'ils aient utilisé le robot ou non, n'a réussi à construire un verrou totalement sécurisé pour les tâches qui leur ont été confiées. Chaque tentative sur les tâches évaluées présentait au moins une faille majeure.
Le piège du « Faites-moi confiance »
L'étude a examiné deux types de verrous spécifiques : le JSSE (pour les connexions internet sécurisées) et Google OAuth (pour se connecter aux applications). Ils ont découvert que le robot ne corrigeait pas les problèmes de sécurité ; dans bien des cas, il aidait simplement à construire des verrous défectueux plus rapidement.
- L'erreur du « Tout faire confiance » : Imaginez un garde qui laisse entrer n'importe qui parce qu'il a l'air sympathique. Dans l'étude, certains développeurs (et le robot) ont configuré le système pour « faire confiance à tous les certificats ». C'est comme dire à votre garde : « Si quelqu'un montre un badge, laissez-le entrer, même si c'est un faux. » C'est une énorme faille de sécurité.
- L'erreur du « Code Secret » : Certains développeurs ont écrit leurs mots de passe directement dans le code, comme si l'on cachait la clé de sa maison sous le paillasson. Le robot a parfois suggéré cela aussi !
- L'erreur du « Pas de vérification » : Lors de la connexion à un serveur, vous devez vérifier que vous parlez bien à la bonne personne. De nombreuses implémentations ont sauté cette étape, laissant la porte ouverte à un attaquant de type « Man-in-the-Middle » (quelqu'un qui prétend être votre ami pour voler vos données).
Les chercheurs ont constaté que, bien que le robot ait aidé à corriger certaines petites erreurs, il n'a pas empêché les grandes défaillances de sécurité. En fait, 100 % des tâches évaluées ont abouti à du code présentant des problèmes de sécurité. Le robot n'a pas rendu le code plus sécurisé que le travail des humains seuls ; il a simplement fait apparaître le code non sécurisé plus rapidement.
L'angle mort de l'humain
Voici la partie la plus surprenante de l'histoire. Les chercheurs ont demandé aux développeurs : « Pensez-vous que votre code est sécurisé ? »
- Même si aucun du code n'était réellement sécurisé, la plupart des développeurs ont répondu : « Ouaip, je pense avoir résolu cela de manière sécurisée ! »
- Seule une infime minorité de personnes a réalisé qu'elles avaient commis une erreur.
- En discutant avec le robot, presque personne n'a demandé : « Hé, est-ce que c'est sûr ? » Ils ont juste demandé : « Fais en sorte que ça marche. »
C'est comme un groupe de personnes construisant un pont et demandant l'aide d'un robot. Le robot les aide à poser les briques rapidement, mais personne ne vérifie si le pont peut supporter du poids. Quand on leur demande : « Pensez-vous que ce pont tiendra ? », la plupart répondent : « Bien sûr ! », même si le pont est sur le point de s'effondrer.
Peut-on mieux enseigner au robot ?
Les chercheurs ont tenté une dernière chose. Ils ont demandé aux développeurs de dire spécifiquement au robot : « Hé, vérifie la sécurité ! » ou « Tu es un expert en sécurité, corrige ceci ! ».
- Lorsqu'ils l'ont fait, le robot a corrigé certaines erreurs du verrou le plus simple (JSSE).
- Cependant, pour le verrou plus complexe (OAuth), le robot a toujours manqué de nombreuses failles de sécurité critiques, même lorsqu'on lui demandait d'être prudent.
La conclusion
Cette étude suggère que, bien que les assistants IA comme Copilot soient incroyables pour nous aider à écrire du code rapidement et correctement, ils ne sont pas un bouclier magique contre les hackers.
- Le Robot : Excellent pour la vitesse et le fonctionnement, mais pas un expert en sécurité.
- Les Humains : Souvent trop confiants envers le robot et ne vérifiant pas eux-mêmes la sécurité.
- Le Résultat : Nous construisons des systèmes qui semblent sécurisés, mais qui sont en réalité truffés de trous.
Les chercheurs concluent que nous ne pouvons pas simplement compter sur le robot pour nous garder en sécurité. Nous devons être ceux qui posent les questions difficiles sur la sécurité, qui vérifient le travail et qui s'assurent que les « verrous » que nous construisons sont réellement verrouillés. Le robot est un outil puissant, mais il n'est pas un remplacement pour un esprit conscient de la sécurité.
Noyé(e) sous les articles dans votre domaine ?
Recevez des digests quotidiens des articles les plus récents correspondant à vos mots-clés de recherche — avec des résumés techniques, dans votre langue.