Les assistants de code IA représentent-ils une menace pour la sécurité applicative ?

Les assistants de code IA représentent-ils une menace pour la sécurité applicative ? Recourir à l'intelligence artificielle pour le développement de code source n'est pas sans danger. De bonnes pratiques sont nécessaires pour éviter les risques cyber.

Codex, GitHub Copilot, ChatGPT… L'avènement des assistants de code par IA a conduit de nombreux développeurs à changer leurs pratiques quotidiennes. Que se soit pour l'autocomplétion, le débogage ou la génération de fonctions complexes, l'intelligence artificielle est utilisée à de nombreuses étapes pour optimiser le temps passé à certaines tâches rébarbatives. Le code généré par l'IA est-il pour autant de bonne qualité et dépourvu de failles de sécurité ? Rien n'est moins sûr.

Des IA "insécurisées par conception"

Pour préparer au mieux son entreprise à ces nouveaux risques il est essentiel d'anticiper et de comprendre le fonctionnement de ces technologies. Pour être en capacité de générer du code source, les modèles d'intelligence artificielle sont entraînés sur une vaste quantité de données textuelles dont un large corpus de code source. Problème ? "Les solutions de génération de code sont insécurisées par conception, car elles ont été formées sur du code non sécurisé", affirme Ori Bendet, VP of Product Management pour Checkmarx, une société américaine spécialisée dans l'analyse statique de code source et l'identification des vulnérabilités. "Le code généré par l'IA est ainsi par nature non sécurisé. Notre équipe de recherche a pu le prouver", insiste-t-il.

Ori Bendet identifie également un deuxième risque majeur, plus connu : l'hallucination. De la même manière que Bard a tendance à inventer des informations fausses sur certains sujets, les IA de développement peuvent produire du code source imprécis et à côté de la plaque. L'IA peut ainsi tenter d'inclure des librairies open source inexistantes, comme cela a été démontré par Vulcan Cyber. Des attaquants en ont profité pour créer ces packages imaginaires et glisser ensuite du code malveillant, indique le spécialiste.

L'IA moins risquée qu'un développeur junior ?

Ces nouveaux vecteurs d'attaque doivent être pris au sérieux par les sociétés. D'autant plus que les pratiques des développeurs ont drastiquement changé au cours des derniers mois. "Selon la dernière enquête de Stack Overflow, 82% des développeurs ont déclaré qu'ils utilisaient l'IA générative pour créer du code. C'est vraiment surprenant", note Ori Bendet. Ces changements de paradigmes, Marc Hugon, Chief Technical Officer projets de l'agence web open source Kaliop, les a également relevés. En complément de Stack Overflow, et de Github Copilot, les développeurs de l'entreprise recourent à ChatGPT. "Beaucoup de développeurs posent la question à ChatGPT avant de rechercher sur Google", résume-t-il.

Globalement, Kaliop est assez favorable à l'utilisation de l'IA générative en appui du développeur. Pour s'assurer que le code généré ne soit pas utilisé à des fins d'entraînement, l'agence prend des licences professionnelles pour les employés. Marc Hugon considère l'IA comme un développeur de compétence "plutôt moyen plus." "En comparant le niveau de risque entre mon intelligence artificielle (IA) et un débutant chez Kaliop, il apparaît que l'IA est généralement moins risquée car elle commet moins d'erreurs. Cependant, si on la compare à un développeur expérimenté, il est possible que l'IA commette des erreurs de codage que ce dernier n'aurait pas commis", analyse le CTO.

Des secteurs plus réticents

D'autres entreprises évoluant aux côtés de secteurs plus sensibles renoncent à utiliser l'IA générative pour le développement. C'est le cas de l'ESN HN Services (anciennement Groupe HN). En début d'année 2023 la société, qui collabore avec une clientèle composée en majeure partie de banques et d'assurances, a décidé de tester les possibilités et les limites de l'IA générative pour la génération de code. "Nous avons rassemblé des équipes de développeurs et rapidement, nous avons ajouté d'autres professions telles que celles de product owner, business analyst et testeur. L'objectif était de former une équipe de développement semblable à une team Scrum et d'évaluer comment elle pourrait utiliser ces outils et quels étaient les risques", se rappelle John Modeste, directeur marketing et solutions chez HN Services.

Rapidement, les équipes ont identifié les dangers liés à ces outils. "Les développeurs demandent à ChatGPT de générer ou de corriger du code. Cela implique souvent de copier-coller du code qui appartient à une entreprise dans ChatGPT. Ainsi, le code est déposé quelque part sans que l'on sache vraiment comment il est utilisé. Actuellement, personne ne sait exactement comment cela fonctionne", constate John Modeste. Après les inquiétudes de nombreux clients, l'ESN a alors décidé d'interdire formellement l'utilisation de ChatGPT pour le coding. En revanche, les développeurs peuvent toujours avoir recours au chatbot d'OpenAI pour "structurer leur pensée ou leur questionnement autour d'une fonctionnalité attendue."

Les développeurs resteront le maillon essentiel

Pour John Modeste, l'IA générative a encore des progrès à faire dans l'application des normes de codage, unique à chaque entreprise. "Prenons l'exemple d'un client dont les normes de codage sont détaillées dans un livre de près de cent pages. Je ne sais pas encore comment intégrer ces normes de codage à ChatGPT ou à une autre IA. Ces normes sont en quelque sorte l'un des piliers de la sécurité de nos clients et des applications sur lesquelles nous travaillons", résume-t-il.

Pour Ori Bendet de Checkmarx, avant de généraliser l'utilisation de l'IA générative tous azimut pour le développement, il est nécessaire pour une entreprise d'organiser un brainstorming entre "les équipes de sécurité des applications (AppSec), les équipes de développement et éventuellement le département juridique." Dans tous les cas, les entreprises ne pourront pas se séparer des développeurs recourir uniquement à l'IA. "Si j'étais développeur, je pense que j'aurai encore du travail pour les 50 prochaines années", analyse l'expert. Et de prédire : "Dans le futur, les développeurs se concentreront de plus en plus sur la logique métier, ils se focaliseront davantage sur les tâches créatives et moins sur l'infrastructure."