LLMs: Code non sécurisé par défaut

La dernière recherche de Backslash Security a révélé une tendance préoccupante : les grands modèles linguistiques (LLM) comme GPT-4.1, ainsi que d’autres modèles largement utilisés, ont tendance à générer du code non sécurisé par défaut. Cela signifie que sans instructions ou directives spécifiques axées sur la sécurité, le code produit par ces systèmes d’IA est souvent vulnérable aux faiblesses et aux exploits courants. Cependant, la recherche indique également que la sécurité du code généré peut être considérablement améliorée en fournissant des conseils de sécurité supplémentaires ou en mettant en œuvre une gouvernance basée sur des règles.

Pour approfondir cette question, Backslash Security a annoncé le lancement du serveur Model Context Protocol (MCP), ainsi que des règles et des extensions conçues pour les environnements de développement intégrés (IDE) Agentic. Ces outils visent à remédier aux vulnérabilités de sécurité identifiées dans le code généré par LLM et à fournir aux développeurs les moyens de créer des applications plus sécurisées.

LLMs et génération de code non sécurisé : le scénario par défaut

Backslash Security a mené une série de tests sur sept versions différentes de LLM populaires, notamment les modèles GPT d’OpenAI, Claude d’Anthropic et Gemini de Google. L’objectif était d’évaluer comment diverses techniques d’invite influençaient la capacité des modèles à générer du code sécurisé. La sécurité de la sortie de code a été évaluée en fonction de sa résistance à dix cas d’utilisation Common Weakness Enumeration (CWE), qui représentent une gamme de vulnérabilités logicielles courantes.

Les résultats de ces tests ont constamment montré que la sécurité du code généré s’améliorait avec des techniques d’invite plus sophistiquées. Cependant, le thème général était que tous les LLM testés produisaient généralement du code non sécurisé lorsqu’ils étaient livrés à eux-mêmes. Cela suggère que ces modèles, dans leurs configurations par défaut, ne privilégient pas la sécurité et ne parviennent souvent pas à corriger les faiblesses de codage courantes.

Invites naïves : une recette pour la vulnérabilité

Lorsqu’ils étaient présentés avec des invites simples, ‘naïves’ qui ne mentionnaient pas explicitement les considérations de sécurité, tous les LLM testés ont généré du code non sécurisé qui était vulnérable à au moins quatre des dix CWE courants. Cela met en évidence le manque inhérent de sensibilisation à la sécurité dans ces modèles lorsqu’ils fonctionnent sans orientation spécifique.

L’impact des invites axées sur la sécurité

Les invites qui spécifiaient généralement un besoin de sécurité ont conduit à des résultats plus sûrs, indiquant que les LLM sont capables de produire un code plus sécurisé lorsqu’ils sont explicitement invités à le faire. En outre, les invites qui demandaient un code conforme aux meilleures pratiques de l’Open Web Application Security Project (OWASP) ont donné des résultats encore meilleurs. L’OWASP est une fondation à but non lucratif qui œuvre à l’amélioration de la sécurité des logiciels. Cependant, même avec ces invites plus sophistiquées, certaines vulnérabilités de code ont persisté dans cinq des sept LLM testés, soulignant les difficultés à générer systématiquement du code sécurisé avec les LLM.

Invites basées sur des règles : une voie vers un code sécurisé

L’approche la plus efficace pour générer du code sécurisé impliquait des invites liées à des règles spécifiées par Backslash pour traiter des CWE spécifiques. Ces invites basées sur des règles ont abouti à un code sécurisé et non vulnérable aux CWE testés. Cela suggère qu’il est essentiel de fournir aux LLM des conseils spécifiques et ciblés pour garantir la sécurité du code généré.

Variations de performances entre les LLM

