Pourquoi vous avez besoin d’un compagnon de sécurité pour le code généré par l’IA
25 octobre 2023
0 minutes de lectureTout le monde parle d’intelligence artificielle générative (IA générative), et une immense vague de développeurs intègre déjà cette technologie qui change la donne à leur travail. Cependant, les assistants de codage basés sur l’IA générative doivent toujours être utilisés avec des outils de sécurité IA. Voyons pourquoi et ce que révèlent les données.
Grâce à l’assistance de l’IA, les développeurs créent plus vite que jamais. Face à ce bond spectaculaire de productivité, les équipes de sécurité doivent suivre le rythme sans freiner les progrès ni laisser involontairement des vulnérabilités s’infiltrer dans le flot de code.
Le volume est un enjeu majeur, mais il existe aussi un décalage considérable entre la vitesse de développement optimisée par l’IA générative et celle des processus de test plus traditionnels. Lorsqu’un outil de codage basé sur l’IA générative produit du code, le développeur peut supposer qu’il est sécurisé et poursuivre son travail jusqu’à ce qu’un test de sécurité soit effectué. Si une vulnérabilité est alors détectée, le développeur doit revenir sur son travail pour la corriger. Ce changement de tâche prend du temps (une étude précédente de l’Université de Californie à Irvine montre qu’il nous faut 23 minutes pour retrouver notre concentration après une interruption) et se révèle aussi très inefficace, car il faut refaire une partie du travail.
De plus, des études de référence montrent que d’autres facteurs aggravent encore le problème :
Nombre de vulnérabilités : les développeurs qui utilisent des assistants de codage basés sur l’IA générative introduisent beaucoup plus de vulnérabilités dans leur code que ceux qui codent sans cette aide.
Conscience réduite des risques : les développeurs qui utilisent des assistants de codage basés sur l’IA générative ont une confiance accrue, mais injustifiée, dans le code qu’ils produisent.
Nous examinerons ces deux études plus en détail ci-dessous. Mais l’essentiel, c’est que les développeurs produisent non seulement davantage de code vulnérable avec l’aide de l’IA, mais qu’ils font aussi davantage confiance à ce code vulnérable qu’au code non sécurisé qu’ils écrivaient eux-mêmes. Les développeurs et les équipes AppSec ont donc besoin de solutions de sécurité plus intelligentes, plus rapides et plus intuitives pour faire face à ces nouveaux problèmes.

