Teknik - Living Off the Pipeline - From Supply Chain 0-Days to Predicting the next XZ-like attacks
15 mai 2025
Parce que... c'est l'épisode 0x602!
Spécial - Panel Propolys - Innovation en cybersécurité - part 3
14 mai 2025
Parce que... c'est l'épisode 0x601!
Spécial - Panel du 600e - Notre gestion de risque personnel / OPSEC
27 mai 2025
Parce que... c'est l'épisode 0x600!
Spécial - Panel Propolys - Innovation en cybersécurité - part 2
14 mai 2025
Parce que... c'est l'épisode 0x599!
Teknik - Résultat de l'usage de l'IA dans le contexte d'un CtF (Northsec)
30 mai 2025
Parce que... c'est l'épisode 0x598!
Teknik - Vivez votre Première Key Ceremony - La Clé pour Sécuriser les Données Stratégiques de votre Entreprise
09 avril 2025
Parce que... c'est l'épisode 0x597!
Spécial - Souveraineté numérique - part 3 (SecNumCloud)
28 mai 2025
Parce que... c'est l'épisode 0x596!
Spécial - Panel Propolys - Innovation en cybersécurité - part 1
14 mai 2025
Parce que... c'est l'épisode 0x595!
Teknik - Tout ce que vous avez toujours voulu savoir sur la cryptographie post-quantique sans jamais oser le demander
09 avril 2025
Parce que... c'est l'épisode 0x594!
Spécial - NorthSec 2025 Panel
15 mai 2025
Parce que... c'est l'épisode 0x593!
H'umain - Ingénierie sociale et IA - Une menace ou un atout pour la défense ?
09 avril 2025
Parce que... c'est l'épisode 0x592!
Actualités Cyber Citoyen au 20 mai 2025
20 mai 2025
Parce que... c'est l'épisode 0x591!
Teknik - L'IA dans le contexte d'un CtF (Northsec)
16 mai 2025
Parce que... c'est l'épisode 0x590!
Spécial - Cybersécurité dans le secteur de la santé
08 avril 2025
Parce que... c'est l'épisode 0x589!
SéQCure/Spécial - Histoires d’erreurs
08 avril 2025
Parce que... c'est l'épisode 0x588!
Spécial - Souveraineté numérique - part 2
07 mai 2025
Parce que... c'est l'épisode 0x587!
Teknik - Revue de code - ChatGPT face aux vulnérabilités OWASP Top 10
08 avril 2025
Parce que... c'est l'épisode 0x586!
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 2065
Description
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) correspondants
Ré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
Crédits
- Montage par Intrasecure inc
- Locaux réels par Cybereco
Tags: code, cybereco, developpement, ia
Tweet