Dans l’ensemble, le GPT-4o d’OpenAI a démontré les performances les plus faibles dans toutes les invites, obtenant un résultat de code sécurisé de seulement 1 sur 10 lors de l’utilisation d’invites ‘naïves’. Même lorsqu’il était invité à générer du code sécurisé, il produisait toujours des sorties non sécurisées vulnérables à huit problèmes sur dix. GPT-4.1 n’a pas obtenu de résultats significativement meilleurs avec des invites naïves, obtenant un score de 1,5 sur 10.

En revanche, Claude 3.7 Sonnet est apparu comme le meilleur performeur parmi les outils GenAI testés. Il a obtenu un score de 6 sur 10 en utilisant des invites naïves et un score parfait de 10 sur 10 en utilisant des invites axées sur la sécurité. Cela suggère que certains LLM sont mieux équipés pour gérer les considérations de sécurité, même en l’absence d’instructions explicites.

Les solutions de Backslash Security pour un codage sûr

Pour résoudre les problèmes révélés par ses tests d’invite LLM, Backslash Security présente plusieurs nouvelles fonctionnalités conçues pour permettre un codage sécurisé. Le codage fait référence à la pratique consistant à générer du code à l’aide d’outils d’IA tels que les LLM.

Règles et politiques d’IA Backslash

Les règles et politiques d’IA Backslash fournissent des règles lisibles par machine qui peuvent être injectées dans les invites pour garantir la couverture des CWE. Ces règles peuvent être utilisées avec des outils comme Cursor, un éditeur de code populaire. De plus, les politiques d’IA contrôlent quelles règles d’IA sont actives dans les IDE via la plateforme Backslash, permettant aux organisations de personnaliser leurs paramètres de sécurité.

Extension IDE Backslash

L’extension IDE Backslash s’intègre directement dans les flux de travail existants des développeurs, leur permettant de recevoir des revues de sécurité Backslash sur le code écrit par des humains et par l’IA. Cette intégration est cruciale pour garantir que les considérations de sécurité sont prises en compte tout au long du processus de développement.

Serveur Model Context Protocol (MCP) Backslash

Le serveur Model Context Protocol (MCP) Backslash est une API sensible au contexte qui est conforme à la norme MCP. Il connecte Backslash aux outils d’IA, permettant un codage, une numérisation et des corrections sécurisés. La norme MCP fournit un cadre commun permettant aux outils d’IA de communiquer et de partager des informations, facilitant ainsi le développement d’applications sécurisées basées sur l’IA.

Relever les défis du code généré par l’IA

Yossi Pik, cofondateur et directeur technique de Backslash Security, souligne les défis que le code généré par l’IA pose aux équipes de sécurité. Il note que ‘le code généré par l’IA – ou le codage – peut ressembler à un cauchemar pour les équipes de sécurité. Il crée un déluge de nouveau code et apporte des risques LLM comme les hallucinations et la sensibilité aux invites.’ Les hallucinations font référence aux cas où les LLM génèrent des informations incorrectes ou absurdes, tandis que la sensibilité aux invites fait référence à la tendance des LLM à produire des sorties différentes en fonction de subtiles variations de l’invite d’entrée.

Cependant, Pik estime également que l’IA peut être un outil précieux pour les équipes AppSec lorsqu’elle est utilisée avec les bonnes commandes. Il soutient qu’avec les bonnes commandes – comme les règles définies par l’organisation et un serveur MCP sensible au contexte connecté à une plateforme de sécurité spécialement conçue – l’IA peut en fait donner aux équipes AppSec plus de contrôle dès le départ.’ Backslash Security vise à fournir ces commandes grâce à ses règles dynamiques basées sur des politiques, à son serveur MCP sensible au contexte et à son extension IDE, qui sont tous conçus pour la nouvelle ère du codage.

Les implications du code non sécurisé généré par l’IA

Les conclusions de la recherche de Backslash Security ont des implications importantes pour l’industrie du développement de logiciels. À mesure que les outils de génération de code basés sur l’IA deviennent de plus en plus répandus, il est essentiel de comprendre les risques associés au fait de s’appuyer sur ces outils sans mesures de sécurité appropriées en place.

