Microsoft injecte du Machine Learning dans la détection de bugs

Cet article a été publié originellement sur mydatacompany.fr

Microsoft met la data science au service de ses experts en sécurité. L’éditeur s’est doté d’un système de classification des bugs logiciels basé sur le machine learning. Les données d’entraînement sont toutefois validées par des spécialistes du métier de la sécurité.

Microsoft-injecte-du-Machine-Learning-dans-la-détection-de-bugs Pas de développement logiciel sans bugs. Avec 47.000 développeurs, Microsoft comptabilise ainsi environ 30.000 bugs chaque mois dans ses logiciels. Or, certains présentent des risques en termes de sécurité.

Il est donc essentiel pour l’éditeur de pouvoir identifier ces erreurs dans le code et de corriger en priorité les plus critiques. Les professionnels de la sécurité exploitent à cette fin des outils d’automatisation. Mais ces méthodes présentent des failles.  

 

La Data Science au service du métier sécurité

« Trop souvent, les ingénieurs perdent du temps sur des faux positifs ou passent à côté d’une vulnérabilité de sécurité critique qui a été mal classifiée » note la firme de Redmond. Afin de gagner en efficace, elle a donc rapproché Data Science et sécurité.

L’éditeur a ainsi développé un système basé sur le machine learning afin de mieux classifier les bugs logiciels. Cela suppose toutefois de disposer d’un volume suffisant de données. Or, comme le souligne Microsoft, des millions de données, relatives aux bugs notamment, sont collectées depuis 2001.

Les équipes Data Science du géant ont utilisé ces données pour développer un processus et un modèle de machine learning. Bilan : celui-ci distingue correctement failles de sécurité et simples bugs dans 99% des cas. Sur la détection des bugs de sécurité critiques et prioritaires, le modèle d’IA affiche cette fois un taux de réussite de 97%.

Pour y parvenir, l’éditeur travaille sur de l’apprentissage supervisé. Il a mobilisé ses volumes de données pré-labélisées. Le modèle d’IA a ainsi été nourri avec des données déjà classifiées (bug de sécurité, bug critique, etc.).

Et comme pour l’utilisation de l’IA dans le domaine de l’analyse d’images médicales, le système doit être capable de classer les bugs avec des niveaux de performance équivalents à ceux d’un expert humain.

Les données d’entraînement soumises aux experts sécu

C’est la raison pour laquelle les données d’entraînement soumises au modèle de machine learning ont auparavant été validées par des experts en sécurité. « Nous avons utilisé un échantillonnage statistique pour fournir aux experts en sécurité une quantité gérable de données à examiner » détaille l’éditeur.

La supervision de ces experts métier est intervenue plus tard dans le processus afin cette fois d’évaluer le modèle en production. Son évaluation s’appuie notamment sur le suivi d’un indicateur majeur (nombre moyen de bugs).

Les experts examinent aussi manuellement un échantillon aléatoire de bugs. Ils interviennent de nouveau pour valider les données avant que le modèle ne soit réentraîné. Microsoft juge d’ores et déjà le couple humain/machine plus performant.

Le niveau de précision obtenu en termes de classification amène l’éditeur à considérer qu’il détecte davantage de vulnérabilités de sécurité qu’auparavant, c’est-à-dire sans machine learning. Dans les prochains mois, Microsoft ouvrira sa méthodologie en open source sur Github.