Ne partez pas du principe que le code généré par l’IA est sûr
Comme indiqué plus haut, le problème ne tient pas seulement au volume de code. Il tient aussi aux vulnérabilités introduites à l’insu des développeurs, à la vitesse de l’IA. Des vulnérabilités qui s’intègrent directement aux fondations de votre application.
Pourquoi ne faut-il pas partir du principe que le code généré par l’IA est sûr ? Tout d’abord, une étude menée par des chercheurs de l’Université Stanford (décembre 2022) a montré que les participants disposant d’un assistant IA « écrivaient du code nettement moins sécurisé » que ceux qui n’y avaient pas accès. Par ailleurs, une étude récente de chercheurs de l’Université Cornell (octobre 2023) sur les problèmes de sécurité et leur ampleur — qui s’intéressait précisément à des scénarios réels et à des applications concrètes — a mis en évidence la complexité et l’importance des vulnérabilités du code généré par l’IA. Plus précisément :
35,8 % des extraits de code générés par Copilot contiennent des faiblesses courantes (CWE) dans plusieurs langages.
De plus, et c’est préoccupant, l’étude a révélé une grande diversité de failles de sécurité relevant de 42 CWE différentes. Les vulnérabilités les plus fréquentes étaient les suivantes : CWE-78 : injection de commandes OS, CWE-330 : utilisation de valeurs insuffisamment aléatoires et CWE-703 : vérification ou gestion incorrecte des conditions exceptionnelles.
Et le constat le plus inquiétant : environ 26 % des CWE recensées figurent parmi les 25 principales CWE de 2022.
Les développeurs ont davantage confiance dans le code vulnérable
L’article de recherche de l’Université Stanford cité plus haut a également révélé que « les participants ayant accès à un assistant IA étaient plus susceptibles de croire que leur code était sécurisé que ceux qui n’y avaient pas accès ». Autrement dit, alors que les fondations de vos applications intègrent plus de vulnérabilités que jamais, les développeurs sont aussi plus susceptibles de les y intégrer en toute confiance. On peut supposer que la vitesse est confondue avec la compétence.
La solution : une approche globale
Nous ne disons pas qu’il faut renoncer à l’IA générative. Un sondage Gartner de 2023 auprès de dirigeants de premier plan révèle que 70 % de leurs organisations étudient et explorent l’IA générative, tandis que 19 % ont lancé des projets pilotes ou l’utilisent en production. Le changement est donc déjà engagé. En fait, Snyk utilise aussi des outils de codage basés sur l’IA générative, mais en donnant la priorité à la sécurité.
Nous croyons au potentiel de cette formidable nouvelle technologie, à condition de l’utiliser en toute sécurité. Un outil de codage basé sur l’IA générative peut être considéré comme un développeur inexpérimenté. Il peut produire du code, mais pas en saisir les nuances ; il commet des erreurs et n’a certainement pas été entraîné à repérer les risques de sécurité, qu’ils soient mineurs ou majeurs. Pour répondre à ce problème de sécurité moderne, vous devez adopter une approche globale de DevSecOps qui tient compte des personnes, des processus et des outils.
Personnes
Tout d’abord, vous devez former les développeurs au fonctionnement de l’IA générative, aux failles qui peuvent en découler et aux risques inhérents à cette technologie.
Les modèles d’IA générative — dont les grands modèles de langage (LLM), un sous-ensemble entraîné sur des textes et qui produit du texte — ne sont que des modèles statistiques qui prédisent des résultats en fonction de probabilités. Un LLM analyse d’immenses quantités de données, repère les motifs qui se répètent et formule la meilleure hypothèse sur ce qui est probable (et non factuel), en fonction du grand nombre de répétitions similaires ou identiques observées. Un LLM n’a aucune capacité de raisonnement et sa qualité dépend uniquement des données utilisées pour l’entraîner. Il reproduira donc tout défaut présent dans ces données, notamment les biais et les informations obsolètes. Parfois, ses prédictions ne correspondent pas au contexte, n’ont aucun sens ou sont tout simplement fausses. Mais le LLM ne peut pas comprendre qu’elles sont incorrectes ni attirer l’attention de l’utilisateur sur ce point.
Certains outils d’IA générative intègrent des contrôles de sécurité, mais la sécurité n’est pas leur objectif premier : ces contrôles sont donc insuffisants. Tout comme vous ne vous fieriez pas au pare-feu d’un système d’exploitation pour protéger l’ensemble de votre entreprise, vous ne devriez pas compter sur un assistant de codage comme principale couche de sécurité.
L’IA n’est pas un sujet nouveau, même si ChatGPT a récemment suscité un regain d’intérêt. Si vous souhaitez en savoir plus, vous trouverez une foule de contenus passionnants, notamment sur le blog de Snyk.
Processus
Ensuite, vous devez repenser vos processus. Les méthodes et processus de sécurité traditionnels sont relativement lents et perturbent le travail des développeurs. Comme vous le savez peut-être, Snyk défend depuis longtemps le principe du « shift left » et permet de tester les logiciels et les systèmes plus tôt dans le cycle de développement. Et pour cause : les développeurs créent les produits qui génèrent et préservent votre chiffre d’affaires, tandis que la sécurité protège votre réputation et vous évite de perdre potentiellement des millions, voire des milliards, à la suite d’une erreur ou d’un manque de connaissances. Vous avez donc besoin que ces deux fonctions travaillent de concert, à un rythme et avec une fluidité optimaux.
Historiquement, cependant, les méthodes de travail de ces deux fonctions ont souvent été source de friction. Les développeurs doivent avancer rapidement, mais les méthodes de test existantes créent des goulots d’étranglement. Plutôt que de perturber les activités qui génèrent des revenus, d’imposer des comportements qui ne viennent pas naturellement à vos développeurs et de surcharger encore davantage les équipes de sécurité qui font de leur mieux sans parvenir à suivre le rythme, pourquoi ne pas adopter un champion de la sécurité basé sur l’IA qui neutralise les menaces dès leur apparition ?
Outils
Cela nous amène aux outils. L’IA comporte des risques, mais elle apporte aussi d’immenses gains de productivité. Une voiture nous simplifie considérablement la vie en nous permettant de nous déplacer beaucoup plus vite, mais elle présente aussi des risques importants : nous ne conduirions jamais sans boucler notre ceinture. De la même façon, les développeurs doivent utiliser les outils de codage basés sur l’IA générative avec une « ceinture de sécurité » bien attachée. L’étude de l’Université Stanford citée plus haut a révélé que, parmi le code sécurisé et non sécurisé produit par les participants qui utilisaient l’IA générative, « 87 % des réponses sécurisées nécessitaient des modifications importantes de la part des utilisateurs ». Selon l’étude, cela pourrait signifier qu’« une modification éclairée » est nécessaire pour sécuriser le code. Ce constat confirme notre conviction : les développeurs peuvent tirer parti de l’immense potentiel de l’IA générative, à condition que leur code fasse l’objet de contrôles de sécurité en temps réel et au même rythme.
Maintenant que nous savons que le code généré par l’IA nécessite des contrôles de sécurité, quelles sont les caractéristiques d’une solution adaptée à cet usage ? Un tel outil doit fonctionner en arrière-plan et suivre le rythme des développeurs, effectuer des contrôles approfondis et précis, et assurer l’interopérabilité.
C’est là que Snyk peut vous aider. Forts de notre expérience cumulée en tant qu’experts en sécurité, nous mettons nos connaissances au service de la sécurisation et de la correction de votre code au rythme du développement assisté par l’IA. Conscient que la sécurisation des applications modernes est un processus complexe, Snyk vérifie en temps réel le code de l’ensemble de votre application au fur et à mesure de son écriture. La solution suit les flux de données pour identifier uniquement les dépendances et vulnérabilités pertinentes, génère une correction potentielle, puis vérifie à nouveau l’application dans son ensemble pour en évaluer l’impact, avant de signaler les vulnérabilités pertinentes au développeur et de permettre leur correction en un clic directement dans l’IDE. Et tout cela en quelques secondes.