Vulnérabilité accrue aux cyberattaques

Le code non sécurisé généré par l’IA peut créer de nouvelles vulnérabilités que les cybercriminels peuvent exploiter. Ces vulnérabilités peuvent entraîner des violations de données, des compromissions de systèmes et d’autres incidents de sécurité.

Difficulté à identifier et à corriger les vulnérabilités

Le volume considérable de code généré par l’IA peut rendre difficile l’identification et la correction des vulnérabilités. Les équipes de sécurité peuvent avoir du mal à suivre le rythme rapide de la génération de code, ce qui entraîne un arriéré de problèmes de sécurité.

Manque de sensibilisation à la sécurité chez les développeurs

De nombreux développeurs peuvent ne pas être pleinement conscients des risques de sécurité associés au code généré par l’IA. Ce manque de sensibilisation peut conduire les développeurs à introduire par inadvertance des vulnérabilités dans leurs applications.

Défis de conformité réglementaire

Les organisations qui s’appuient sur le code généré par l’IA peuvent être confrontées à des défis de conformité réglementaire. De nombreusesréglementations exigent que les organisations mettent en œuvre des mesures de sécurité adéquates pour protéger les données sensibles. Le code non sécurisé généré par l’IA peut rendre difficile le respect de ces exigences.

Meilleures pratiques pour une génération de code sécurisée basée sur l’IA

Pour atténuer les risques associés au code non sécurisé généré par l’IA, les organisations doivent adopter les meilleures pratiques suivantes :

Dispenser une formation en sécurité aux développeurs

Les développeurs doivent recevoir une formation sur les risques de sécurité associés au code généré par l’IA. Cette formation doit couvrir des sujets tels que les CWE courants, les pratiques de codage sécurisées et l’utilisation des outils de sécurité.

Mettre en œuvre des politiques et des procédures de sécurité

Les organisations doivent mettre en œuvre des politiques et des procédures de sécurité qui traitent de l’utilisation du code généré par l’IA. Ces politiques doivent définir les cas d’utilisation acceptables, les exigences de sécurité et les processus d’examen et d’approbation du code généré par l’IA.

Utiliser des outils de sécurité pour analyser le code généré par l’IA

Les organisations doivent utiliser des outils de sécurité pour analyser le code généré par l’IA à la recherche de vulnérabilités. Ces outils peuvent aider à identifier les CWE courants et d’autres problèmes de sécurité.

Mettre en œuvre un cycle de vie de développement sécurisé (SDLC)

Les organisations doivent mettre en œuvre un cycle de vie de développement sécurisé (SDLC) qui intègre des considérations de sécurité tout au long du processus de développement. Cela comprend la réalisation d’examens de sécurité du code généré par l’IA, la réalisation de tests d’intrusion et la mise en œuvre d’une surveillance de la sécurité.

Établir un programme de prime aux bogues

Les organisations doivent établir un programme de prime aux bogues pour encourager les chercheurs en sécurité à trouver et à signaler les vulnérabilités dans le code généré par l’IA. Cela peut aider à identifier les vulnérabilités qui ont pu être manquées par les équipes de sécurité internes.

Se tenir informé des dernières menaces à la sécurité

Les organisations doivent se tenir informées des dernières menaces à la sécurité et des vulnérabilités qui affectent le code généré par l’IA. Cela peut les aider à résoudre de manière proactive les problèmes de sécurité potentiels.

Collaborer avec des experts en sécurité

Les organisations doivent collaborer avec des experts en sécurité pour évaluer la sécurité de leur code généré par l’IA et élaborer des stratégies d’atténuation des risques.

L’avenir de la génération de code sécurisée basée sur l’IA

