Identification des rapports de bogues de sécurité uniquement selon les titres des rapports et les données bruitées

Mayana Pereira

Science des données CELA
Microsoft

Scott Christiansen

Sécurité et confiance des clients
Microsoft

Résumé : l’identification des rapports de bogues de sécurité (SBR) est une étape essentielle du cycle de vie du développement de logiciels. Les approches supervisées basées sur l’apprentissage automatique présupposent généralement que des rapports de bogues complets sont disponibles pour l’apprentissage et que leurs étiquettes sont exemptes de bruit. À notre connaissance, cette étude est la première à montrer qu’une prédiction d’étiquette précise est possible pour les SBR, même lorsque seul le titre est disponible et en présence de bruit d’étiquette.

Termes d’index : apprentissage automatique, erreur d’étiquetage, bruit, rapport de bogues de sécurité, référentiels de bogues

I. INTRODUCTION

L’identification des problèmes liés à la sécurité parmi les bogues signalés est un besoin urgent des équipes de développement de logiciels, car ces problèmes appellent des correctifs accélérés afin de répondre aux exigences de conformité et de garantir l’intégrité des logiciels et des données client.

Les outils d’apprentissage automatique et d’intelligence artificielle promettent de rendre le développement de logiciels plus rapide, agile et correct. Plusieurs chercheurs ont appliqué l’apprentissage automatique au problème d’identification des bogues de sécurité[2][7][8][18]. Des études publiées précédemment ont se sont basées sur l’hypothèse que le rapport de bogues entier était disponible pour l’apprentissage et la notation d’un modèle d’apprentissage automatique. Ce n’est pas nécessairement le cas. Dans certaines situations, aucun rapport de bogues entier n’est disponible. Par exemple, le rapport de bogues peut contenir des mots de passe, des informations d’identification personnelle (PII) ou d’autres types de données sensibles. Nous sommes actuellement confrontés à cela chez Microsoft. Il est donc important d’établir la manière dont l’identification des bogues de sécurité peut être effectuée avec moins d’informations, par exemple, quand seul le titre du rapport est disponible.

En outre, les référentiels de bogues contiennent souvent des entrées mal étiquetées[7], telles que des rapports de bogues non liés à la sécurité classés comme étant liés à la sécurité, et inversement. Les erreurs d’étiquetage peuvent avoir plusieurs causes, allant du manque d’expertise de l’équipe de développement en matière de sécurité au flou entourant certains problèmes. Par exemple, il est possible que des bogues non liés à la sécurité soient exploités de manière indirecte ayant une incidence sur la sécurité. Il s’agit d’un problème grave, car l’étiquetage erroné des SBR oblige les experts en sécurité à examiner manuellement la base de données des bogues, au prix d’un effort coûteux et laborieux. La compréhension de la façon dont le bruit affecte différents classifieurs, ainsi que de la robustesse (ou la fragilité) des différentes techniques d’apprentissage automatique en présence de jeux de données contaminés par différents types de bruits, constitue un problème qui doit être résolu pour pouvoir introduire la classification automatique dans la pratique de l’ingénierie logicielle.

Un travail préliminaire soutient que les référentiels de bogues sont intrinsèquement bruyants et que ce bruit peut avoir un effet néfaste sur les performances des classifieurs d’apprentissage automatique[7]. Il manque cependant une étude quantitative systématique de la manière dont les divers niveaux et types de bruits affectent les performances des différents algorithmes d’apprentissage automatique supervisés en lien avec le problème de l’identification des rapports de bogues de sécurité (SRB).

Cette étude montre que la classification des rapports de bogues peut être effectuée même lorsque seul le titre est disponible pour la formation et la notation. Autant que nous sachions, il s’agit du tout premier travail adoptant cette approche. Par ailleurs, nous proposons la première étude systématique de l’effet du bruit dans la classification des rapports de bogues. Nous réalisons une étude comparative de la robustesse de trois techniques d’apprentissage automatique (régression logistique, Naive Bayes et AdaBoost) par rapport au bruit indépendant de la classe.

