GitHub mise sur le machine learning pour détecter les vulnérabilités

GitHub a inauguré la semaine dernière une nouvelle fonctionnalité de détection des vulnérabilités dans les dépôts JavaScript et TypeScript. Celle-ci s’appuie sur le machine learning pour détecter les vulnérabilités les plus courantes.

GitHub mise sur le machine learning pour détecter les vulnérabilités

GitHub étend les capacités de ses outils de détection automatique de vulnérabilités et propose aux développeurs de projets JavaScript ou TypeScript de tester une nouvelle fonctionnalité de détection de vulnérabilités basée sur le machine learning.

La plateforme de partage de code propose depuis la semaine dernière cette nouvelle fonctionnalité en bêta publique.

La nouvelle fonctionnalité se concentre sur quatre types de vulnérabilités, parmi les plus communes identifiées dans les projets JavaScript et Typescript : les injections SQL et NoSQL, les vulnérabilités de type cross-site scripting et les vulnérabilités de type Path Traversal. Selon GitHub, ces quatre catégories de vulnérabilités représentent l’essentiel des vulnérabilités identifiées dans les projets JavaScript/Typescript au cours des dernières années.

Un modèle ML pour identifier les potentielles vulnérabilités

Pour limiter leur impact, GitHub a donc décidé d’entraîner un modèle de machine learning afin de lui permettre d’identifier automatiquement ce type de vulnérabilité dans les projets analysés.

Celui-ci s’appuie sur l’outil de scan de code développé par Microsoft, CodeQL. Cet outil automatisé permet de tester la présence de vulnérabilités dans un code source, via l’analyse de celui-ci. En exploitant les données compilées par CodeQL, GitHub est parvenu à entraîner son modèle de machine learning pour lui permettre d’identifier un grand nombre de vulnérabilités et d’identifier les conditions pouvant amener à créer une vulnérabilité.

Lorsque le modèle identifie ce type de conditions, il le signale à l’administrateur via une série d’alertes indiquant les vulnérabilités potentielles dans certains morceaux de code, et lui offre la possibilité d’aller analyser le code en question ou de corriger l’erreur le cas échéant.

Version bêta disponible

GitHub indique néanmoins que le modèle est enclin aux faux positifs, plus que les outils d’analyse de code classiques tels que CodeQL.

L’organisation espère néanmoins que le modèle bénéficiera de son utilisation à grande échelle pour affiner son fonctionnement et ses détections avec le temps.

Cette fonctionnalité est actuellement disponible en version bêta expérimentale pour l’ensemble des dépôts utilisant JavaScript ou TypeScript, et les développeurs qui souhaitent l’activer peuvent suivre les instructions données par GitHub.