Andrej Karpathy est un ancien chercheur et membre fondateur d’OpenAI. Il a également été directeur principal de l’IA chez Tesla。்? no
Dernièrement, il utilise Copilot, qui s’appuie sur GPT-3 pour générer du code. Il a publié ce message à ce sujet :
« Belle lecture sur la rétro-ingénierie de GitHub Copilot. Copilot a considérablement accéléré ma programmation, il est difficile d’imaginer revenir à la « programmation manuelle ». J’apprends encore à m’en servir, mais il écrit déjà environ 80 % de mon code, avec un taux de précision d’environ 80 %. En réalité, je ne code même pas vraiment : je formule des requêtes et je fais des retouches. »
Alors que ChatGPT a récemment captivé le monde entier, force est de constater que l’IA générative progresse de manière significative depuis plusieurs années. L’un de ses domaines d’application majeurs consiste à aider au développement de code.
Pourtant, ces systèmes posent certains problèmes, notamment en matière de failles de sécurité. C’est la conclusion d’une étude menée par des universitaires de Stanford. Ils signalent:
« Nous avons constaté que les participants ayant accès à un assistant d’IA produisaient souvent davantage de failles de sécurité que ceux qui n’y avaient pas accès, avec des résultats particulièrement significatifs pour le chiffrement des chaînes de caractères et l’injection SQL… Fait surprenant, nous avons également constaté que les participants ayant accès à un assistant d’IA étaient plus susceptibles de croire qu’ils avaient écrit du code sécurisé que ceux qui n’y avaient pas accès. »
À lire aussi : Des analystes en cybersécurité utilisent ChatGPT pour analyser du code malveillant et prédire les menaces
Comprendre les systèmes de programmation automatique par IA
Depuis quelque temps, les IDE, ou environnements de développement intégrés, intègrent des systèmes intelligents destinés à améliorer la programmation. Parmi leurs fonctionnalités figurent la complétion automatique, les suggestions de code et le débogage avancé.
Mais l’émergence de grands modèles de langage comme GPT-3, Codex, Copilot et ChatGPT a été transformatrice. Ils s’appuient sur des techniques d’IA générative telles que les transformeurs, l’apprentissage non supervisé et l’apprentissage par renforcement. En traitant d’immenses volumes de contenu, les LLM peuvent comprendre et créer du code sophistiqué.
Par exemple, vous pouvez rédiger une requête comme « Écris une fonction en Python qui calcule la moyenne des nombres de la base de données XYZ. » Le système d’IA s’en chargera. Il comprendra même le contexte, notamment les déclarations de variables pertinentes à inclure.
Un système de programmation basé sur l’IA peut également fournir des recommandations lorsqu’une personne programme. Cela peut se produire lorsque vous commencez à écrire l’en-tête d’une fonction et que le système termine le bloc de code. Vous pouvez appuyer sur la touche Tab pour l’accepter.
« La génération de code est l’une des premières applications phares de l’IA générative », a déclaré Muddu Sudhakar, fondateur et PDG d’Aisera, une start-up spécialisée dans l’IA générative. « Ces systèmes ne remplacent pas les programmeurs. Mais ils les rendent certainement beaucoup plus productifs. »
Les problèmes de la programmation assistée par l’IA
Les systèmes de génération de code par IA posent quantité de problèmes. Ils peuvent « halluciner », c’est-à-dire produire un code qui semble solide, mais qui comporte en réalité des défauts. Dans certains cas, la création du code peut s’interrompre en cours de route en raison de la complexité des fonctions.
Mais ces problèmes ne devraient pas surprendre. Les systèmes de génération de code par IA sont entraînés sur d’immenses volumes de dépôts publics, notamment sur GitHub. Certains programmes peuvent être mal écrits ou ne pas respecter les normes courantes.
Cela peut également introduire des failles de sécurité.
« Le fait de croire que l’IA générera du code conforme aux spécifications de la demande ne signifie pas que ce code a été produit en intégrant les meilleures bibliothèques, en tenant compte des risques liés à la chaîne d’approvisionnement ou en ayant accès à tous les outils propriétaires utilisés pour rechercher les failles », a déclaré Matt Duench, directeur principal du marketing produit chez Okta, une entreprise spécialisée dans la gestion des identités. « Ces systèmes manquent souvent du contexte de cybersécurité nécessaire pour comprendre comment ce code fonctionne dans l’environnement interne et le code source d’une entreprise. »
Autre problème : les développeurs peuvent ne pas disposer des compétences nécessaires pour repérer les problèmes de sécurité. Une partie de l’explication tient à l’aspect bien structuré du code.
« Lorsque vous développez vous-même un programme, vous savez assez précisément ce qu’il fait, ligne par ligne », a déclaré Richard Ford, directeur technique de Praetorian, une entreprise de cybersécurité. « Si les sites Internet comme StackOverflow fournissent déjà un corpus de code que les développeurs peuvent — et utilisent — copier-coller dans leurs propres programmes sans le comprendre pleinement, des modèles comme ChatGPT fournissent beaucoup plus de code avec beaucoup moins d’effort, ce qui pourrait élargir davantage ce “fossé de compréhension”. »
À lire aussi :
- Guide de sécurité de la chaîne d’approvisionnement logicielle pour les développeurs
- Les meilleurs analyseurs de vulnérabilités
Gérer les problèmes de sécurité liés à la programmation par IA
Lorsqu’il s’agit de gérer les risques de sécurité des systèmes de génération de code par IA, il faut commencer par évaluer minutieusement l’outil. Quelles sont ses conditions d’utilisation ? Comment les données sont-elles utilisées ? Des garde-fous sont-ils en place ?
Par exemple, les violations potentielles de propriété intellectuelle constituent une source d’inquiétude. Le code utilisé pour l’entraînement peut être soumis à des licences qui n’autorisent pas son utilisation pour la génération de code.
Pour y remédier, ServiceNow s’est associé à Hugging Face afin de créer BigCode. L’objectif est de créer un outil de programmation qui respecte une IA « ouverte et responsable ».
Même si un outil est adapté à votre organisation, il convient également de mettre en place des revues de code efficaces. « En matière de cybersécurité, ces résultats doivent être soigneusement vérifiés par un expert en sécurité capable d’effectuer une revue de code sécurisée », a déclaré Duench. « En outre, les résultats doivent être comparés à une base de données des vulnérabilités connues existantes afin d’identifier les risques potentiels. »
Quoi qu’il en soit, les systèmes de génération de code par IA semblent installés pour durer — et auront un impact majeur sur l’informatique. Cette technologie améliorera la productivité, démocratisera le développement et contribuera à atténuer la pénurie de développeurs.
« Je ne pense pas que les entreprises devraient réagir en interdisant ce type d’aide », a déclaré Ford. « Le génie est sorti de la bouteille, et les entreprises qui tireront le mieux leur épingle du jeu dans ce nouveau monde seront celles qui adopteront ces avancées avec prudence et réflexion, et non celles qui les rejetteront catégoriquement ou les déploieront inconsidérément comme s’il s’agissait d’une panacée. »
Voir les meilleurs outils de sécurité et de débogage du code