S’il existe des modèles analytiques qui mesurent l’influence générale du bruit pour quelques classifieurs simples[5][6], leurs résultats ne circonscrivent pas rigoureusement l’effet du bruit sur la précision et ne sont valables que pour une technique d’apprentissage particulière. Une analyse précise de l’effet du bruit dans les modèles d’apprentissage automatique s’effectue généralement en conduisant des expériences de calcul. De telles analyses ont été effectuées pour plusieurs scénarios, allant des données de mesures de logiciels[4], à la classification d’images satellitaires[13], en passant par les données médicales[12]. Cependant, ces résultats ne peuvent pas être transposés à notre problème spécifique, en raison de sa forte dépendance par rapport à la nature des jeux de données et du problème de classification sous-jacent. À notre connaissance, il n’existe pas de résultats publiés concernant spécifiquement le problème de l’effet des jeux de données bruyants sur la classification des rapports de bogues de sécurité.

NOS CONTRIBUTIONS À LA RECHERCHE :

  • Nous formons des classifieurs pour l’identification des rapports de bogues de sécurité (SBR) uniquement sur la base de leur titre. Autant que nous sachions, il s’agit du tout travail adoptant cette approche. Les travaux précédents utilisaient soit le rapport de bogues complet, soit le rapport de bogues amélioré assorti de fonctionnalités complémentaires supplémentaires. La classification des bogues basée uniquement sur la vignette est particulièrement pertinente lorsque les rapports de bogues complets sont inaccessibles pour des raisons de confidentialité. C’est, par exemple, le cas des rapports de bogues qui contiennent des mots de passe et d’autres données sensibles.

  • Nous fournissons également la première étude systématique de la tolérance au bruit des étiquettes de différents modèles et techniques d’apprentissage automatique utilisés pour la classification automatique des SBR. Nous réalisons une étude comparative de la robustesse de trois techniques d’apprentissage automatique (régression logistique, Naive Bayes et AdaBoost) par rapport au bruit dépendant et indépendant de la classe.

Le reste du document se présente comme suit : La section II présente quelques-uns des précédents travaux documentés. La section III décrit le jeu de données et la façon dont celles-ci sont prétraitées. La section IV expose la méthodologie adoptée, et la section V les résultats analysés de nos expériences. Enfin, la section VI contient nos conclusions et évoque nos travaux à venir.

II. TRAVAUX PRÉCÉDENTS

DES APPLICATIONS D’APPRENTISSAGE AUTOMATIQUE AUX RÉFÉRENTIELS DE BOGUES.

Il existe une littérature abondante sur l’application de l’exploration de texte, du traitement du langage naturel et de l’apprentissage automatique à des référentiels de bogues afin de tenter d’automatiser des tâches laborieuses telles que la détection des bogues de sécurité[2][7][8][18], l’identification de bogues en double[3] ou le triage des bogues[1][11]. Dans l’idéal, l’association de l’apprentissage automatique et du traitement du langage naturel permet de réduire le travail manuel requis pour organiser les bases de données de bogues, de raccourcir le temps nécessaire pour accomplir ces tâches, et d’améliorer la fiabilité des résultats.

Certains auteurs[7] proposent un modèle de traitement du langage naturel pour automatiser la classification des SBR en fonction de la description du bogue. Les auteurs extraient un vocabulaire de la description de bogue dans le jeu de données d’apprentissage, et l’organisent manuellement en trois listes de mots : mots pertinents, mots vides (mots courants qui semblent non pertinents pour la classification) et synonymes. Ils comparent les performances d’un classifieur de bogues de sécurité formé sur des données évaluées par des ingénieurs de sécurité, et celles d’un classifieur formé sur des données étiquetées par des rapporteurs de bogues en général. Si leur modèle est clairement plus efficace lorsqu’il est formé sur des données préalablement examinées par des ingénieurs de sécurité, étant basé sur un vocabulaire dérivé manuellement, il dépend de l’intervention humaine. De plus, il n’y a aucune analyse visant à déterminer la manière dont les différents niveaux de bruit affectent leur modèle, la façon dont les différents classifieurs réagissent au bruit, et si le bruit d’une classe affecte les performances de façon distincte.

