Microsoft a annoncé qu'il avait développé un nouveau système capable de distinguer correctement les bogues logiciels de sécurité et non liés à la sécurité 99% du temps. Le système est également capable d'identifier avec précision les bogues de sécurité critiques et hautement prioritaires en moyenne 97% du temps.
Microsoft a utilisé un ensemble de données de 13 millions d'éléments de travail et de bogues de 47000 de ses développeurs stockés dans les référentiels AzureDevOps et GitHub pour développer un processus et un modèle d'apprentissage automatique qui distinguent correctement les bogues de sécurité et non de sécurité. Dans les mois à venir, la société prévoit d'ouvrir la méthodologie open source sur GitHub ainsi que des exemples de modèles et d'autres ressources afin que le système puisse être utilisé pour aider les experts humains.
Lors de l'élaboration de son modèle, les experts en sécurité ont approuvé les données de formation et l'échantillonnage statistique qui a été utilisé pour leur fournir une quantité gérable de données à examiner. Ces données ont ensuite été encodées dans des représentations appelées vecteurs de caractéristiques au fur et à mesure que les chercheurs de Microsoft procédaient à la conception du système à l'aide d'un processus en deux étapes.
Le modèle a d'abord appris à classer les bogues de sécurité et non liés à la sécurité, puis il a appris à appliquer des étiquettes de sécurité (critiques, importantes ou à faible impact) à ces bogues.
Sommaire
Identifier les bogues de sécurité
Afin de faire ses prédictions de bogues, le modèle de Microsoft utilise deux techniques.
La première est une approche de récupération d'informations appelée algorithme de fréquence de fréquence inverse du document (TF-IDF) qui identifie le nombre de fois qu'un mot apparaît dans un document, puis vérifie la pertinence du mot dans une collection de titres. Selon Microsoft, ses titres de bogues sont généralement assez courts et contiennent environ 10 mots.
La deuxième technique utilisée par le géant du logiciel est un modèle de régression logistique qui utilise une fonction logistique pour modéliser la probabilité qu'une certaine classe ou un événement existe.
«Chaque jour, les développeurs de logiciels fixent une longue liste de fonctionnalités et de bugs qui doivent être corrigés. Les professionnels de la sécurité essaient d'aider en utilisant des outils automatisés pour hiérarchiser les bogues de sécurité, mais trop souvent, les ingénieurs perdent du temps sur les faux positifs ou manquent une vulnérabilité de sécurité critique qui a été mal classée. Pour résoudre ce problème, les équipes de science des données et de sécurité se sont réunies pour explorer comment l'apprentissage automatique pourrait aider. Nous avons découvert qu'en associant des modèles d'apprentissage automatique à des experts en sécurité, nous pouvons considérablement améliorer l'identification et la classification des bogues de sécurité. »
Le nouveau système de détection de bogues de Microsoft a déjà été déployé dans sa production interne et il est également continuellement recyclé avec des données approuvées par les experts en sécurité de l'entreprise qui surveillent le nombre de bogues générés pendant le développement logiciel.
Via VentureBeat