How Secure is Code Generated by ChatGPT?
Cette étude évalue la sécurité du code généré par ChatGPT et conclut que, bien que le modèle soit conscient des vulnérabilités potentielles, il produit souvent du code insuffisamment robuste face à certaines attaques.
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
🤖 ChatGPT et le Code : Un Apprenti Sorcier très doué, mais imprudent
Imaginez que ChatGPT soit un apprenti cuisinier extrêmement talentueux. Il a lu des millions de livres de recettes (le code informatique) et peut reproduire n'importe quel plat (un programme) en quelques secondes. Si vous lui demandez de faire une omelette, il le fait parfaitement.
Mais que se passe-t-il si vous lui demandez de préparer un plat complexe pour un banquet, sans lui préciser les règles d'hygiène les plus strictes ? C'est exactement ce que les chercheurs de cet article ont voulu tester.
1. L'Expérience : La Cuisine de l'Apprenti
Les chercheurs ont demandé à l'apprenti (ChatGPT) de préparer 21 petits plats (programmes informatiques) dans 5 langues différentes (comme le C++, Python, Java, etc.). Chaque plat devait résoudre un problème précis, comme gérer des fichiers ou se connecter à une base de données.
Le verdict initial ?
C'était plutôt catastrophique.
- Sur les 21 plats, seulement 5 étaient "sains" et prêts à être servis sans risque.
- Les autres contenaient des "poisons" invisibles : des failles de sécurité qui permettraient à un hacker de voler les données, de faire planter le serveur ou d'entrer dans la maison (le système) sans clé.
Pourquoi ?
L'apprenti cuisinier est très bon pour suivre la recette, mais il oublie souvent de verrouiller la porte ou de protéger les aliments. Il ne pense pas qu'un client malveillant pourrait essayer de casser la porte ou d'empoisonner la soupe. Il suppose que tout le monde est gentil.
2. Le Test de Goût : "Est-ce que c'est bon ?"
Ensuite, les chercheurs ont joué le rôle d'un client exigeant. Ils ont pris un plat préparé par l'apprenti et lui ont dit : "Hé, si je mets ce poison (une attaque informatique) dans ton plat, que se passe-t-il ?"
- La bonne nouvelle : L'apprenti est très intelligent. Dès qu'on lui montre le poison, il dit : "Oh ! C'est vrai, c'est dangereux ! Je vois le problème." Il comprend la théorie.
- La mauvaise nouvelle : Quand on lui demande de refaire le plat pour qu'il soit sûr, il échoue souvent.
- Parfois, il ajoute un petit cadenas, mais c'est un cadenas en papier qu'on ouvre avec un trombone.
- Parfois, il dit : "Je ne peux pas réécrire tout le plat, c'est trop complexe pour moi" (alors qu'il venait juste de le faire).
- Parfois, il oublie de changer la recette de base, même s'il sait qu'elle est dangereuse.
3. Les Analogies des Failles Découvertes
Voici quelques exemples concrets de ce que l'apprenti a fait de travers :
- Le Portail Magique (Injection SQL) : Il a construit une porte d'entrée pour une base de données, mais il a laissé la serrure ouverte. N'importe qui pouvait entrer en criant une phrase magique.
- La Boîte à Outils Explosive (Déni de Service) : Il a créé un programme qui compte des objets, mais si quelqu'un lui donne une liste infinie, le programme explose de fatigue.
- Le Coffre-Fort à Clé Unique (Cryptographie) : Il a mis la même clé pour ouvrir 3 coffres-forts différents, et il a laissé cette clé collée sur la porte avec du scotch (clé codée en dur). N'importe qui peut voler les clés.
- Le Miroir Brisé (XSS) : Il a créé une page web qui affiche ce que les gens écrivent, mais sans vérifier si c'est un message ou un virus. Si quelqu'un écrit un virus, il s'exécute sur l'ordinateur de tout le monde.
4. Le Dilemme Éthique : L'Apprenti est-il Coupable ?
L'article soulève une question intéressante : L'apprenti devrait-il refuser de cuisiner ?
- ChatGPT refuse de donner des recettes pour fabriquer des bombes (code malveillant).
- Mais il accepte de fabriquer des bombes à retardement (code vulnérable) si on lui demande de faire un programme "normal".
C'est comme si un architecte refusait de dessiner un plan pour une bombe, mais dessinait une maison avec des murs en papier sans vous avertir que le vent la renversera.
5. La Leçon à Retenir
Ce papier nous dit deux choses importantes :
- Ne faites pas confiance aveuglément : ChatGPT est un outil formidable pour apprendre et aller vite, mais ce n'est pas un expert en sécurité. Si vous utilisez son code sans vérifier, c'est comme construire une maison sur du sable.
- Il faut être un chef exigeant : L'apprenti peut devenir excellent, mais seulement si le chef (l'humain) lui pose les bonnes questions : "Est-ce que c'est sécurisé ?", "Que se passe-t-il si un pirate essaie de casser ça ?".
En résumé :
ChatGPT est un génie de la technique mais un négligent de la sécurité. Il peut écrire du code, mais il ne sait pas toujours le protéger. En tant qu'utilisateurs, nous devons rester les chefs de cuisine : nous devons goûter, vérifier et renforcer les défenses avant de servir le plat au public.
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.