Zou et. al [18] utilisent plusieurs types d’informations contenus dans un rapport de bogues qui impliquent les champs non textuels d’un rapport de bogues (métadonnées, par exemple, temps, gravité et priorité) et le contenu textuel d’un rapport de bogue (fonctionnalités textuelles, c’est-à-dire le texte dans les champs de synthèse). Su la base de ces caractéristiques, ils créent un modèle pour identifier automatiquement les SBR via des techniques de traitement du langage naturel et d’apprentissage automatique. D’autres auteurs[8] effectuent une analyse similaire, mais comparent également les performances des techniques d’apprentissage automatique supervisé et non supervisé, et étudient la quantité de données nécessaire pour former leurs modèles.

D’autres encore[2] explorent également différentes techniques d’apprentissage automatique pour classer les bogues en tant que rapports SBR ou NSBR (non-rapport de bogues de sécurité), en fonction de leurs descriptions. Ils proposent un pipeline de traitement des données et d’apprentissage de modèle basé sur la méthode TF-IDF. Ils comparent le pipeline proposé à un modèle basé sur un sac de mots (bag-of-words) ou Naive Bayes. Wijayasekara et al[16] ont également utilisé des techniques d’exploration de texte pour générer le vecteur de caractéristique de chaque rapport de bogues, basé sur les mots fréquents pour identifier des bogues dont l’impact est caché (HIB, Hidden Impact Bugs). Yang et al[17] ont déclaré avoir identifié des rapports de bogues à fort impact (par exemple, des SBR) en utilisant la fréquence de terme (TF, Term Frequency) et Naive Bayes. Des auteurs[9] proposent un modèle pour prédire la gravité d’un bogue.

BRUIT D’ÉTIQUETTE

Le problème de la gestion de jeux de données avec un bruit d’étiquettes a été largement étudié. Frenay et Verleysen proposent une taxonomie du bruit des étiquettes[6], afin de faire la distinction entre les différents types d’étiquette bruyantes. Les auteurs proposent trois types de bruits d’étiquette : un bruit qui se produit indépendamment de la classe réelle et des valeurs des caractéristiques de l’instance ; un bruit qui dépend uniquement de l’étiquette réelle ; et un bruit où la probabilité d’erreur d’étiquetage dépend également des valeurs des caractéristiques. Dans notre travail, nous étudierons les deux premiers types de bruits. D’un point de vue théorique, le bruit des étiquettes réduit généralement les performances d’un modèle[10], sauf dans certains cas spécifiques[14]. En général, les méthodes robustes dépendent de l’évitement de tout surajustement pour gérer le bruit des étiquettes[15]. L’étude des effets de bruit dans la classification a été effectuée précédemment dans de nombreux domaines, tels que la classification d’images satellitaires[13], la classification de la qualité des logiciels[4] et la classification dans le domaine médical[12]. À notre connaissance, aucun travail n’a publié sur la quantification précise des effets des étiquettes bruyantes dans le problème de la classification des SBR. Dans ce scénario, la relation précise entre les niveaux de bruit, les types de bruits et la dégradation des performances n’a pas été établie. En outre, il est utile de comprendre comment différents classifieurs se comportent en présence de bruit. Plus généralement, nous n’avons pas connaissance de l’existence d’une étude systématique de l’effet des jeux de données bruyants sur les performances de différents algorithmes d’apprentissage automatique dans le contexte des rapports de bogues logiciels.

III. DESCRIPTION DU JEU DE DONNÉES

Notre jeu de données comprend 1 073 149 titres de bogues, dont 552 073 SBR et 521 076 NSBR (non-SBR). Les données ont été collectées auprès de différentes équipes de Microsoft au cours des années 2015, 2016, 2017 et 2018. Toutes les étiquettes ont été recueillies par des systèmes de vérification de bogues basés sur des signatures ou sont le fuit d’un étiquetage manuel. Les titres des bogues dans notre jeu de données sont des textes très courts d’environ 10 mots donnant un aperçu du problème.

A. Prétraitement des données. Nous analysons chaque titre de bogue sur la base de ses espaces pour produire une liste de jetons. Nous traitons chaque liste de jetons comme suit :

  • suppression de tous les jetons qui sont des chemins d’accès de fichiers ;

  • fractionnement des jetons contenant les symboles {, (, ), -, }, {, [, ] ou } ;

  • suppression des mots vides, des jetons composés uniquement de caractères numériques, et des jetons qui apparaissent moins de 5 fois dans l’ensemble du corpus.

