In this article
ChatGPT et le codage sécurisé : avantages et failles de sécurité du code généré par ChatGPT
À mesure que les développeurs adoptent des outils d’IA pour transformer leurs méthodes de travail, le code généré par l’IA se généralise. En fait, 96 % des développeurs déclarent utiliser des assistants de codage basés sur l’IA pour simplifier leur travail.
Si les outils d’IA générative (GenAI), comme ChatGPT, peuvent accélérer les processus et améliorer la productivité, la sécurité et la qualité des résultats ne sont pas garanties. Les développeurs et les organisations qui adoptent ChatGPT ou d’autres outils GenAI doivent en comprendre les avantages, mais aussi connaître les failles de sécurité et les problèmes potentiels liés au code généré par l’IA. Ils doivent également privilégier la mise en place de pratiques de sécurité solides.

ChatGPT peut-il écrire du code sécurisé ?
Selon une enquête, 75,8 % des développeurs estiment que le code généré par l’IA est plus sécurisé que le code écrit par des humains, alors qu’il a été démontré que le code généré par l’IA introduit des failles. Il a également été constaté que les développeurs ayant accès à des assistants d’IA reposant sur le modèle codex-davinci-002 d’OpenAI écrivaient du code nettement moins sécurisé que ceux qui n’y avaient pas accès. Fait intéressant, les développeurs qui soignaient leurs interactions avec le modèle, par exemple en rédigeant des prompts plus efficaces, produisaient du code plus sécurisé.
Ainsi, ChatGPT et d’autres outils de codage basés sur l’IA peuvent écrire du code sécurisé, mais leurs résultats dépendent entièrement des données d’entraînement et de la formulation des prompts. Si les données d’entraînement contiennent des failles ou des erreurs, le code généré par l’IA sera non sécurisé dès le départ. Les développeurs doivent donc considérer tout code généré par l’IA comme non sécurisé et corriger les failles avant son déploiement.
Sans ces précautions, du code non sécurisé peut se propager dans toute la base de code et, à terme, compromettre la sécurité des applications et des logiciels.
Dans quelle mesure le code généré par ChatGPT est-il fiable ?
La fiabilité du code généré par ChatGPT dépend de la tâche à accomplir et des données d’entraînement utilisées. ChatGPT a désormais accès à des informations plus récentes et peut consulter Internet, mais il peut toujours halluciner ou générer du code peu fiable, notamment parce que les bonnes pratiques de codage et les langages évoluent. Cela peut poser un problème de sécurité si les développeurs considèrent que le code généré par ChatGPT est forcément sécurisé, fiable et à jour. Près de 80 % des développeurs reconnaissent contourner les mesures de sécurité, estimant que le code généré par l’IA est « suffisamment sécurisé », ce qui peut entraîner la propagation de failles et de problèmes de sécurité dans toute une base de code.
ChatGPT est-il performant en programmation ?
Des études montrent que ChatGPT peut bien réussir les problèmes ou les tâches de programmation de difficulté faible ou moyenne. Il a également été démontré que ChatGPT est prometteur pour aider à réaliser des tâches de programmation, mais qu’il présente des limites évidentes. Comme indiqué précédemment, la qualité de ChatGPT et de ses résultats dépend des données sur lesquelles il a été entraîné. Les biais, les erreurs, les informations obsolètes ou les prompts imprécis nuisent à la qualité du code généré. De plus, ChatGPT éprouve souvent des difficultés avec les problèmes de programmation plus complexes : il ne peut donc pas remplacer les compétences spécialisées ni l’expérience.
ChatGPT peut-il détecter les failles dans le code ?
ChatGPT peut analyser le code pour repérer les lacunes et les incohérences, puis fournir des commentaires susceptibles de révéler des failles courantes. Cependant, il peut ne pas comprendre du code complexe et ne pas détecter les failles complexes, qui risquent alors de passer inaperçues jusqu’à ce qu’un incident plus grave survienne.
Lors de la revue de code, ChatGPT ne peut pas analyser le code en temps réel. Les développeurs doivent donc le saisir manuellement pour le faire examiner. Cela peut poser problème si les modifications ou les correctifs ne sont pas pris en compte ou actualisés dans ChatGPT : des failles risquent alors d’être ignorées ou de rester sans solution. ChatGPT peut également produire des hallucinations et évaluer incorrectement la sécurité du code.
ChatGPT peut-il garantir des pratiques de codage sécurisées ?
ChatGPT peut servir à une première évaluation du code, mais le processus de développement doit également intégrer d’autres mesures de sécurité. S’appuyer uniquement sur ChatGPT pour garantir des pratiques de codage sécurisées laissera passer des failles. Les équipes AppSec doivent toujours disposer d’outils et de mesures de sécurité complets pour veiller au respect de ces pratiques.
Les données sont-elles en sécurité avec ChatGPT ?
L’utilisation de grands modèles de langage (LLM), comme ChatGPT, soulève d’importantes questions de sécurité des données. ChatGPT intègre des mesures de sécurité, mais les entreprises doivent partir du principe qu’aucune donnée traitée par la GenAI n’est sécurisée. Il arrive souvent que les utilisateurs partagent des informations sensibles dans leurs prompts sans y penser, en supposant qu’elles sont protégées. Pourtant, des informations confidentielles ou sensibles pourraient être intégrées aux données d’entraînement du modèle et apparaître dans ses résultats, exposant ainsi l’entreprise à des risques.
De plus, si ChatGPT ou un autre outil d’IA venait à être compromis, ou si le compte utilisateur d’une entreprise était piraté, des acteurs malveillants pourraient accéder à des informations sensibles ou aux données d’entraînement, ce qui aggraverait les risques pour les organisations. Pour les limiter, les entreprises doivent définir des politiques internes précisant ce que les employés peuvent partager avec les outils d’IA et la façon dont ces données sont gérées.
Comment vérifier la sécurité du code généré par ChatGPT
Dans une organisation, les protocoles de cybersécurité doivent évoluer pour prendre en compte les outils GenAI. Sans une posture de sécurité solide, reposant notamment sur des politiques et des protocoles internes pour des outils comme ChatGPT, les organisations sont exposées à des risques. Le plus souvent, le risque majeur est la mise en production de code généré par l’IA qui n’est pas sécurisé. Celui-ci peut se propager à plusieurs projets et provoquer une violation de sécurité.
Le moyen le plus efficace de vérifier la sécurité du code généré par ChatGPT consiste à utiliser un outil dédié à l’analyse de sécurité, comme Snyk Code. Contrairement à ChatGPT, Snyk Code s’intègre facilement au flux de travail des développeurs et à toutes les étapes du développement. Snyk Code analyse également le code en temps réel et recherche les failles en continu. Propulsé par DeepCode AI, Snyk Code hiérarchise les failles et recommande des correctifs, afin que les équipes se concentrent sur les problèmes les plus critiques.
ChatGPT et les autres outils de codage GenAI peuvent améliorer le travail des développeurs. Toutefois, une plateforme comme Snyk est essentielle pour garantir la sécurité de la base de code et des applications d’une organisation et les protéger contre les failles et les attaques à venir.
SÉCURITÉ DU CODE GÉNÉRÉ PAR L’IA
Guide d’achat sur la sécurité du code généré par l’IA
Découvrez comment sécuriser votre code généré par l’IA avec le Guide d’achat sur la sécurité du code généré par l’IA de Snyk.