In this article
Détection améliorée des vulnérabilités grâce à l’IA
Entreprise qui place l’IA au cœur de ses activités, Snyk s’engage pleinement à intégrer l’intelligence artificielle dans tous les aspects de ses processus d’ingénierie. Cet engagement nous pousse à rechercher sans cesse des moyens novateurs d’exploiter l’IA pour renforcer nos solutions de sécurité. Récemment, nous avons lancé avec succès la première version de deux projets qui témoignent de notre volonté de mettre les technologies de pointe au service de la détection des vulnérabilités. Conçus stratégiquement pour réduire les tâches manuelles, améliorer considérablement la précision et permettre à nos experts en sécurité de se consacrer à des missions plus stratégiques et à plus forte valeur ajoutée, ces projets illustrent pleinement cette ambition.
Le problème : analyse manuelle et surcharge d’informations
Dans le domaine de la cybersécurité, garder une longueur d’avance sur les vulnérabilités est essentiel. Snyk est fier de s’appuyer sur sa vaste base de données de sécurité, qui constitue un pilier de notre capacité à fournir des informations précises et à jour sur les menaces potentielles. Depuis la création de l’entreprise, une équipe dédiée de professionnels de la sécurité travaille sans relâche pour maintenir ces données à jour. Pour ce faire, elle utilise divers outils et automatisations afin de suivre les vulnérabilités émergentes, y compris les failles zero-day, et de veiller à être la première à en informer nos utilisateurs.
Cette tâche essentielle est toutefois loin d’être simple. Nos analystes consacrent une grande partie de leur journée, parfois plusieurs heures, à passer au crible un déluge d’informations. Ils examinent différents éléments, comme les commentaires dans les dépôts GitHub, les discussions sur les forums et les avis de sécurité, à la recherche de signes éventuels de vulnérabilités récemment découvertes. C’est comme chercher une aiguille dans une botte de foin. Le volume d’informations est écrasant et plus de 95 % de ces éléments s’avèrent être des faux positifs.
Exemple
Imaginons qu’un analyste tombe sur un commentaire GitHub indiquant : « Ce code semble présenter un problème de validation des entrées. » À première vue, cela peut laisser penser à une vulnérabilité potentielle. Pourtant, après une analyse approfondie de la discussion et de la modification du code, l’analyste peut découvrir que le « problème » relève d’une simple préférence de style de codage et non d’une faille de sécurité. Ce processus chronophage se répète des centaines de fois par jour, entraînant un important gaspillage de temps et pouvant épuiser les analystes.
Ce travail manuel et répétitif ne mobilise pas seulement un temps précieux : il augmente également le risque d’erreur humaine. Face à l’immense quantité de données, des informations cruciales peuvent passer inaperçues, retardant l’identification des vulnérabilités et pouvant entraîner des incidents de sécurité.
Sécurisez votre avenir avec l’IA à Snyk Launch 2025
Participez à Snyk Launch pour découvrir comment poser les bases d’un développement sécurisé et en toute confiance à l’ère de l’IA.
Classifier les vulnérabilités potentielles grâce à l’IA : notre solution
Consciente de ce défi, notre équipe de machine learning a vu dans les progrès des grands modèles de langage (LLM) l’occasion d’automatiser une part importante de cette analyse. L’objectif était de développer un modèle d’IA capable d’analyser ces événements et de repérer avec précision ceux qui correspondaient réellement à des vulnérabilités potentielles.
La première version de ce projet consistait à créer une solution reposant sur une technique simple de prompt à un seul exemple. Cette solution constituait le cœur de notre système de classification. Elle s’appuyait sur les principaux éléments suivants :
Optimisation du prompt à un seul exemple : Nous avons mené plusieurs séries d’expériences pour vérifier que le prompt et le contexte fourni étaient suffisants. En utilisant simplement la charge utile brute d’un événement — dans notre cas, un commentaire —, nous avons obtenu des résultats plutôt satisfaisants, sans avoir à consacrer du temps et des ressources supplémentaires au fine-tuning.
Priorité à un rappel élevé : Notre objectif principal était d’obtenir un rappel élevé, autrement dit de ne manquer aucune vulnérabilité réelle. Nos premières expériences ont atteint un rappel de 95 %. En modifiant le prompt pour autoriser la réponse « peut-être » en cas d’incertitude, nous avons réussi à approcher les 100 % de rappel tout en conservant une précision relativement satisfaisante.
Résultats
Tout en maintenant un rappel impressionnant de 100 % — aucune des nombreuses vulnérabilités que nous découvrons chaque mois ne passe inaperçue —, nous avons pu écarter chaque semaine des dizaines d’événements non pertinents présentant un haut niveau de confiance.
Pour nous, cela représente une réduction de 10 % du nombre d’événements à examiner par les analystes. Nos clients continuent de bénéficier des mêmes garanties de sécurité, sans compromis, tandis que les analystes peuvent produire davantage de résultats de haute qualité.
Classificateur de commits de correction : améliorer l’analyse des versions
Le deuxième projet visait à améliorer l’analyse des nouvelles versions de packages afin de déterminer si elles contenaient des correctifs pour des vulnérabilités connues. Jusqu’alors, les analystes devaient examiner manuellement les commits de chaque nouvelle version, une tâche chronophage et sujette aux erreurs.
Le défi de l’analyse des versions
Chaque package logiciel fait l’objet de mises à jour et de nouvelles versions. Chaque version peut contenir de nombreux commits, qui correspondent chacun à une modification du code. Pour déterminer quels commits corrigent des vulnérabilités précises, il faut bien comprendre le code et la nature de la vulnérabilité. Examiner manuellement ces commits à chaque nouvelle version était une tâche particulièrement difficile.
Prenons l’exemple d’un analyste informé de la sortie de la version 1.9.1 de la bibliothèque React, qui compte 492 (!) commits depuis la version 1.9.0. Pour déterminer si cette version corrige une vulnérabilité connue, il devrait passer en revue tous les commits qu’elle contient, les comparer aux informations disponibles sur les vulnérabilités connues et évaluer si les modifications apportées corrigent effectivement la faille. Bien sûr, cette tâche est impossible à réaliser manuellement. L’analyste doit donc généralement se limiter dans le temps et se concentrer sur les problèmes les plus graves ou ceux dont les notes de version indiquent explicitement qu’ils ont été corrigés. Même dans ce cas, l’analyse peut prendre des heures, en particulier pour des packages comme React, dont chaque version comporte de nombreux commits.
Classification des commits de correction par l’IA : notre approche
Pour relever ce défi, nous avons voulu enrichir les alertes de version avec des recommandations générées par l’IA indiquant si un commit corrigeait une vulnérabilité donnée. Cette démarche comportait plusieurs étapes :
Récupération des commits associés : Nous avons d’abord récupéré tous les commits associés à une version donnée du package.
Identification des correctifs par l’IA : Nous avons ensuite utilisé un grand modèle de langage pour déterminer si l’un de ces commits corrigeait une vulnérabilité donnée.
Enrichissement des alertes de version : Lorsque l’IA identifiait un correctif, nous ajoutions cette information aux alertes de version afin que les analystes disposent immédiatement de cet éclairage.
Résultats
Le principal bénéfice a été la découverte de correctifs pour des vulnérabilités qui n’avaient encore jamais été signalées. Pendant le développement de la solution et l’évaluation de sa précision, nous avons trouvé plus de 500 correctifs, qui sont maintenant ajoutés à notre base de données de sécurité.
De plus, au rythme actuel d’environ 30 découvertes automatisées par mois grâce à cette amélioration, nous pouvons supposer qu’une bonne partie correspond à des éléments qui seraient autrement passés inaperçus.
Impact global
Grâce à ces deux améliorations désormais en production, les utilisateurs de Snyk bénéficient déjà d’une découverte plus rapide des vulnérabilités et d’une couverture de sécurité encore plus complète. Nous pouvons ainsi offrir une protection optimale à une vitesse qui fait figure de référence dans le secteur.
Enfin, en accélérant des étapes clés de l’analyse et en fournissant des informations exploitables grâce à l’IA, nous avons amélioré l’efficacité et la précision de nos efforts en matière de sécurité. L’intégration de l’IA à nos processus de gestion des vulnérabilités ne constitue pas une simple avancée technologique : elle transforme en profondeur notre approche de la sécurité. Elle nous permet de garder une longueur d’avance sur les menaces émergentes et de mieux protéger nos utilisateurs.
Commencez gratuitement à utiliser les outils Snyk de sécurité du code généré par l’IA
Aucune carte bancaire requise.
Créez un compte avec Bitbucket ou choisissez parmi d’autres options
En utilisant Snyk, vous acceptez de respecter nos politiques, notamment nos Conditions d’utilisation et notre Politique de confidentialité.