Il faut bien l'admettre : les développeurs de logiciels ne bénéficient pas forcément d'une formation très approfondie. Ils écrivent donc parfois du code peu sûr, tout en subissant la pression de devoir travailler à une vitesse supérieure à celle d'un être humain. Aujourd’hui, à l’ère de l’IA, ils s’appuient davantage sur des outils capables de générer plus rapidement des extraits de code, et ils – ou plutôt, nous tous, en réalité – ont tendance à faire davantage confiance à ce code qu’à celui rédigé par des humains.
Cette rapidité et cette confiance ne constituent pas la meilleure combinaison pour la sécurité des applications.
La vitesse de développement accrue rendue possible par les grands modèles linguistiques (LLM) et l'IA générative (GenAI) setraduit par une augmentation de la vitesse d'apparition des vulnérabilités, ce qui engendre désormais une multitude de nouveaux défis en matière de tests de sécurité, de correction et de gouvernance intelligente de l'IA .
À l'approche de la conférence Black Hat USA 2024, l'une des sessions les plus attendues est intitulée «: De HAL à HALT : contrecarrer les frères et sœurs de Skynet à l'ère du codage par IA générative »", présentée par Chris Wysopal, figure de proue reconnue dans le domaine de la sécurité des applications et cofondateur de Veracode.
Lors d'un entretien exclusif organisé juste avant la conférence Black Hat USA 2024, , responsable du programme « », s'est entretenu avec M. Wysopal pour aborder les thèmes essentiels qu'il traitera lors de sa session. Voici quelques points clés tirés de notre entretien, qui vous donnent un aperçu de ce que les participants pourront découvrir sur les liens entre l'IA générative et la cybersécurité.
Cet entretien a été légèrement remanié pour des raisons de longueur et de clarté.
Votre session Black Hat fait référence à (HAL) et (Skynet) – quelques-uns des moments les plus tristement célèbres de l'IA au cinéma hollywoodien. À moins qu'Arnold Schwarzenegger ne fasse irruption dans nos bureaux, à votre avis, à quel point la situation va-t-elle réellement changer pour nous ?
L'objectif de cette session est d'aborder la question de savoir en quoi le code généré par les grands modèles de langage (LLM) constitue probablement l'une des principales applications de ces modèles à l'heure actuelle. Ce secteur est en pleine croissance et recèle un potentiel incroyablement vaste. Cela va changer la manière dont les logiciels sont développés.
«» Le code généré par les modèles de langage de grande capacité (LLM) constitue sans doute l'une des principales applications de ces modèles à l'heure actuelle. Ce secteur est en pleine croissance et recèle un potentiel incroyablement vaste. »
Pour moi, qui travaille dans le domaine de la sécurité des applications d' depuis plus de 25 ans, il s'agit là d'un changement considérable dans le développement logiciel. En règle générale, lorsque des modifications sont apportées au développement logiciel, cela entraîne des changements au niveau de la sécurité des applications. Cette présentation porte donc sur la manière dont l'IA générative, c'est-à-dire le code généré par l'IA, va transformer la sécurité des applications.
Vous avez indiqué que le code généré par un LLM peut présenter autant de failles de sécurité que le code écrit par un humain. Quelles en sont les implications pour les entreprises qui s'appuient sur des outils tels que ChatGPT ou Microsoft Copilot ?
Plusieurs études menées par l'université de Stanford, l'université de Wuhan et l'université Carnegie Mellon se sont penchées sur ce problème et ont essentiellement conclu que ces modèles de langage de grande envergure (LLM) génèrent un code à peu près aussi peu sécurisé que celui créé par des humains. Si les données d'entrée sont erronées, les résultats le seront aussi. Si vous apprenez à faire quelque chose d'une certaine manière, vous allez probablement le faire de cette façon. C'est donc en quelque sorte le point de départ de référence. Et là, on se dit : « Bon, qu'est-ce qu'on fait dans ce cas-là ? »
Comment les entreprises peuvent-elles tirer parti de l'IA générative tout en garantissant la sécurité du développement logiciel ?
[Au lieu d'entraîner] un modèle de base à l'écriture de code, nous pouvons l'ajuster et lui fournir des exemples de ce à quoi ressemble un mauvais code. Et si vous tombez sur ce mauvais code et qu'on vous demande d'écrire du bon code, voici à quoi ressemblerait ce bon code.
«[Au lieu d’entraîner] un modèle de base à l’écriture de code, nous pouvons l’ajuster et lui fournir des exemples de ce à quoi ressemble un mauvais code. »
L'une des solutions que nous envisageons consiste à n'hésiter pas à utiliser ChatGPT, Code Llama, Copilot, car ces outils disposent des meilleures connaissances pour écrire différents types de code dans de nombreux langages de programmation et résoudre divers problèmes de programmation. Et faites comme si de rien n'était quant au fait qu'il s'agit d'un code vulnérable, tout comme vous feriez comme si de rien n'était quant au fait que vos développeurs écrivent du code vulnérable. Car, franchement, vous ne leur faites pas suivre une formation au codage sécurisé suffisamment intensive pour qu’ils écrivent systématiquement un code sécurisé de qualité. En gros, vous dites : « Je sais que mes développeurs écrivent du code non sécurisé. »
Vous devez donc toujours effectuer des tests de sécurité sur , et vous devez toujours corriger les failles de sécurité.
Selon vous, comment le rôle de l'expertise humaine va-t-il évoluer à l'ère du codage piloté par l'IA ? La révision manuelle du code et les tests de sécurité ont-ils encore leur place ?
Nous sommes déjà confrontés à un problème : nous trouvons dans le code développé par des humains plus de bogues que nous ne pouvons en corriger, n'est-ce pas ? Vous vous retrouvez donc avec un déficit de sécurité qui ne cesse de s'aggraver. Vous ne consacrez déjà pas suffisamment de ressources pour corriger tous les problèmes que vous identifiez grâce à votre solution d'automatisation « ».
C'est donc en quelque sorte le problème de départ. Et nous allons désormais aggraver ce problème en écrivant davantage de code plus rapidement, tout en conservant globalement le même niveau de sécurité. Même s'il était deux fois plus performant, même s'il présentait deux fois moins de vulnérabilités, vous vous retrouveriez tout de même face à un problème plus grave si vous exécutiez trois fois plus de code par développeur. Nous créons donc davantage de vulnérabilités en utilisant les modèles de langage de grande envergure (LLM) dans le cadre du développement.
Donc oui, nous avons besoin d'outils rapides dans le pipeline CI/CD d' pour détecter les problèmes, mais nous avons également besoin d'outils rapides pour les résoudre.
Vous avez évoqué le potentiel d'apprentissage récursif et la dégénérescence des connaissances dans les modèles d'IA. Pourriez-vous nous en dire davantage sur cette question et ses implications en matière de cybersécurité ?
Oui, cela commence à devenir un sujet de préoccupation pour les gens. L'apprentissage à partir de contenus générés par l'IA a des effets néfastes sur les connaissances, car vous assimilez ces « hallucinations ». L'idée est donc la suivante : que se passerait-il si la majeure partie du code écrit l'était par des modèles de langage de grande envergure (LLM), et que ces modèles, comme nous le savons tous, commettaient parfois des erreurs ? Cela pose-t-il un problème pour la prochaine génération de code qui s'en inspirera ?
«Allez-y, utilisez votre ChatGPT, votre Code Llama, votre Copilot… Et ignorez le fait qu’il génère du code vulnérable, [car] vous devrez tout de même tester la sécurité du code et corriger les failles de sécurité. »
Vous savez, cette nouvelle génération de modèles de langage de grande échelle (LLM) : d’ici trois ans, lorsqu’elle sera en phase d’apprentissage, va-t-elle s’appuyer sur, disons, 10 % du code mondial écrit par des LLM ? Et ce chiffre va-t-il commencer à augmenter ? Peut-être qu'un jour, nous écrirons presque toujours du code à l'aide de modèles de langage de grande envergure (LLM), et qu'il n'y aura pratiquement plus aucune interaction humaine. Qu'est-ce que cela signifie si les LLM apprennent les uns des autres, et que nous n'apprenons donc que des résultats produits par d'autres LLM ?
Nous commençons tout juste à comprendre en quoi cela a un effet néfaste sur les connaissances, et il se pourrait que nous devions marquer le code généré par les modèles de langage de grande envergure (LLM) afin de ne pas entraîner les futurs LLM à partir de ce code. Ou quelque chose comme ça.
Quelles questions éthiques l'utilisation de l'IA générative pour la programmation soulève-t-elle, notamment en ce qui concerne l'attribution du code et les questions de droits d'auteur ?
Vous êtes confronté au même problème que celui que vous rencontrez avec les articles du New York Times sur « » ( ) ou, par exemple, avec le livre de Sarah Silverman : elle intente un procès parce qu’elle a écrit des blagues dans un livre qu’elle n’a jamais interprétées nulle part. C'était simplement dans le livre, et on le retrouve dans les réponses de ChatGPT, par exemple quand on lui demande : « Écrivez-moi une blague à ce sujet », et il utilise ses blagues.
Il est donc clair qu'il s'agit simplement d'une utilisation de mon contenu et de mon contenu protégé par le droit d'auteur. C'est donc tout à fait le cas avec le code.
La majeure partie du code sur lequel il a été entraîné est sous licence GPL ( , ou « Licence publique générale ») . Cela nécessite donc une mention de la source et, dans certains cas, la licence GPL 3 de l' , disponible à l'adresse , vous obligerait à publier le code de votre logiciel si vous l'intégrez. Donc, oui, c'est un sujet sur lequel nous n'avons encore vu aucune jurisprudence, mais je peux vous dire que les avocats s'en inquiètent beaucoup. Ils procèdent à une analyse du code à l'aide d'outils d'analyse de fragments de code pour tenter de trouver des correspondances, afin de vérifier s'il existe des similitudes avec du code open source ; si le bloc de code concerné est suffisamment important, cela constituerait une contrefaçon. C'est-à-dire une seule ligne de code que vous ne pouvez pas enfreindre. Mais s'il s'agit d'une chorégraphie complète… S'il s'agit d'un cours entier, cela constitue sans aucun doute une contrefaçon.
Pour conclure, qu'attendez-vous le plus de cette édition de Black Hat, et que souhaitez-vous que les participants retiennent de votre intervention ?
Ce que je souhaite vraiment dire, c'est que l'IA générative a un impact considérable sur la programmation. Tout comme la migration vers le cloud ou quelque chose de ce genre, il s'agit d'un changement fondamental pour les applications et nous devons réfléchir à la manière dont cela va modifier la sécurité des logiciels à l'avenir.
Il faut mettre en place des procédures pour éviter que cela n'aggrave la situation. Comme la correction automatique – je trouve que c'est une bonne idée. Notre rôle consiste à veiller à ce que, que nous soyons une banque ou une société de logiciels , les logiciels que nous mettons sur le marché soient sécurisés ; et si l'IA générative compromet cette sécurité, nous devons y apporter une réponse. C'est là mon message principal.
POUR EN SAVOIR PLUS, RENDEZ-VOUS AU BLACK HAT USA 2024
Ne manquez pas cette occasion d'écouter l'un des plus grands experts en cybersécurité et de participer aux débats sur l'avenir de l'IA et de la sécurité des applications lors de la conférence Black Hat USA 2024. La session de Chris Wysopal, intitulée « » (Black Hat USA 2024 : ), est un rendez-vous incontournable pour tous les professionnels de l'informatique – ainsi que pour les dirigeants d'entreprise souhaitant mieux cerner l'un des principaux obstacles à la sécurité de l'IA.
- Session : De HAL à HALT : contrecarrer les « frères et sœurs » de Skynet à l’ère du codage par IA générative
- Date : mercredi 7 août
- Horaires : 1:30 - 14:10 (heure du Pacifique)
- Adresse : , Oceanside A, niveau 2