Snyk s’intègre directement aux outils les plus populaires (IDE, Git, CLI), aux langages et aux workflows. En bref, Snyk est le meilleur ami du développeur, avec la sécurité à cœur. Nous sommes là où se trouvent les développeurs et leurs outils d’IA, nous travaillons à leur rythme et les aidons à créer des applications plus sûres.
Vous vous demandez comment choisir le bon compagnon de sécurité pour votre outil de codage basé sur l’IA générative ? Nous en parlerons en détail la semaine prochaine. Ne manquez pas notre prochain article de blog.
Adoptez le nouveau « shift left » avec Snyk
Nous avons vu que l’IA générative est extrêmement utile, mais qu’elle pose aussi d’importants problèmes de sécurité. Pour les équipes de sécurité, les difficultés liées aux outils de codage basés sur l’IA générative comprennent :
Des workflows perturbés : on ne peut pas s’attendre à ce que les développeurs attendent la fin des builds et le retour des résultats de test avant de reprendre la tâche en cours.
Un volume accru et les faiblesses qui l’accompagnent : avec l’IA, les développeurs codent plus vite, mais introduisent aussi proportionnellement davantage de vulnérabilités dans leur code.
Une confiance accrue des développeurs dans le code vulnérable : leur outil d’IA leur donne un faux sentiment de sécurité.
Les outils d’IA générative ont changé la donne et déplacé le « shift left » encore plus en amont, avant même le travail du développeur. Nous devons donc intervenir dès l’étape de l’IA dans le cycle de développement logiciel pour maîtriser les risques. Tout comme la ceinture de sécurité permet au conducteur d’aller plus vite, les outils de sécurité vous permettent d’accélérer avec vos outils de codage basés sur l’IA générative.
Donnez aux développeurs les moyens de tirer parti de l’IA générative en toute sécurité. Adoptez le nouveau shift left avec le compagnon idéal de votre assistant de codage basé sur l’IA générative : Snyk.
Vous voulez voir Snyk en action ? Regardez notre session virtuelle à la demande : Live Hack: Exploiting AI-Generated Code.
Commencez à sécuriser le code généré par l’IA
Créez gratuitement votre compte Snyk pour commencer à sécuriser le code généré par l’IA en quelques minutes. Vous pouvez aussi réserver une démonstration avec un expert pour découvrir comment Snyk répond à vos besoins en sécurité des développeurs.



