Les développeurs de logiciels ont montré qu'ils étaient prêts et désireux d'utiliser l'intelligence artificielle générative (IA) pour écrire du code, et ils ont généralement obtenu des résultats favorables. Mais de nombreux signes indiquent également qu'ils pourraient jouer un jeu dangereux.
Selon une enquête récente de GitHub, plus de 90 % des développeurs américains utilisent des outils de codage de l'IA, citant des avantages tels que des délais d'exécution plus courts, une résolution rapide des incidents et un environnement plus collaboratif, ce qu'ils considèrent comme important. L'utilisation d'outils d'IA permet aux développeurs de se décharger des tâches routinières, ce qui leur permet de se consacrer à des travaux plus créatifs qui profitent à leur entreprise et, non sans raison, réduisent les risques d'épuisement professionnel.
Toutefois, des études ont également montré que les outils d'IA ont tendance à introduire des failles lors de l'écriture du code. Une enquête menée par Snyk a révélé que, bien que 75,8 % des personnes interrogées affirment que le code de l'IA est plus sûr que le code humain, 56,4 % admettent que l'IA introduit parfois des problèmes de codage. Fait alarmant, 80 % des personnes interrogées ont déclaré qu'elles contournaient les politiques de sécurité du code de l'IA au cours du développement.
Depuis le lancement du ChatGPT d'OpenAI en novembre 2022, l'utilisation de modèles d'IA générative s'est répandue à la vitesse de l'éclair dans le processus de développement du code dans les services financiers, comme dans de nombreux autres domaines. L'émergence rapide d'autres modèles, tels que GitHub Copilot, OpenAI Codex et une liste croissante d 'autres modèles, suggère que nous n'avons fait qu'effleurer la surface de ce que l'IA générative peut faire et de l'impact qu'elle peut avoir. Mais pour que cet impact soit positif, nous devons nous assurer que le code qu'elle génère est sécurisé.
Les bogues de codage peuvent se propager rapidement
Qu'il soit créé par des développeurs humains ou des modèles d'IA, le code contiendra toujours des erreurs. L'IA contribuant à accélérer le développement du code pour répondre aux demandes sans cesse croissantes dans les environnements informatiques hautement distribués et basés sur le cloud, les risques de propagation à grande échelle d'un mauvais code avant qu'il ne soit détecté pourraient augmenter.
Les modèles d'IA formés à l'écriture de code ingèrent des milliers d'exemples de code qui exécutent diverses tâches, puis ils peuvent s'inspirer de ces exemples pour créer leur propre code. Mais si les échantillons à partir desquels il travaille contiennent des failles ou des vulnérabilités - qu'ils aient été créés à l'origine par un humain ou une autre IA - le modèle pourrait transférer ces failles dans un nouvel environnement.
La recherche ayant montré que les modèles d'IA ne sont pas capables de reconnaître de manière fiable les failles dans le code qu'ils utilisent, il n'y a guère de défense intégrée contre la propagation des failles et des vulnérabilités. Non seulement l'IA commettra des erreurs de codage, mais elle répétera ses propres erreurs et celles d'autres sources jusqu'à ce que la vulnérabilité soit identifiée quelque part, peut-être sous la forme d'une violation réussie d'une entreprise utilisant le logiciel qu'elle a créé.
La véritable défense contre la prolifération des failles de codage réside dans la collaboration entre les humains et les modèles d'IA. Les développeurs humains devraient superviser la rédaction du code de l'IA et servir de garde-fou contre les pratiques de codage non sécurisées et le code vulnérable. Mais pour cela, les développeurs doivent être parfaitement formés aux meilleures pratiques de rédaction de code sécurisé afin de pouvoir identifier les erreurs de codage qu'une IA pourrait commettre et les corriger rapidement.
Les défis de la création de code d'IA et de la remédiation
L'explosion soudaine des grands modèles de langage (LLM) tels que ChatGPT a été une sorte d'épée à double tranchant. D'un côté, les entreprises et les utilisateurs quotidiens ont constaté des gains de productivité considérables grâce à l'utilisation de l'IA pour effectuer des tâches fastidieuses, onéreuses ou difficiles. D'un autre côté, de nombreux exemples montrent ce qui peut se passer lorsqu'on fait aveuglément confiance à l'IA pour effectuer le travail.
Les modèles d'IA ont commis des erreurs flagrantes, fait preuve de partialité et produit de véritables hallucinations. Dans de nombreux cas, les données d'entraînement inadéquates ou irresponsables étaient à l'origine du problème. La qualité d'un modèle d'IA dépend des données sur lesquelles il est entraîné. Il est donc essentiel que les données d'entraînement soient complètes et soigneusement vérifiées. Il est donc essentiel que les données d'entraînement soient complètes et soigneusement vérifiées. Mais même dans ce cas, certaines erreurs seront commises.
L'utilisation de l'IA pour le codage se heurte à de nombreux obstacles similaires. Il a été démontré que le code généré par l'IA contient une série de failles, telles que des vulnérabilités au cross-site scripting et à l'injection de code, ainsi que des attaques spécifiques à l'IA et à l'apprentissage machine (ML), telles que l'injection d'invite. Les modèles d'IA fonctionnent également comme une boîte noire car leurs processus ne sont pas transparents, ce qui empêche une équipe de sécurité ou de développement de voir comment l'IA parvient à ses conclusions. Par conséquent, le modèle peut répéter les mêmes erreurs à l'infini. Les mêmes lacunes qui peuvent affecter l'écriture du code s'appliquent également à l'utilisation de l'IA pour la remédiation du code et le respect des exigences de conformité.
Le risque que des failles soient créées ou répétées par des modèles d'IA s'est accru au point que les LLM ont désormais leur propre liste des dix principales vulnérabilités de l'Open Web Application Security Project (OWASP).
Les développeurs et l'IA peuvent travailler ensemble pour créer du code sécurisé
Les inquiétudes concernant les failles potentielles du code généré par l'IA peuvent faire réfléchir certaines organisations, ne serait-ce que brièvement, avant d'aller de l'avant avec cette technologie. Mais les avantages potentiels sont trop importants pour être ignorés, d'autant plus que les développeurs d'IA continuent d'innover et d'améliorer leurs modèles. Il est peu probable que le secteur des services financiers, par exemple, remette le génie dans la bouteille. Les banques et les sociétés de services financiers sont déjà axées sur la technologie, et elles opèrent dans un domaine où elles sont toujours à la recherche d'un avantage concurrentiel.
L'essentiel est de mettre en œuvre les modèles d'IA de manière à minimiser les risques. Cela signifie que les développeurs doivent être sensibilisés à la sécurité et formés de manière approfondie aux meilleures pratiques de codage sécurisé, afin qu'ils puissent écrire eux-mêmes du code sécurisé et surveiller de près le code produit par les modèles d'IA. En faisant travailler les moteurs d'IA et les développeurs humains dans un partenariat étroit, les développeurs ayant le dernier mot, les entreprises peuvent récolter les fruits d'une productivité et d'une efficacité accrues tout en améliorant la sécurité, en limitant les risques et en garantissant la conformité.
Pour un aperçu complet de la manière dont le codage sécurisé peut contribuer à garantir le succès, la sécurité et les profits des entreprises de services financiers, vous pouvez lire le guide Secure Code Warrior qui vient de paraître : Le guide ultime des tendances en matière de sécurité dans les services financiers.
Consultez les pages du Secure Code Warrior pour en savoir plus sur la cybersécurité, sur les menaces de plus en plus dangereuses et sur la manière dont vous pouvez utiliser des technologies et des formations innovantes pour mieux protéger votre organisation et vos clients.