4 risques du codage par IA et comment y remédier
13 juin 2024
0 minutes de lecture
96 % des développeurs utilisent des outils de codage par IA pour générer du code, détecter des bugs et proposer de la documentation ou des suggestions de code. Ils s’appuient tellement sur des outils comme ChatGPT et GitHub Copilot qu’environ 80 % d’entre eux contournent les protocoles de sécurité pour les utiliser.
Que vous déconseilliez ou non le code généré par l’IA dans votre organisation, les développeurs l’utiliseront probablement. Et cela comporte son lot de risques.
D’un côté, le code généré par l’IA aide les développeurs à gagner du temps. Ils peuvent alors consacrer ce temps à des aspects plus créatifs et stratégiques du développement, comme la conception de l’architecture et l’expérimentation de fonctionnalités innovantes.
De l’autre, une dépendance excessive au code généré par l’IA entraîne des vulnérabilités de sécurité, ainsi que des problèmes d’originalité du code et des litiges liés à la propriété intellectuelle. Examinons ces risques en détail et voyons comment trouver le juste équilibre entre supervision humaine et autonomie de l’IA.
1. Manque d’explicabilité et de transparence
Les développeurs qui utilisent du code généré par l’IA doivent le vérifier, le déboguer et l’améliorer. Ils doivent également être en mesure de justifier les décisions prises par les systèmes d’IA. C’est particulièrement important dans les domaines de la santé, de la finance et du droit, où les décisions de l’IA ont des conséquences majeures. Pourtant, le code généré par l’IA manque intrinsèquement d’explicabilité et de transparence.
L’explicabilité désigne la capacité du développeur à comprendre et à retracer la manière dont les modèles d’IA produisent leurs résultats.
La transparence désigne la capacité de l’outil d’IA à fournir aux parties prenantes des informations claires, compréhensibles et accessibles sur ses processus et ses décisions.
Le manque d’explicabilité et de transparence du code généré par l’IA peut entraîner :
Du code difficile à interpréter, à déboguer et à maintenir, ce qui augmente les coûts et réduit l’efficacité du cycle de développement logiciel.
Des problèmes de conformité réglementaire, notamment dans les secteurs soumis à des exigences de sécurité, de confidentialité ou d’éthique.
Dans le cas de l’IA générative accessible au public, il est difficile de comprendre le raisonnement à l’origine de ses résultats. Après tout, vous n’avez pas entraîné l’IA et ne connaissez donc pas précisément les données utilisées. C’est pourquoi le code généré par l’IA pose souvent des problèmes de maintenance.
Dans certains cas, ce code peut comporter des biais intrinsèques difficiles à détecter. Par exemple, en 2019, un système d’IA utilisé dans le domaine de la santé pour prédire les risques pour les patients a été jugé biaisé et inexact. Ses processus décisionnels manquaient de transparence et étaient difficiles à interpréter. Il a fallu beaucoup de temps aux chercheurs pour repérer et corriger les biais dus à des associations erronées dans les données d’entraînement.
ChatGPT, GitHub Copilot et les outils similaires génèrent du code rapidement, mais n’expliquent pas toujours leurs résultats. Pour surmonter ces difficultés :
Examinez et évaluez les résultats générés par l’IA. Repérez les incohérences, les schémas illogiques et les réponses qui ne respectent pas les bonnes pratiques de codage.
Comparez le code généré à une documentation fiable ou à des sources faisant autorité pour en vérifier l’exactitude et la logique. La documentation officielle de vos langages de programmation, frameworks ou bibliothèques vous sera utile.
Documentez tout code ou toute décision importante généré par l’IA. Indiquez comment l’IA a été utilisée, quelles entrées lui ont été fournies et quelles modifications ont été apportées au résultat. Cette documentation sera précieuse pour référence ultérieure ou si des questions se posent sur le processus décisionnel.
2. Vulnérabilités de sécurité
Une étude menée par des chercheurs de l’université Stanford a révélé que les développeurs utilisant des systèmes d’IA pour générer du code étaient plus susceptibles de produire des applications non sécurisées. Tout comme le code écrit par des humains, le code généré par l’IA peut contenir des failles ou des bugs à l’origine de vulnérabilités de sécurité. Cependant, contrairement aux failles du code écrit par des humains, celles-ci ne suivent pas toujours des schémas prévisibles ou bien connus, ce qui les rend plus difficiles à détecter et à corriger.
Parmi les problèmes de sécurité courants dans le code généré par l’IA, on trouve :
Vulnérabilités par injection : l’IA peut ne pas valider complètement les entrées utilisateur ou mal gérer les données, ce qui permet aux attaquants d’injecter du code malveillant ou des requêtes dans le système.
Faiblesses de l’authentification : des mécanismes d’authentification défectueux peuvent permettre des accès non autorisés.
Autorisations mal configurées : l’IA peut ne pas configurer correctement les autorisations des différents composants ou utilisateurs. Une mauvaise configuration peut entraîner des attaques par élévation de privilèges.
Sans supervision adéquate, le code généré par l’IA peut manquer de cohérence et ne pas respecter des pratiques de sécurité uniformes dans les différentes parties de l’application. Pour réduire ce risque lié au codage par IA :
Réalisez des audits et des revues de code par les pairs sur le code généré par l’IA.
Automatisez les outils de test statique de sécurité des applications (SAST) pour tester le code généré par l’IA à mesure qu’il est créé et déployé.
Formez vos équipes de développement aux risques de sécurité potentiels du code généré par l’IA. Security for Developers, une formation certifiée proposée par Snyk et l’Université de New York, est adaptée à cet objectif.
3. Atteinte à la propriété intellectuelle
Récemment, un groupe d’auteurs a poursuivi OpenAI, l’accusant d’avoir utilisé des œuvres protégées par le droit d’auteur pour entraîner le grand modèle de langage derrière ChatGPT. Si des juges fédéraux ont récemment déclaré que les résultats du système d’IA générative ne portaient pas atteinte aux droits des titulaires de droits d’auteur, la législation sur l’IA et la propriété intellectuelle reste pour le moins floue.
Les outils d’IA génèrent du code à partir de vastes jeux de données, comprenant du code accessible au public et potentiellement des informations propriétaires ou confidentielles. Certains résultats peuvent donc porter atteinte involontairement aux droits de propriété intellectuelle.
Pour éviter cette situation, suivez les étapes ci-dessous :
Vérifiez que le code généré par l’IA ne pose pas de problèmes de propriété intellectuelle, en particulier avec les systèmes d’IA accessibles au public comme ChatGPT et GitHub Copilot.
Suivez l’actualité de l’IA et tenez-vous au courant des lois relatives aux contenus générés par l’IA.
Utilisez des mécanismes tels que le filigrane ou d’autres techniques de gestion des droits numériques (DRM) pour tracer le code généré par l’IA.
4. Absence de politiques encadrant le code généré par l’IA
L’IA générative étant une nouveauté prometteuse, la plupart des organisations se dépêchent de l’adopter sans prendre le temps de définir des politiques d’utilisation. Seules 10 % des entreprises disposent d’une politique formelle sur les contenus générés par l’IA.
Sans politiques claires, l’utilisation de l’IA variera considérablement d’une équipe et d’un projet à l’autre. Cela entraînera des résultats incohérents et compromettra l’intégrité du code et la sécurité des applications. Vous risquez également de nuire à votre réputation si le code généré par l’IA cause un préjudice ou présente des biais.
Des politiques adaptées donneront à vos développeurs des directives claires sur l’utilisation du code généré par l’IA. Pour mettre en place ces politiques et réduire les risques liés au codage par IA, vous pouvez commencer par les étapes suivantes :
Définissez les domaines dans lesquels les contenus générés par l’IA peuvent être utilisés dans votre entreprise. Il peut s’agir de la génération de code, de la documentation et/ou des tests automatisés. Vous établirez ainsi des limites pour prévenir les utilisations abusives.
Utilisez des outils comme Snyk Code pour analyser le code généré par l’IA et détecter et corriger les vulnérabilités de sécurité.
Désignez les personnes responsables de la vérification et de l’approbation des contenus générés par l’IA. Mettez en place des revues par les pairs afin que les développeurs vérifient l’intégrité et la fiabilité du code généré par l’IA avant son déploiement.
Élaborez des protocoles pour traiter les problèmes liés aux contenus générés par l’IA, comme les atteintes potentielles à la propriété intellectuelle ou les vulnérabilités de sécurité. Prévoyez notamment des stratégies de communication et des mesures d’atténuation.
Une fois votre politique établie, informez-en les développeurs et les autres parties prenantes concernées. Examinez et mettez également vos politiques à jour au fil de l’évolution de la réglementation.
Réduisez les risques liés au codage par IA avec Snyk
Snyk Code est un outil SAST facile à utiliser qui fournit des analyses de sécurité en temps réel, avec une visibilité complète sur le contexte de l’application, pour tout type de code, y compris celui généré par l’IA. Notre logiciel s’appuie sur de nombreux retours d’experts humains pour offrir une qualité et une précision supérieures.
Essayez d’analyser votre code généré par l’IA avec Snyk pour détecter les vulnérabilités.