IV. MÉTHODOLOGIE

Le processus d’apprentissage de nos modèles d’apprentissage automatique se compose de deux étapes principales : l’encodage des données en vecteurs de caractéristiques, et la formation supervisée des classifieurs d’apprentissage automatique.

A. Vecteurs de fonctionnalités et techniques d’apprentissage automatique

La première partie implique l’encodage de données dans des vecteurs de caractéristiques à l’aide de l’algorithme TF-IDF (Term Frequency-Inverse Document Frequency), tel qu’utilisé ailleurs[2]. L’algorithme TF-IDF est une technique d’extraction d’informations qui pondère la fréquence d’un terme (TF) et sa fréquence dans le document inversée (IDF). Chaque mot ou terme a ses scores TF et IDF respectifs. L’algorithme TF-IDF pondère l’importance à ce mot en fonction du nombre de fois qu’il apparaît dans le document et, plus important encore, vérifie la pertinence du mot clé dans la collection de titres composant le jeu de données. Nous avons effectué l’apprentissage de trois techniques de classification, puis les avons comparées. Ces techniques sont les suivantes : Naive Bayes (NB), arbres de décision optimisés (AdaBoost) et régression logistique (LR). Nous avons choisi ces techniques parce qu’elles se sont avérées efficaces pour la tâche connexe d’identification des rapports de bogues de sécurité basée sur le rapport entier dans la littérature. Ces résultats ont été confirmés dans une analyse préliminaire où ces trois classificateurs ont surpassé les machines à vecteurs de support et les forêts aléatoires. Dans nos expériences, nous utilisons la bibliothèque scikit-learn pour l’encodage et l’entraînement de modèle.

B. Types de bruits

Le bruit étudié dans ce travail est celui de l’étiquette de la classe dans les données d’apprentissage. En présence d’un tel bruit, le processus d’apprentissage et le modèle qui en résulte sont donc altérés par des exemples mal étiquetés. Nous analysons l’impact des différents niveaux de bruit appliqués aux informations de classe. Les types de bruits d’étiquette ont déjà été évoqués dans la littérature sous différentes terminologies. Dans notre travail, nous analysons les effets de deux bruits d’étiquettes différents dans nos classifieurs : le bruit indépendant de la classe, introduit par la sélection d’instances au hasard, puis l’inversion de leur étiquette ; et le bruit dépendant de la classe, où les classes ont une probabilité différente d’être bruyantes.

a) Bruit indépendant de la classe : le bruit indépendant de la classe fait référence au bruit qui se produit indépendamment de la véritable classe des instances. Dans ce type de bruit, la probabilité d’étiquetage pbr erroné est la même pour toutes les instances dans le jeu de données. Nous introduisons un bruit indépendant de la classe dans nos jeux de données en inversant chaque étiquette dans notre jeu de données de façon aléatoire avec la probabilité pbr.

b) Bruit dépendant de la classe : le bruit dépendant de la classe fait référence au bruit qui dépend de la véritable classe des instances. Dans ce type de bruit, la probabilité d’un étiquetage erroné dans la classe SBR est psbr, et la probabilité d’un étiquetage erroné dans la classe NSBR est pnsbr. Nous introduisons un bruit dépendant de la classe dans notre jeu de données en inversant chaque entrée dans le jeu de données pour laquelle la véritable étiquette est SBR avec la probabilité psbr. Similairement, nous inversons l’étiquette de classe des instances NSBR avec la probabilité pnsbr.

c) Bruit de classe unique : le bruit de classe unique est un cas spécial de bruit dépendant de la classe, où pnsbr = 0 et psbr> 0. Notez que, pour le bruit indépendant de la classe, nous avons psbr = pnsbr = pbr.

C. Génération de bruit

Nos expériences examinent l’impact des différents types et niveaux de bruits dans la formation des classifieurs SBR. Dans nos expériences, nous avons défini 25 % du jeu de données en tant que données de test, 10 % en tant que données de validation et 65 % en tant que données d’apprentissage.

