Éviter les dangers du code généré par l'IA
2023 a été une année charnière pour les développeurs et l’IA générative. GitHub Copilot a terminé sa phase de prévisualisation technique en juin 2022 et OpenAI a publié ChatGPT en novembre 2022. À peine 18 mois plus tard, selon une enquête de Sourcegraph, 95 % des développeurs déclarent utiliser l’IA générative pour les aider à écrire du code. L’IA générative peut aider les développeurs à écrire plus de code dans un laps de temps plus court, mais nous devons considérer dans quelle mesure cela peut être une bonne chose.
Lorsque nous parlons d’outils d’IA pour le développement de logiciels, cela signifie actuellement principalement ChatGPT et GitHub Copilot, bien qu’il existe une concurrence de Google Bard, Amazon CodeWhisperer et Sourcegraph’s Cody. Les développeurs réussissent à utiliser l’IA générative pour résoudre des problèmes de codage courants, répétitifs et peu complexes. Cependant, ces assistants ne parviennent pas à comprendre des bases de code complexes, à reconnaître des modèles complexes et à détecter des problèmes et des vulnérabilités complexes.
Selon les premières recherches de GitHub concernant l’utilisation de Copilot, les développeurs écrivent du code de manière mesurable plus rapidement et se perçoivent comme plus productifs, moins frustrés et plus épanouis. Qu’est-ce qui pourrait mal se passer?
Code non sécurisé généré par l’IA
Une étude de Stanford réalisée à peu près à la même époque a révélé que les participants ayant accès à un assistant IA étaient plus susceptibles d’écrire du code non sécurisé et plus susceptibles de qualifier leurs réponses de sécurisées par rapport à un groupe témoin. Parallèlement, une enquête de Sauce Labs a révélé que 61 % des développeurs admettent utiliser du code non testé généré par ChatGPT, et 28 % le font régulièrement.
Ainsi, les développeurs écrivent du code plus rapidement et en produisent davantage avec l’aide de l’IA générative. Mais ils sont plus susceptibles d’écrire du code non sécurisé, tout en le croyant sécurisé, et même de le mettre en production sans le tester. En 2024, il est probable que nous verrons les premières grandes vulnérabilités logicielles attribuées au code généré par l’IA. Le succès de l’utilisation d’outils d’IA pour créer des logiciels entraînera un excès de confiance dans les résultats et, en fin de compte, une faille qui sera imputée à l’IA elle-même.
Pour éviter une telle expérience, l’industrie dans son ensemble doit redoubler d’efforts en matière de pratiques de développement garantissant que le code, écrit à la fois par les développeurs et par l’IA, est analysé, testé et conforme aux normes de qualité et de sécurité. Il est important que les organisations élaborent des processus garantissant que le code est analysé, testé et révisé afin qu’il soit fiable, quelle que soit la manière dont il a été créé.
Ces pratiques créent un tampon permettant aux développeurs d’exploiter les générateurs de code d’IA sans risque, aujourd’hui et à l’avenir. C’est important maintenant car les outils d’IA générative sont nouveaux et assez rudimentaires et nécessitent beaucoup de surveillance humaine pour les guider dans la bonne direction. C’est également important à l’avenir, car l’IA générative et la technologie qui l’utilise continuent d’évoluer rapidement. Nous ne savons pas à quoi cela ressemblera dans le futur, mais nous savons que sans les outils et les processus nécessaires pour contrôler le code, nous ne comprendrons peut-être pas ce que nous déployons.
Mettre l’accent sur un code propre
À mesure que l’adoption d’outils d’IA pour créer du code augmente, les organisations devront mettre en place les freins et contrepoids appropriés pour garantir que le code qu’elles écrivent est propre, maintenable, fiable, de haute qualité et sécurisé. Les dirigeants devront faire du code propre une priorité s’ils veulent réussir.
Un code propre (un code cohérent, intentionnel, adaptable et responsable) garantit un logiciel de qualité supérieure tout au long de son cycle de vie. Avec autant de développeurs travaillant simultanément sur le code, il est impératif que les logiciels écrits par un développeur puissent être facilement compris et modifiés par un autre à tout moment. Avec un code propre, les développeurs peuvent être plus productifs sans passer autant de temps à comprendre le contexte ou à corriger le code d’un autre membre de l’équipe.
Lorsqu’il s’agit de production massive de code assisté par l’IA, le maintien d’un code propre est essentiel pour minimiser les risques et la dette technique. La mise en œuvre d’une approche « propre pendant que vous codez » avec des tests et des analyses appropriés est cruciale pour garantir la qualité du code, qu’il soit généré par l’homme ou par l’IA.
En parlant d’humains, je ne crois pas que les développeurs vont disparaître, mais la manière dont ils font leur travail au quotidien va certainement changer. La façon dont les développeurs utiliseront l’IA sera aussi simple et courante que de rechercher quelque chose sur Google comme raccourci. Il y a beaucoup à explorer sur l’utilisation de l’IA moderne, et nous devons considérer l’élément humain au premier plan pour vérifier les inconvénients de l’IA.
En garantissant que les logiciels générés par l’IA contiennent un code propre, les organisations peuvent éviter d’être victimes des inconvénients potentiels de l’IA, comme des bugs subtils ou des failles de sécurité, et elles peuvent tirer davantage de valeur de leurs logiciels de manière prévisible et durable. Ceci n’est pas négociable alors que le statut et l’avenir du développement logiciel en tant que profession sont intimement liés à l’intégration de l’IA.
L’IA a un potentiel de transformation pour le développement de logiciels, mais nous ne devons pas la laisser fonctionner sans contrôle, surtout lorsque les entreprises numériques dépendent aujourd’hui des logiciels qui la sous-tendent.
Phil Nash est un défenseur des développeurs pour Sonar au service des communautés de développeurs à Melbourne et partout dans le monde. Il adore travailler avec JavaScript ou Ruby pour créer des applications et des outils Web pour aider les développeurs. On peut le trouver lors de rencontres et de conférences, jouer avec les nouvelles technologies et les API, ou écrire du code open source. Avant de travailler chez Sonar, il était l’un des principaux développeurs évangélistes chez Twilio.
L’adoption croissante des outils d’IA générative tels que GitHub Copilot et ChatGPT nécessite une surveillance humaine rigoureuse et des pratiques de développement solides pour garantir un code sécurisé et de qualité, minimisant ainsi les vulnérabilités et les failles de sécurité potentielles.
IA générative, code sécurisé, développement logiciel, GitHub Copilot, ChatGPT, OpenAI, Google Bard, Amazon CodeWhisperer, Sourcegraph Cody, Stanford, Sauce Labs, vulnérabilités, tests de sécurité, analyse de code, pratiques de développement, code propre, dette technique, processus de révision, surveillance humaine, freins et contrepoids, qualité du code, production de code, API, bugs subtils, failles de sécurité, Phil Nash