À mesure que les outils de génération de code basés sur l’IA continuent d’évoluer, il est essentiel de donner la priorité à la sécurité. En mettant en œuvre les meilleures pratiques décrites ci-dessus, les organisations peuvent exploiter les avantages de la génération de code basée sur l’IA tout en atténuant les risques associés au code non sécurisé.

Progrès de la sécurité de l’IA

Les efforts continus de recherche et développement sont axés sur l’amélioration de la sécurité des systèmes d’IA. Ces efforts comprennent l’élaboration de nouvelles techniques de détection et de prévention des attaques adverses, l’amélioration de la robustesse des modèles d’IA et la création d’architectures d’IA plus sécurisées.

Intégration de la sécurité dans le développement de l’IA

La sécurité est de plus en plus intégrée au processus de développement de l’IA. Cela comprend l’intégration de considérations de sécurité dans la conception des modèles d’IA, l’utilisation de pratiques de codage sécurisées et la réalisation de tests de sécurité tout au long du cycle de vie du développement.

Collaboration entre les experts en IA et en sécurité

La collaboration entre les experts en IA et en sécurité est essentielle pour garantir la sécurité des systèmes d’IA. Cette collaboration peut aider à identifier les risques de sécurité potentiels et à élaborer des stratégies d’atténuation efficaces.

Sensibilisation accrue aux risques de sécurité de l’IA

La sensibilisation accrue aux risques de sécurité de l’IA stimule le développement de nouveaux outils et techniques de sécurité. Cela comprend des outils de détection des attaques adverses, d’analyse de la sécurité des modèles d’IA et de surveillance des systèmes d’IA pour détecter les activités suspectes.

En relevant les défis de sécurité associés au code généré par l’IA, les organisations peuvent libérer tout le potentiel du développement basé sur l’IA tout en protégeant leurs systèmes et leurs données contre les cyberattaques. L’avenir de l’IA est intimement lié à la capacité d’intégrer la sécurité au cœur de son développement et de son déploiement. Cela nécessite une collaboration étroite entre les experts en sécurité, les développeurs d’IA et les décideurs politiques afin de créer un écosystème d’IA sûr et fiable. La normalisation des protocoles de sécurité, la mise en place de cadres de conformité robustes et la promotion d’une culture de sensibilisation à la sécurité sont autant d’éléments essentiels pour garantir que l’IA reste un outil puissant au service de l’humanité, et non une source de risques et de vulnérabilités. Il est impératif de continuer à investir dans la recherche et le développement de technologies de sécurité de l’IA de pointe, ainsi que dans la formation et l’éducation des professionnels de la sécurité afin de les doter des compétences nécessaires pour faire face aux défis complexes posés par l’IA. En adoptant une approche proactive et collaborative de la sécurité de l’IA, nous pouvons créer un avenir où l’IA est utilisée de manière responsable et éthique pour améliorer la vie de tous. Le code généré par l’IA, lorsqu’il est déployé avec des mesures de sécurité appropriées, peut révolutionner le développement de logiciels, accélérer l’innovation et améliorer l’efficacité. Cependant, il est crucial de reconnaître que la sécurité de l’IA n’est pas un objectif statique, mais plutôt un processus continu qui nécessite une adaptation constante aux nouvelles menaces et vulnérabilités. En restant vigilants et en adoptant une approche axée sur la sécurité, nous pouvons exploiter le pouvoir de l’IA pour le bien, tout en minimisant les risques potentiels. L’avenir de l’IA est prometteur, mais il est de notre responsabilité collective de veiller à ce qu’il soit sûr et sécurisé pour tous. Cela implique de sensibiliser, de promouvoir les meilleures pratiques et de collaborer pour créer un écosystème d’IA qui privilégie la sécurité et la confidentialité par défaut. En adoptant cette approche, nous pouvons libérer tout le potentiel de l’IA et créer un avenir où elle est utilisée de manière responsable et éthique pour améliorer la vie de tous.