Nous ajoutons du bruit aux jeux de données d’apprentissage et de validation pour différents niveaux de pbr, psbr et pnsbr. Nous n’apportons aucune modification au jeu de données de test. Les différents niveaux de bruit utilisés sont P = {0,05 × i|0 < i < 10}.

Dans les expériences de bruit indépendant de la classe, pour pbr ∈ P, nous procédons comme suit :

  • génération de bruit pour les jeux de données d’apprentissage et de validation ;

  • apprentissage de modèles de régression logistique, Naive Bayes et AdaBoost à l’aide du jeu de données d’apprentissage (avec bruit) ;réglage des modèles à l’aide du jeu de données de validation (avec bruit) ;

  • test des modèles à l’aide du jeu de données de test (sans bruit).

Dans les expériences de bruit dépendant de la classe, pour psbr ∈ P et pnsbr ∈ P, nous procédons de la façon suivante pour toutes les combinaisons de psbr et pnsbr :

  • génération de bruit pour les jeux de données d’apprentissage et de validation ;

  • apprentissage de modèles de régression logistique, Naive Bayes et AdaBoost à l’aide d’un jeu de données d’apprentissage (avec bruit) ;

  • réglage des modèles à l’aide du jeu de données de validation (avec bruit) ;

  • test des modèles à l’aide du jeu de données de test (sans bruit).

V. RÉSULTATS EXPÉRIMENTAUX

Dans cette section, nous analysons les résultats des expériences menés conformément à la méthodologie décrite dans la section IV.

a) Performance du modèle sans bruit dans le jeu de données d’apprentissage : l’une des contributions de ce document est la proposition d’un modèle d’apprentissage automatique pour identifier les bogues de sécurité en utilisant uniquement leurs titres en tant que données pour la prise de décision. Cela permet d’effectuer l’apprentissage de modèles d’apprentissage automatique même lorsque les équipes de développement ne souhaitent pas partager des rapports de bogues entiers en raison de la présence de données sensibles. Nous comparons les performances des trois modèles d’apprentissage automatique formés en utilisant uniquement les titres de bogues.

Le modèle de régression logistique est le classifieur le plus performant. Il s’agit du classifieur dont la valeur d’aire sous la courbe (AUC) est la plus élevée, 0,9826, avec un rappel de 0,9353 pour un taux de faux positifs (FPR) de 0,0735. Le classifieur Naive Bayes est légèrement moins performant que le classifieur par régression logistique, avec une valeur AUC de 0,9779, et un rappel de 0,9189 pour un FPR de 0,0769. Le classifieur AdaBoost est moins performant que les deux classifieurs mentionnés précédemment. Son AUC est de 0,9143, avec un rappel de 0,7018 pour un FPR de 0,0774. L’aire sous la courbe (AUC) ROC (Receiver Operating Characteristics) est une bonne métrique pour comparer les performances de plusieurs modèles, car elle résume dans une seule valeur la relation entre le taux de vrais positifs (TPR) et le taux de faux positifs (FPR). Dans l’analyse suivante, nous allons limiter notre analyse comparative aux valeurs d’AUC.

Table I

R. Bruit de classe : classe unique

On peut imaginer un scénario dans lequel tous les bogues sont assignés à la classe NSBR par défaut, et un bogue n’est affecté à la classe SBR que si un expert en sécurité examine le référentiel du bogue. Ce scénario est représenté dans le paramètre expérimental de classe unique, où nous partons du principe que pnsbr = 0 et 0 psbr< 0,5<.

Table II

Dans le tableau II, nous observons un très faible impact dans l’AUC pour les trois classifieurs. L’AUC-ROC d’un modèle formé sur psbr = 0 comparée à l’AUC-ROC d’un modèle où psbr = 0,25 diffère de 0,003 pour le classifieur par régression logistique, de 0,006 pour les classifieurs Naive Bayes et AdaBoost. Dans le cas de psbr = 0,50, l’AUC mesurée pour chacun des modèles diffère du modèle formé avec psbr = 0 de 0,007 pour le classifieur par régression logistique, de 0,011 pour le classifieur Naive Bayes et de 0,010 pour le classifieur AdaBoost. Le classifieur par régression logistique formé en présence d’un bruit de classe unique présente la variation la faible de sa métrique d’AUC, c’est-à-dire un comportement plus robuste que celui de nos classifieurs Naive Bayes et AdaBoost.

