Parce que… c’est l’épisode 0x586!
Shameless plug
10 au 18 mai 2025 - NorthSec
03 au 05 juin 2025 - Infosecurity Europe
27 et 29 juin 2025 - LeHACK
12 au 17 octobre 2025 - Objective by the sea v8
10 au 12 novembre 2025 - IAQ - Le Rendez-vous IA Québec
17 au 20 novembre 2025 - European Cyber Week
25 et 26 février 2026 - SéQCure 2026Description
Introduction et contexte de la recherche
Gabriel St-Hilaire, enseignant au Cégep Seigneur de Sichel depuis une dizaine d’années et spécialiste en développement d’applications web, a mené une recherche dans le cadre de sa maîtrise en cybersécurité à l’Université de Sherbrooke. Sa recherche porte sur l’utilisation de ChatGPT pour aider au développement sécuritaire.
La problématique qui a motivé cette recherche est simple : pourquoi les programmeurs continuent-ils à faire des erreurs de sécurité dans leur code malgré l’enseignement des bonnes pratiques ? Pour répondre à cette question, Gabriel a exploré la littérature scientifique et identifié trois constats majeurs :
Les programmeurs en entreprise cherchent à déléguer la responsabilité de la sécurité, pensant que quelqu’un d’autre fera la revue de code et trouvera les problèmes.
La cybersécurité passe souvent au second plan, sacrifiée au profit des délais et des fonctionnalités à livrer rapidement.
Il existe un manque de connaissances : même quand des outils signalent des problèmes de sécurité, les développeurs ne savent pas comment les résoudre.État actuel des méthodes de détection
Gabriel a ensuite examiné l’efficacité des méthodes actuelles pour détecter les vulnérabilités :
Les revues de code par des pairs ont un taux de détection inférieur à 50%, et même ceux qui trouvent les vulnérabilités ne savent souvent pas comment les corriger.
Les outils d’analyse statique de sécurité sont encore moins efficaces, avec un taux de détection moyen d’environ 18% (35% pour les meilleurs outils). Ces outils ont également un taux élevé de faux positifs et se concentrent souvent sur certaines catégories de vulnérabilités au détriment d’autres.Potentiel de l’intelligence artificielle
Face à ces lacunes, Gabriel s’est intéressé au potentiel de l’intelligence artificielle pour améliorer la détection des vulnérabilités. Deux éléments sont ressortis de ses recherches :
Des modèles d’IA spécialisés peuvent être très performants (jusqu’à 98% de taux de détection) pour des types spécifiques de vulnérabilités comme les injections SQL, mais ne sont pas adaptés à la variété de technologies et vulnérabilités rencontrées en pratique.
L’IA générative, particulièrement GPT-4, montre une excellente compréhension du code (97% de taux de compréhension), même lorsque le code est obscurci (87%).Gabriel souligne que l’IA générative présente un double avantage : non seulement elle peut analyser le code, mais elle permet aussi d’entamer un dialogue pour comprendre les problèmes détectés, ce qui en fait un excellent outil pédagogique.
Méthodologie de la recherche
Pour tester l’efficacité de ChatGPT dans un contexte réaliste, Gabriel a :
Développé une application PHP de base sans failles de sécurité
Ajouté 86 vulnérabilités différentes dans des fonctionnalités réalistes
Soumis ces modifications à ChatGPT en lui demandant de faire une revue de code de sécurité
Demandé à ChatGPT d’identifier les lignes problématiques, de décrire les vulnérabilités et de fournir les codes CWE (Common Weakness Enumeration) correspondantsRésultats et conclusions
Les résultats ont été analysés selon trois critères :
“Trouvé” : ChatGPT a identifié la ligne problématique, donné la bonne description et le bon code CWE
“Partiellement trouvé” : ChatGPT a identifié la ligne et la bonne description, mais pas le bon code CWE
“Non trouvé” : ChatGPT n’a pas détecté la vulnérabilitéChatGPT a atteint un taux de détection complète (avec le bon code CWE) d’environ 17-19%, ce qui est faible. Cependant, en incluant les détections partielles, le taux monte à environ 56%, ce qui est supérieur aux revues de code humaines et aux outils d’analyse statique actuels.
Limites et perspectives
Gabriel a identifié plusieurs limites et pistes d’amélioration :
La documentation des codes CWE est inégale, ce qui complique la tâche de ChatGPT pour les classifier correctement.
ChatGPT a du mal à détecter les vulnérabilités qui concernent l’absence de quelque chose (comme l’absence de journalisation).
La nature non déterministe de ChatGPT pose problème pour une utilisation rigoureuse en entreprise (résultats différents pour la même question).
Le manque de contexte lors de l’analyse de modifications de code isolées peut conduire à des faux positifs.Pour améliorer ces résultats, Gabriel suggère :
Fournir plus de contexte à ChatGPT (l’ensemble du projet)
Réduire le paramètre de température de ChatGPT pour avoir des réponses plus déterministes
Poser des questions plus spécifiques pour détecter les vulnérabilités liées à l’absence de certains mécanismes
Explorer des modèles d’IA plus spécialisés ou personnalisés (RAG)Cette recherche ouvre la voie à une meilleure intégration de l’IA dans les processus de développement sécuritaire, non seulement pour détecter les vulnérabilités mais aussi pour aider les développeurs à les comprendre et les corriger.
Collaborateurs
Nicolas-Loïc Fortin
Gabriel T. St-HilaireCrédits
Montage par Intrasecure inc
Locaux réels par Cybereco