B. Bruit de classe : indépendant de la classe

Nous comparons les performances de nos trois classifieurs lorsque le jeu d’apprentissage est altéré par un bruit indépendant de la classe. Nous mesurons l’AUC pour chaque modèle formé avec différents niveaux de pbr dans les données d’apprentissage.

Table III

Dans le tableau III, nous constatons une baisse de l’AUC-ROC pour chaque incrément de bruit dans l’expérience. L’AUC-ROC mesurée à partir d’un modèle formé sur des données sans bruit par rapport à l’AUC-ROC d’un modèle formé avec un bruit indépendant de la classe avec pbr = 0,25 diffère de 0,011 pour le classifieur par régression logistique, de 0,008 pour le classifieur Naive Bayes et de 0,0038 pour le classifieur AdaBoost. Nous observons que le bruit de l’étiquette n’a pas d’impact significatif sur l’AUC des classifieurs Naive Bayes et AdaBoost lorsque les niveaux de bruit sont inférieurs à 40 %. En revanche, le classifieur par régression logistique accuse un impact dans la mesure de l’AUC pour les niveaux de bruit d’étiquette supérieurs à 30 %.

AUC Variation Impact

Fig. 1. Variation d’AUC-ROC dans le bruit indépendant de la classe. Pour un niveau de bruit pbr = 0,5, le classifieur agit comme un classifieur aléatoire, c’est-à-dire avec la valeur d’AUC ≈ 0,5. Nous pouvons observer que, pour des niveaux de bruit inférieurs (pbr ≤ 0,30), le classifieur par régression logistique est plus performant que les deux autres modèles. Cependant, pour 0,35 ≤ pbr ≤ 0,45, le classifieur Naive Bayes présente de meilleures métriques d’AUC-ROC.

C. Bruit de classe : dépendant de la classe

Dans le dernier ensemble d’expériences, nous considérons un scénario où différentes classes contiennent différents niveaux de bruit, c’est-à-dire psbr ≠ pnsbr. Nous incrémentons systématiquement psbr et pnsbr de façon indépendante de 0,05 dans les données d’apprentissage, et observons le changement de comportement des trois classifieurs.

Logistic RegressionNaive BayesAdaBoost

Les tableaux IV, V, VI affichent la variation de l’AUC à mesure que le bruit augmente à différents niveaux dans chaque classe pour le classifieur par régression logistique dans le tableau IV, pour le classifieur Naive Bayes dans le tableau V, et pour le classifieur AdaBoost dans le tableau VI. Pour tous les classifieurs, nous constatons un impact sur la métrique de l’AUC lorsque les deux classes contiennent un niveau de bruit supérieur à 30 %. Le comportement du classifieur Naive Bayes est le plus robuste. L’impact sur l’AUC est très faible, même lorsque 50 % des étiquettes dans la classe positive sont inversées, pour autant que la classe négative contienne au maximum 30 % d’étiquettes bruyantes. Dans ce cas, la baisse de la valeur de l’AUC est de 0,03. Le comportement du classifieur AdaBoost a été le plus robuste des trois. Une modification significative de l’AUC ne se produit que pour des niveaux de bruit supérieurs à 45 % dans les deux classes. Dans ce cas, nous commençons à observer une dégradation de l’AUC supérieure à 0,02.

D. Sur la présence de bruit résiduel dans le jeu de données d’origine

Notre jeu de données a été étiqueté par des systèmes automatisés basés sur les signatures et par des experts humains. En outre, tous les rapports de bogues ont été examinés et clos par des experts humains. Nous nous attendons à ce que la quantité de bruit dans notre jeu de données soit minime et non statistiquement significative. La présence de bruit résiduel n’invalide pas nos conclusions. En effet, pour l’illustration, supposons que le jeu de données d’origine est endommagé par un bruit indépendant de la classe égal à 0 < p < 1/2 indépendant et distribué de manière identique (i.i.d) pour chaque entrée.

Si, en plus du bruit d’origine, nous ajoutons un bruit indépendant de la classe avec la probabilité pbr i.i.d, le bruit résultant par entrée sera de p∗ = p(1 − pbr )+(1 − p)pbr. Pour 0 < p,pbr< 1/2, nous avons que le bruit réel par étiquette p∗ est strictement plus grand que le bruit que nous ajoutons artificiellement au jeu de données pbr . Par conséquent, les performances de nos classifieurs seraient encore meilleures, en premier lieu, si elles étaient formées avec un jeu de données totalement exempt de bruit (p = 0). En résumé, l’existence d’un bruit résiduel dans le jeu de données réel signifie que la résilience au bruit de nos classifieurs est meilleure que les résultats présentés ici. En outre, si le bruit résiduel dans notre jeu de données était statistiquement pertinent, la valeur d’AUC de nos classifieurs deviendrait 0,5 (une estimation aléatoire) pour un niveau de bruit strictement inférieur à 0,5. Nous n’observons pas ce comportement dans nos résultats.

VI. CONCLUSIONS ET TRAVAUX À VENIR

Notre contribution dans ce document est double.

Tout d’abord, nous avons montré la faisabilité d’une classification des rapports de bogues de sécurité basée uniquement sur les titres des rapport de bogues. Cela s’avère particulièrement utile dans les scénarios où les rapports de bogues entiers ne sont pas accessibles en raison de contraintes de confidentialité. Par exemple, dans notre cas, les rapports de bogues contenaient des informations privées, telles que des mots de passe et des clés de chiffrement, et n’étaient pas disponibles pour l’apprentissage des classifieurs. Notre résultat montre que l’identification de SBR peut être effectuée avec une précision élevée, même lorsque seuls les titres des rapports sont disponibles. Notre modèle de classification qui utilise une combinaison de l’algorithme TF-IDF et de régression logistique fonctionne avec une AUC de 0,9831.

Deuxièmement, nous avons analysé l’effet des données d’apprentissage et de validation mal étiquetées. Nous avons comparé trois techniques bien connues de classification de l’apprentissage automatique (Naive Bayes, régression logistique et AdaBoost) sur le plan de leur robustesse par rapport aux différents types et niveaux de bruit. Les trois classifieurs sont robustes pour un bruit d’une seule classe. Le bruit dans les données d’apprentissage n’a pas d’effet significatif dans le classifieur obtenu. La baisse de l’AUC est très faible (0,01) pour un niveau de bruit de 50 %. Pour le bruit présent dans les deux classes et indépendant de la classe, les modèles Naive Bayes et AdaBoost présentent des variations significatives d’AUC uniquement quand ils sont formés avec un jeu de données dans lequel les niveaux de bruit sont supérieurs à 40 %.

Enfin, un bruit dépendant de la classe a un impact significatif sur l’AUC uniquement quand il y a plus de 35 % de bruit dans les deux classes. AdaBoost s’est avéré plus robuste. L’impact sur l’AUC est très faible, même lorsque la classe positive comprend 50 % d’étiquettes bruyantes, à la condition que la classe négative en contienne au maximum 45 %. Dans ce cas, la baisse de l’AUC est inférieure à 0,03. À notre connaissance, il s’agit de la première étude systématique de l’effet des jeux de données bruyants sur l’identification des rapports de bogues de sécurité.

TRAVAUX À VENIR

Dans ce document, nous avons entamé l’étude systématique des effets du bruit sur les performances des classifieurs d’apprentissage automatique pour l’identification des bogues de sécurité. Ce travail aura plusieurs suites intéressantes, à savoir : l’examen de l’effet des jeux de données bruyants sur la détermination du niveau de gravité d’un bogue de sécurité ; la compréhension de l’effet d’un déséquilibre des classes sur la résilience au bruit des modèles formés ; la compréhension de l’effet du bruit antagoniste introduit dans le jeu de données.

RÉFÉRENCES

[1] John Anvik, Lyndon Hiew et Gail C Murphy. Who should fix this bug? Dans les actes de la 28e Conférence internationale Software Engineering, pages 361 à 370. ACM, 2006.

Diksha Behl, Sahil Handa et Anuja Arora[2]. A bug mining tool to identify and analyze security bugs using naive bayes and tf-idf. Dans Optimization, Reliabilty, and Information Technology (ICROIT) , 2014 International Conference, pages 294 à 299. IEEE, 2014.

[3] Nicolas Bettenburg, Rahul Premraj, Thomas Zimmermann et Sunghun Kim. Duplicate bug reports considered harmful really? Dans Software maintenance, 2008. ICSM 2008. Conférence internationale IEEE, pages 337 à 345. IEEE, 2008.

Andres Folleco, Taghi M Khoshgoftaar, Jason Van Hulse et Lofton Bullard[4]. Identifying learners robust to low quality data. Dans Information Reuse and Integration, 2008. IRI 2008. Conférence internationale IEEE, pages 190 à 195. IEEE, 2008.

[5] Benoıt Frenay.' Incertitude et bruit d’étiquette dans le machine learning. Thèse de doctorat, Université catholique de Louvain, Louvain-la-Neuve, Belgique, 2013.

[6] Benoıt Frenay et Michel Verleysen. Classification in the presence of´ label noise: a survey. IEEE transactions on neural networks and learning systems, 25(5) : pages 845 à 869, 2014.

Michael Gegick, Pete Rotella et Tao Xie[7]. Identifying security bug reports via text mining: An industrial case study. Dans Mining software repositories (MSR), 2010 7th IEEE working conference, pages 11–20. IEEE, 2010.

Katerina Goseva-Popstojanova et Jacob Tyo[8]. Identification of security related bug reports via text mining using supervised and unsupervised classification. Dans 2018 IEEE International Conference on Software Quality, Reliability and Security (QRS) , pages 344 à 355, 2018.

Ahmed Lamkanfi, Serge Demeyer, Giger et Bart Goethals [9] Ahmed Lamkanfi. Predicting the severity of a reported bug. Dans Mining Software Repositories (MSR), 2010 7th IEEE Working Conference, pages 1 à 10. IEEE, 2010.

Naresh Manwani et PS Sastry[10]. Noise tolerance under risk minimization. IEEE transactions on cybernetics, 43(3) : pages 1146 à 1151, 2013.

G Murphy et D Cubranic[11]. Automatic bug triage using text categorization. Lors de la 12e Conférence internationale sur l’ingénierie des connaissances en génie & logiciel. Citeseer, 2004.

[12] Mykola Pechenizkiy, Alexey Tsymbal, Seppo Puuronen et Oleksandr Pechenizkiy. Class noise and supervised learning in medical domains: The effect of feature extraction. Dans null, pages 708 à 713. IEEE, 2006.

Charlotte, Silvia Valero, Jordi Inglada, Nicolas Champion, Claire Marais Sicre et Gerard Dedieu. Remote Sensing, 9(2) : page 173, 2017.

PS Sastry, GD Nagendra et Naresh Manwani[14]. A team of continuous action learning automata for noise-tolerant learning of half-spaces. IEEE Transactions on Systems, Man, and Cybernetics, Part B (Cybernetics) , 40(1) : pages 19 à 28, 2010.

[15] Choh-Man Teng. A comparison of noise handling techniques. Dans FLAIRS Conference, pages 269 à 273, 2001.

[16] Dumidu Wijayasekara, Milos Manic et Miles McQueen. Vulnerability identification and classification via text mining bug databases. Dans Industrial Electronics Society, IECON 2014-40th Annual Conference of the IEEE, pages 3612 à 3618. IEEE, 2014.

[17] Xinli Yang, David Lo, Uan Huang, Xin Xia et Jianling Sun. Automated identification of high impact bug reports leveraging imbalanced learning strategies. Dans Computer Software and Applications Conference (COMPSAC), 2016 IEEE 40th Annual, volume 1, pages 227 à 232. IEEE, 2016.

[18] Deqing Zou, Zhijun Deng, Jen Li et Hai Jin. Automatically identifying security bug reports via multitype features analysis. Dans Australasian Conference on Information Security and Privacy, pages 619 à 633. Springer, 2018.