Beveiligingsfoutrapporten identificeren op basis van rapporttitels en gegevens met ruisIdentifying Security Bug Reports Based Solely on Report Titles and Noisy Data

Mayana Pereira Mayana Pereira

CELA data scienceCELA Data Science
MicrosoftMicrosoft

Scott ChristiansenScott Christiansen

Klantbeveiliging en -vertrouwenCustomer Security and Trust
MicrosoftMicrosoft

Abstract: het identificeren van beveiligingsfoutrapporten (SBR's) is een belangrijke stap in de levenscyclus van softwareontwikkeling.Abstract — Identifying security bug reports (SBRs) is a vital step in the software development life-cycle. In het geval van benaderingen die zijn gebaseerd op gecontroleerde machine learning is het gebruikelijk om aan te nemen dat er volledige foutrapporten beschikbaar zijn voor training en dat hun labels geen ruis hebben.In supervised machine learning based approaches, it is usual to assume that entire bug reports are available for training and that their labels are noise free. Voor zover wij weten, is dit de eerste studie die aantoont dat voor SBR's een nauwkeurige labelvoorspelling mogelijk is, zelfs wanneer alleen de titel beschikbaar is en er labelruis aanwezig is.To the best of our knowledge, this is the first study to show that accurate label prediction is possible for SBRs even when solely the title is available and in the presence of label noise.

Indexbegrippen: machine learning, foutief labelen, ruis, beveiligingsfoutrapport en foutenarchievenIndex Terms — Machine Learning, Mislabeling, Noise, Security Bug Report, Bug Repositories

I.I. INLEIDINGINTRODUCTION

Het identificeren van beveiligingsgerelateerde problemen bij gerapporteerde bugs is een dringende behoefte bij softwareontwikkelingsteams, aangezien dergelijke problemen om snellere oplossingen vragen om te voldoen aan nalevingsvereisten en om de integriteit van de software en klantgegevens te waarborgen.Identifying security related issues among reported bugs is a pressing need among software development teams as such issues call for more expedited fixes in order to meet compliance requirements and ensure the integrity of the software and customer data.

Machine learning en hulpprogramma's voor kunstmatige intelligentie beloven de softwareontwikkeling sneller, flexibel en juist te maken.Machine learning and artificial intelligence tools promise to make the software development faster, agile and correct. Verschillende onderzoekers hebben machine learning toegepast op het probleem van het identificeren van beveiligingsfouten [2], [7], [8], [18]. In eerder gepubliceerde onderzoeken is ervan uitgegaan dat het volledige foutenrapport beschikbaar is voor het trainen en beoordelen van een machine learning-model.Several researchers have applied machine learning to the problem of identifying security bugs [2], [7], [8], [18].Previous published studies have assumed that the entire bug report is available for training and scoring a machine learning model. Dit is niet noodzakelijkerwijs het geval.This is not necessarily the case. Er bestaan situaties waarin het volledige foutenrapport niet beschikbaar kan worden gemaakt.There are situations where the entire bug report cannot be made available. Het foutenrapport kan bijvoorbeeld wachtwoorden bevatten, persoonsgegevens (persoonlijk identificeerbare informatie ofwel PII) of andere soorten gevoelige gegevens. Een case waar we op dit moment bij Microsoft mee worden geconfronteerd.For example, the bug report might contain passwords, personally identifying information (PII) or other kinds of sensitive data - a case we are currently facing at Microsoft. Het is daarom belangrijk om vast te stellen hoe goed de identificatie van een beveiligingsfout kan worden uitgevoerd als er minder informatie is, zoals wanneer alleen de titel van het foutenrapport beschikbaar is.It is therefore important to establish how well security bug identification can be performed using less information, such as when only the title of the bug report is available.

Daarnaast bevatten foutarchieven vaak verkeerd gelabelde vermeldingen [7]: niet-beveiligingsfoutrapporten die zijn geclassificeerd als beveiligingsgerelateerd en andersom.Additionally, bug repositories often contain mislabeled entries [7]: non-security bug reports classified as security related and vice-versa. Er zijn verschillende redenen waarom verkeerd labelen voor kan komen, variërend van het gebrek aan expertise van het ontwikkelteam op het gebied van beveiliging, tot de wazigheid van bepaalde problemen. Het is bijvoorbeeld mogelijk dat niet-beveiligingsfouten op een indirecte manier worden misbruikt om een ​​beveiligingsimplicatie te veroorzaken.There are several reasons for the occurrence of mislabeling, ranging from the development team's lack of expertise in security, to the fuzziness of certain problems, e.g. it is possible for non-security bugs to be exploited in an indirect way as to cause a security implication. Dit is een ernstig probleem aangezien het verkeerd labelen van SBR's ertoe leidt dat beveiligingsexperts de foutendatabase handmatig moeten beoordelen op een dure en tijdrovende manier.This is a serious problem since the mislabeling of SBRs results in security experts having to manually review bug database in an expensive and time-consuming effort. Begrijpen hoe ruis van invloed is op verschillende classificaties en hoe robuust (of kwetsbaar) verschillende technieken voor machine learning zijn bij de aanwezigheid van gegevenssets die besmet zijn met verschillende soorten ruis, is een probleem dat moet worden aangepakt zodat automatische classificatie deel kan gaan uitmaken van de praktijk van software engineering.Understanding how noise affects different classifiers and how robust (or fragile) different machine learning techniques are in the presence of data sets contaminated with different kinds of noise is a problem that must be addressed for to bring automatic classification to the practice of software engineering.

Voorlopig werk stelt dat de foutarchieven intrinsiek veel ruis bevatten en dat de ruis een nadelig effect kan hebben op de prestaties van machine learning-classificaties [7].Preliminary work argues that bug repositories are intrinsically noisy and that the noise might have an adverse effect on the performance machine learning classifiers [7]. Er ontbreekt echter enig systematisch en kwantitatief onderzoek over hoe verschillende niveaus en soorten ruis de prestaties beïnvloeden van verschillende gecontroleerde machine learning-algoritmen voor het probleem van het identificeren van beveiligingsfoutrapporten (SRB's).There lacks, however, any systematic and quantitative study of how different levels and types of noise affect the performance of different supervised machine learning algorithms for the problem of identifying security bug reports (SRBs).

In dit onderzoek laten we zien dat de classificatie van foutrapporten kan worden uitgevoerd, zelfs als alleen de titel beschikbaar is voor training en beoordeling.In this study, we show that the classification of bug reports can be performed even when solely the title is available for training and scoring. Voor zover wij weten is dit het allereerste werk dat dit doet.To the best of our knowledge this is the very first work to do so. Daarnaast bieden we het eerste systematische onderzoek naar het effect van ruis op de classificatie van foutrapporten.Additionally, we provide the first systematic study of the effect of noise in bug report classification. We doen een vergelijkend onderzoek naar de robuustheid van drie machine learning-technieken (logistieke regressie, Naïve Bayes en AdaBoost) tegen klasse-onafhankelijke ruis.We make a comparative study of robustness of three machine learning techniques (logistic regression, naive Bayes and AdaBoost) against class-independent noise.

Hoewel er enkele analytische modellen zijn die de algemene invloed van ruis voor een paar eenvoudige classificaties [5], [6] vastleggen, bieden deze resultaten geen duidelijke grenzen voor het effect van de ruis op precisie en zijn ze alleen geldig voor een specifieke machine learning-techniek.While there are some analytical models that capture the general influence of noise for a few simple classifiers [5], [6], these results do not provide tight bounds on the effect of the noise on precision and are valid only for a particular machine learning technique. Een nauwkeurige analyse van het effect van ruis in modellen voor machine learning wordt meestal gedaan door computationele experimenten uit te voeren.An accurate analysis of the effect of noise in machine learning models is usually performed by running computational experiments. Dergelijke analyses zijn uitgevoerd voor verschillende scenario's, variërend van softwaremeetgegevens [4] tot satellietbeeldclassificatie [13] en medische gegevens [12].Such analyses have been done for several scenarios ranging from software measurement data [4], to satellite image classification [13] and medical data [12]. Toch kunnen deze resultaten niet worden vertaald naar ons specifieke probleem, vanwege de grote afhankelijkheid van de aard van de gegevenssets en het onderliggende classificatieprobleem.Yet these results cannot be translated to our specific problem, due to its high dependency on the nature of the data sets and underlying classification problem. Voor zover wij weten, zijn er geen gepubliceerde resultaten over het probleem van het effect van gegevenssets die ruis bevatten op met name de classificatie van beveiligingsfoutrapporten.To the best of our knowledge, there are no published results on the problem of the effect of noisy data sets on security bug report classification in particular.

ONZE ONDERZOEKSBIJDRAGEN:OUR RESEARCH CONTRIBUTIONS:

  • We trainen classificatiedeskundigen voor het identificeren van beveiligingsfoutrapporten (SBR's) die uitsluitend zijn gebaseerd op de titel van de rapporten.We train classifiers for the identification of security bug reports (SBRs) based solely on the title of the reports. Voor zover wij weten is dit het eerste werk dat dit doet.To the best of our knowledge this is the first work to do so. Eerdere werken gebruikten ofwel het volledige foutrapport of verbeterden het foutrapport met aanvullende functies.Previous works either used the complete bug report or enhanced the bug report with additional complementary features. Het classificeren van fouten uitsluitend gebaseerd op de tegel, is met name relevant wanneer de volledige foutrapporten niet beschikbaar kunnen worden gemaakt vanwege privacyredenen.Classifying bugs based solely on the tile is particularly relevant when the complete bug reports cannot be made available due to privacy concerns. Er is bijvoorbeeld een geval bekend van foutrapporten die wachtwoorden en andere gevoelige gegevens bevatten.For example, it is notorious the case of bug reports that contain passwords and other sensitive data.

  • We bieden ook het eerste systematische onderzoek van de labelruistolerantie van verschillende machine learning-modellen en technieken die worden gebruikt voor de automatische classificatie van SBR's.We also provide the first systematic study of the label noise-tolerance of different machine learning models and techniques used for the automatic classification of SBRs. We doen een vergelijkend onderzoek naar de robuustheid van drie verschillende machine learning-technieken (logistische regressie, Naïve Bayes en AdaBoost) tegen klasse-afhankelijke en klasse-onafhankelijke ruis.We make a comparative study of robustness of three distinct machine learning techniques (logistic regression, naive Bayes and AdaBoost) against class-dependent and class-independent noise.

De rest van het artikel bevat de volgende informatie: In deel II presenteren we enkele eerdere werken in de literatuur.The remaining of the paper is presented as follows: In section II we present some of the previous works in the literature. In deel III beschrijven we de gegevensset en hoe gegevens vooraf worden verwerkt.In section III we describe the data set and how data is pre-processed. In deel IV wordt de methodologie beschreven en in deel V worden de resultaten van onze experimenten geanalyseerd. Ten slotte worden onze conclusies en toekomstige werken in deel VI gepresenteerd.The methodology is described in section IV and the results of our experiments analyzed in section V. Finally, our conclusions and future works are presented in VI.

II.II. EERDERE WERKENPREVIOUS WORKS

MACHINE LEARNING-TOEPASSINGEN VOOR FOUTARCHIEVEN.MACHINE LEARNING APPLICATIONS TO BUG REPOSITORIES.

Er bestaat een uitgebreide documentatie voor het toepassen van tekstanalyse, natuurlijke taalverwerking en machine learning bij foutarchieven in een poging om bijzonder arbeidsintensieve taken te automatiseren, zoals detectie van beveiligingsfouten [2], [7], [8], [18], dubbele identificatie van fouten [3] en het sorteren van fouten [1], [11], om maar een aantal toepassingen te noemen.There exists an extensive literature in applying text mining, natural language processing and machine learning on bug repositories in an attempt to automate laborious tasks such as security bug detection [2], [7], [8], [18], bug duplicate identification [3], bug triage [1], [11], to name a few applications. In het ideale geval vermindert de combinatie van machine learning (ML) en natuurlijke taalverwerking mogelijk het handmatige werk dat nodig is om foutdatabases te beheren, wordt de benodigde tijd voor het uitvoeren van deze taken verkort en kan de betrouwbaarheid van de resultaten worden verhoogd.Ideally, the marriage of machine learning (ML) and natural language processing potentially reduces the manual work required to curate bug databases, shorten the required time for accomplishing these tasks and can increase the reliability of the results.

In [7] stellen de auteurs een natuurlijk taalmodel voor om de classificatie van SBR's te automatiseren op basis van de foutbeschrijving.In [7] the authors propose a natural language model to automate the classification of SBRs based on the description of the bug. De auteurs extraheren een woordenlijst uit alle foutbeschrijvingen in de trainingsgegevensset en verdelen deze handmatig in drie lijsten met woorden: relevante woorden, stopwoorden (veelvoorkomende woorden die niet relevant lijken voor classificatie) en synoniemen.The authors extract a vocabulary from all bug description in the training data set and manually curate it into three lists of words: relevant words, stop words (common words that seem irrelevant for classification), and synonyms. Ze vergelijken de prestaties van een beveiligingsfoutclassificatie die is getraind op gegevens die allemaal zijn geëvalueerd door beveiligingsingenieurs en een classificatie die is getraind op gegevens die zijn gelabeld door foutrapporteurs in het algemeen.They compare the performance of security bug classifier trained on data that is all evaluated by security engineers, and a classifier trained on data that was labeled by bug reporters in general. Hoewel hun model duidelijk effectiever is wanneer het wordt getraind op gegevens die zijn beoordeeld door beveiligingsingenieurs, is het voorgestelde model gebaseerd op een handmatig afgeleide woordenlijst waardoor het model afhankelijk is van menselijke voeding.Although their model is clearly more effective when trained on data reviewed by security engineers, the proposed model is based on a manually derived vocabulary, which makes it dependent on human curation. Bovendien is er geen analyse van hoe verschillende niveaus van ruis hun model beïnvloeden, hoe verschillende classificaties op ruis reageren en of ruis in beide klassen de prestaties anders beïnvloedt.Moreover, there is no analysis of how different levels of noise affects their model, how different classifiers respond to noise, and if noise in either class affects performance differently.

Zou et.Zou et. al [18] maken gebruik van meerdere soorten informatie in een foutenrapport die betrekking hebben op de niet-tekstuele velden van een foutenrapport (metafuncties, zoals tijd, ernst en prioriteit) en de tekstuele inhoud van een foutenrapport (tekstuele kenmerken, oftewel de tekst in samenvattingsvelden).al [18] make use of multiple types of information contained in a bug report which involve the non-textual fields of a bug report (meta features, e.g., time, severity, and priority) and the textual content of a bug report (textual features, i.e., the text in summary fields). Op basis van deze functies wordt een model gebouwd om de SBR's automatisch te identificeren via natuurlijke taalverwerking en machine learning-technieken.Based on these features, they build a model to automatically identify the SBRs via natural language processing and machine learning techniques. In [8] voeren de auteurs een vergelijkbare analyse uit, maar daarnaast vergelijken ze de prestaties van gecontroleerde en niet gecontroleerde machine learning-technieken en bestuderen ze hoeveel gegevens nodig zijn om hun modellen te trainen.In [8] the authors perform a similar analysis, but additionally they compare the performance of supervised and unsupervised machine learning techniques, and study how much data is needed to train their models.

In [2] onderzoeken de auteurs ook verschillende machine learning-technieken om fouten zoals SBR's of NSBR's (Non-Security Bug Report) op basis van hun beschrijvingen te classificeren.In [2] the authors also explore different machine learning techniques to classify bugs as SBRs or NSBRs (Non-Security Bug Report) based on their descriptions. Ze stellen een pijplijn voor gegevensverwerking en modeltraining voor op basis van TFIDF.They propose a pipeline for data processing and model training based on TFIDF. Ze vergelijken de voorgestelde pijplijn met een model op basis van bag-of-words en Naïve Bayes.They compare the proposed pipeline with a model based on bag-of-words and naive Bayes. Wijayasekara et al. [16] gebruikte ook tekstanalysetechnieken om de functievector van elk foutrapport te genereren op basis van veelvoorkomende woorden om belangrijke verborgen fouten (Hidden Impact Bugs ofwel HIB's) te identificeren.Wijayasekara et al. [16] also used text mining techniques to generate the feature vector of each bug report based on frequent words to identify Hidden Impact Bugs (HIBs). Yang et al. [17] beweerde met behulp van Term Frequency (TF) en Naïve Bayes foutrapporten met hoge impact (bijv. SBR's) te identificeren.Yang et al. [17] claimed to identify high impact bug reports (e.g., SBRs) with the help of Term Frequency (TF) and naive Bayes. In [9] stellen de auteurs een model voor om de ernst van een fout te voorspellen.In [9] the authors propose a model to predict the severity of a bug.

LABELRUISLABEL NOISE

Het probleem van het omgaan met gegevenssets met labelruis is uitgebreid bestudeerd.The problem of dealing with data sets with label noise has been extensively studied. Frenay en Verleysen stellen in [6] een taxonomie voor labelruis voor om verschillende soorten labels met ruis te onderscheiden.Frenay and Verleysen propose a label noise taxonomy in [6], in order to distinguish different types of noisy label. De auteurs stellen drie verschillende soorten ruis voor: labelruis die onafhankelijk van de echte klasse en van de waarden van de instantiefuncties voorkomt; labelruis die alleen afhangt van het echte label; en labelruis waarbij de kans op verkeerde labels ook afhangt van de functiewaarden.The authors propose three different types of noise: label noise which occurs independently of the true class and of the values of the instance features; label noise that depends only on the true label; and label noise where the mislabelling probability also depends on the feature values. In ons werk bestuderen we de eerste twee typen ruis.In our work we study the first two types of noise. Vanuit een theoretisch oogpunt vermindert labelruis normaal gesproken de prestatie van een model [10], behalve in enkele specifieke gevallen [14].From a theoretical perspective, label noise usually decreases a model's performance [10], except in some specific cases [14]. Over het algemeen zijn robuuste methoden afhankelijk van het vermijden van overfitting om labelruis te verwerken [15].In general, robust methods rely on overfitting avoidance to handle label noise [15]. Er is al eerder onderzoek gedaan naar geluidseffecten bij classificatie op vele gebieden, zoals classificatie van satellietbeelden [13], classificatie van softwarekwaliteit [4] en classificatie van medische domeinen [12].The study of noise effects in classification has been done before in many areas such as satellite image classification [13], software quality classification [4] and medical domain classification [12]. Voor zover wij weten, zijn er geen gepubliceerde werken die de precieze kwantificering van de effecten van labels met ruis bij het probleem van SBR-classificatie bestuderen.To the best of our knowledge, there are no published works studying the precise quantification of the effects of noisy labels in the problem of SBRs classification. In dit scenario is de precieze relatie tussen de niveaus van ruis, de ruistypen en prestatievermindering niet vastgesteld.In this scenario, the precise relationship among noise levels, noise types and performance degradation has not been established. Bovendien is het de moeite waard om te begrijpen hoe verschillende classificaties zich gedragen als er ruis aanwezig is.Moreover, it is worthwhile to understand how different classifiers behave in the presence of noise. Meer in het algemeen zijn we niet op de hoogte van enig werk dat systematisch het effect bestudeert van gegevenssets met ruis op de prestaties van verschillende machine learning-algoritmen in de context van softwarefoutrapporten.More generally, we are unaware of any work that systematically studies the effect of noisy data sets on the performance of different machine learning algorithms in the context of software bug reports.

III.III. BESCHRIJVING VAN GEGEVENSSETDATA SET DESCRIPTION

Onze gegevensset bestaat uit 1.073.149 fouttitels, waarvan er 552.073 overeenkomen met SBR's en 521.076 met NSBR's.Our data set consists of 1,073,149 bug titles, 552,073 of which correspond to SBRs and 521,076 to NSBRs. De gegevens zijn verzameld van verschillende teams binnen Microsoft in de jaren 2015, 2016, 2017 en 2018.The data was collected from various teams across Microsoft in the years 2015, 2016, 2017 and 2018. Alle labels zijn verkregen door op handtekeningen gebaseerde foutverificatiesystemen of doordat ze door mensen zijn gelabeld.All the labels were obtained by signature-based bug verification systems or human labeled. Fouttitels in onze gegevensset zijn zeer korte teksten van ongeveer 10 woorden die een overzicht van het probleem geven.Bug titles in our data set are very short texts, containing around 10 words, with an overview of the problem.

A.A. Het vooraf verwerken van gegevens. We ontleden elke fouttitel aan de hand van de lege ruimtes, wat resulteert in een lijst met tokens.Data Pre-processing We parse each bug title by its blank spaces, resulting in a list of tokens. We verwerken elke lijst met tokens als volgt:We process each list of tokens as follows:

  • Verwijder alle tokens die bestandspaden weergevenRemove all tokens that are file paths

  • Splits tokens waarin de volgende symbolen aanwezig zijn: { , (, ), -, }, {, [, ], }Split tokens where the following symbols are present: { , (, ), -, }, {, [, ], }

  • Verwijder stopwoorden, tokens die alleen zijn samengesteld uit numerieke tekens en tokens die minder dan 5 keer voorkomen in het hele corpus.Remove stop words , tokens that are composed by numeric characters only and tokens that appear fewer than 5 times in the entire corpus.

IV.IV. METHODOLOGIEMETHODOLOGY

Het proces voor het trainen van onze modellen voor machine learning bestaat uit twee belangrijke stappen: het coderen van de gegevens in functievectoren en het trainen van gecontroleerde machine learning-classificaties.The process of training our machine learning models consists of two main steps: encoding the data into feature vectors and training supervised machine learning classifiers.

A.A. Functievectoren en machine learning-techniekenFeature Vectors and Machine Learning Techniques

Het eerste deel betreft het coderen van gegevens in kenmerkvectoren met behulp van het begrip frequencyinvers document frequency-algoritme (TF-IDF), zoals gebruikt in [2].The first part involves encoding data into feature vectors using the term frequencyinverse document frequency algorithm (TF-IDF), as used in [2]. TF-IDF is een techniek voor het ophalen van informatie die een begrippenfrequentie (TF) en zijn inverse documentfrequentie (IDF) weegt.TF-IDF is an information retrieval technique that weighs a terms frequency (TF) and its inverse document frequency (IDF). Elk woord of elke term heeft zijn respectievelijke TF- en IDF-score.Each word or term has its respective TF and IDF score. Het TF-IDF-algoritme kent het belang van dat woord toe op basis van het aantal keren dat het in het document voorkomt, en nog belangrijker, het controleert hoe relevant het sleutelwoord is tijdens de verzameling van titels in de gegevensset.The TF-IDF algorithm assigns the importance to that word based on the number of times it appears in the document, and more importantly, it checks how relevant the keyword is throughout the collection of titles in the data set. We hebben drie classificatietechnieken getraind en vergeleken: Naïve Bayes (NB), versterkte beslissingsstructuren (AdaBoost) en logistische regressie (LR).We trained and compared three classification techniques: naive Bayes (NB), boosted decision trees (AdaBoost) and logistic regression (LR). We hebben voor deze technieken gekozen omdat is aangetoond dat ze goed presteren voor de gerelateerde taak om beveiligingsfoutrapporten te identificeren op basis van het volledige rapport in de literatuur.We have chosen these techniques because they have been shown to performance well for the related task of identifying security bug reports based on the entire report in the literature. Deze resultaten werden bevestigd in een voorlopige analyse waarin deze drie classificaties het beter deden dan ondersteunende vectormachines en willekeurige forests.These results were confirmed in a preliminary analysis where these three classifiers outperformed support vector machines and random forests. In onze experimenten gebruiken we de scikit-learn-bibliotheek voor codering en modeltraining.In our experiments we utilize the scikit-learn library for encoding and model training.

B.B. Soorten ruisTypes of Noise

De in dit werk bestudeerde ruis verwijst naar de ruis in het klassenlabel in de trainingsgegevens.The noise studied in this work refers to noise in the class label in the training data. Als er dergelijke ruis aanwezig is, worden het leerproces en het daaruit voortkomende model als gevolg daarvan belemmerd door verkeerd gelabelde voorbeelden.In the presence of such noise, as a consequence, the learning process and resulting model are impaired by mislabelled examples. We analyseren de impact van verschillende niveaus van ruis die worden toegepast op de klasse-informatie.We analyze the impact of different noise levels applied to the class information. De soorten labelruis zijn eerder in de literatuur besproken met behulp van verschillende terminologieën.Types of label noise have been discussed previously in the literature using various terminologies. In ons werk analyseren we de effecten van twee verschillende soorten labelruis op onze classificaties: klasse-onafhankelijke labelruis, die wordt geïntroduceerd door willekeurig exemplaren te kiezen en hun label te spiegelen; en klasse-afhankelijke ruis, waarbij klassen een verschillende kans hebben om ruis te hebben.In our work, we analyze the effects of two different label noise in our classifiers: class-independent label noise, which is introduced by picking instances at random and flipping their label; and class-dependent noise, where classes have different likelihood to be noisy.

a) Klasse-onafhankelijk ruis: Klasse-onafhankelijke ruis verwijst naar de ruis die onafhankelijk van de echte klasse van de exemplaren optreedt.a) Class-independent noise: Class-independent noise refers to the noise that occurs independently of the true class of the instances. Bij dit type ruis is de waarschijnlijkheid pBR op het verkeerd labelen voor alle exemplaren in de gegevensset hetzelfde.In this type of noise, the probability of mislabeling pbr is the same for all instances in the data set. We introduceren klasse-onafhankelijke ruis in onze gegevenssets door elk label in onze gegevensset willekeurig te spiegelen met waarschijnlijkheid pBR.We introduce class-independent noise in our data sets by flipping each label in our data set at random with probability pbr.

b) Klasse-afhankelijk ruis: Klasse-afhankelijke ruis verwijst naar de ruis die afhankelijk is van de werkelijke klasse van de exemplaren.b) Class-dependent noise: Class-dependent noise refers to the noise that depends on the true class of the instances. Bij dit type ruis is de waarschijnlijkheid op het verkeerd labelen in de klasse SBR pSBR en de waarschijnlijkheid op het verkeerd labelen in de klasse NSBR pNSBR.In this type of noise, the probability of mislabeling in class SBR is psbr and the probability of mislabeling in class NSBR is pnsbr. We introduceren klasse-afhankelijke ruis in onze gegevensset door elke vermelding in de gegevensset te spiegelen waarvoor het werkelijke label SBR is met waarschijnlijkheid pSBR.We introduce class-dependent noise in our data set by flipping each entry in the data set for which the true label is SBR with probability psbr. Op dezelfde wijze spiegelen we het klasselabel van NSBR-exemplaren met waarschijnlijkheid pnsbr.Analogously, we flip the class label of NSBR instances with probability pnsbr.

c) Ruis met één klasse: Ruis met één klasse is een speciale case van klasse-afhankelijk ruis, waarbij pnsbr = 0 en pSBR > 0.c) Single-class noise: Single-class noise is a special case of class-dependent noise, where pnsbr = 0 and psbr > 0. Houd er rekening mee dat we voor klasse-afhankelijke ruis psbr = pnsbr = pbr gebruiken.Note that for class-independent noise we have psbr = pnsbr = pbr.

C.C. Het genereren van ruisNoise Generation

Onze experimenten onderzoeken de impact van verschillende typen en niveaus van ruis tijdens de training van SBR-classificaties.Our experiments investigate the impact of different noise types and levels in the training of SBR classifiers. In onze experimenten hebben we 25% van de gegevensset ingesteld als testgegevens, 10% als validatiegegevens en 65% als trainingsgegevens.In our experiments we set 25% of the data set as test data, 10% as validation and 65% as training data.

We voegen ruis toe aan de gegevenssets voor training en validatie voor verschillende niveaus van pBR, pSBR en pNSBR.We add noise to the training and validation data sets for different levels of pbr, psbr and pnsbr . We brengen geen wijzigingen aan in de testgegevensset.We do not make any modifications to the test data set. De verschillende niveaus van ruis die worden gebruikt zijn P = {0.05 × i|0 < i < 10}.The different noise levels used are P = {0.05 × i|0 < i < 10}.

Bij experimenten met klasse-onafhankelijke ruis voor pBR ∈ P doen we het volgende:In class-independent noise experiments, for pbr ∈ P we do the following:

  • Ruis genereren voor training en validatie van gegevenssets;Generate noise for training and validation data sets;

  • Logistische regressie-, Naïve Bayes- en AdaBoost-modellen trainen met behulp van een trainingsgegevensset (met ruis); * Modellen afstemmen met behulp van een validatiegegevensset (met ruis);Train logistic regression, naive Bayes and AdaBoost models using training data set (with noise); * Tune models using validation data set (with noise);

  • Modellen testen met behulp van een testgegevensset (zonder ruis).Test models using test data set (noiseless).

Bij experimenten met klasse-afhankelijke ruis voor pSBR ∈ P en pnsbr ∈ P doen we voor alle combinaties van pSBR en pnsbr het volgende:In class-dependent noise experiments, for psbr ∈ P and pnsbr ∈ P we do the following for all combinations of psbr and pnsbr:

  • Ruis genereren voor training en validatie van gegevenssets;Generate noise for training and validation data sets;

  • Logistische regressie-, Naïve Bayes- en AdaBoost-modellen trainen met behulp van een trainingsgegevensset (met ruis);Train logistic regression, naive Bayes and AdaBoost models using training data set (with noise);

  • Modellen afstemmen met behulp van een validatiegegevensset (met ruis);Tune models using validation data set (with noise);

  • Modellen testen met behulp van een testgegevensset (zonder ruis).Test models using test data set (noiseless).

V.V. EXPERIMENTELE RESULTATENEXPERIMENTAL RESULTS

In deze sectie worden de resultaten geanalyseerd van experimenten die worden uitgevoerd volgens de methodologie die in sectie IV is beschreven.In this section analyze the results of experiments conducted according to the methodology described in section IV.

a) Model met prestaties zonder ruis in de trainingsgegevensset: Een van de bijdragen van dit artikel is het voorstel voor een machine learning-model om beveiligingsfouten te identificeren door alleen de titel van de fout te gebruiken als gegeven voor de besluitvorming.a) Model performance without noise in the training data set: One of the contributions of this paper is the proposal of a machine learning model to identify security bugs by using only the title of the bug as data for decision making. Dit maakt de training van machine learning-modellen mogelijk, zelfs als ontwikkelteams vanwege de aanwezigheid van gevoelige gegevens niet de volledige foutrapporten willen delen.This enables the training of machine learning models even when development teams do not wish to share bug reports in full due to presence of sensitive data. We vergelijken de prestaties van drie modellen voor machine learning wanneer ze zijn getraind door alleen fouttitels te gebruiken.We compare the performance of three machine learning models when trained using only bug titles.

Het logistische regressiemodel is de best presterende classificatie.The logistic regression model is the best performing classifier. Het is de classificatie met de hoogste AUC-waarde van 0,9826, met een relevante overeenkomst van 0,9353 voor een FPR-waarde van 0,0735.It is the classifier with the highest AUC value, of 0.9826, recall of 0.9353 for a FPR value of 0.0735. De Naïve Bayes-classificatie laat een iets lagere prestatie zien dan de classificatie van het logistische regressiemodel, met een AUC van 0,9779 en een relevante overeenkomst van 0,9189 voor een FPR van 0,0769.The naive Bayes Classifier presents slightly lower performance than the logistic regression Classifier, with an AUC of 0.9779 and a recall of 0.9189 for a FPR of 0.0769. De AdaBoost-classificatie presteert inferieur in vergelijking met de twee eerder genoemde classificaties.The AdaBoost classifier has an inferior performance in comparison to the two previously mentioned classifiers. Deze behaalt een AUC van 0,9143 en een relevante overeenkomst van 0,7018 voor een FPR van 0,0774.It achieves an AUC of 0.9143, and a recall of 0.7018 for a 0.0774 FPR. Het gebied onder de ROC-curve (AUC) is een goede maatstaf voor het vergelijken van de prestaties van verschillende modellen, aangezien het de relatie tussen TPR en FPR in één enkele waarde samenvat .The area under the ROC curve (AUC) is a good metric for comparing performance of several models, as it summarizes in a single value the TPR vs. FPR relation. In de daaropvolgende analyse beperken we onze vergelijkende analyse beperken tot de AUC-waarden.In the subsequent analysis we will restrict our comparative analysis to AUC values.

Tabel I

A. Klasse ruis: één klasseA. Class Noise: single-class

U kunt zich misschien een scenario voorstellen waarbij alle fouten standaard worden toegewezen aan klasse NSBR en waarbij een fout alleen aan klasse SBR wordt toegewezen als er een beveiligingsexpert is die het foutarchief beoordeelt.One can imagine a scenario where all bugs are assigned to class NSBR by default, and a bug will only be assigned to class SBR if there is a security expert reviewing the bug repository. Dit scenario wordt weergegeven in de experimentele instelling van één klasse, waarbij we aannemen dat pnsbr = 0 en 0 < psbr < 0,5.This scenario is represented in the single-class experimental setting, where we assume that pnsbr = 0 and 0 < psbr < 0.5.

Tabel II

Tabel II toont ons een zeer kleine impact op de AUC voor alle drie de classificaties.From table II we observe a very small impact in the AUC for all three classifiers. De AUC-ROC van een model dat is getraind op pSBR = 0 vergeleken met een AUC-ROC van een model waarbij pSBR = 0,25 verschilt met 0,003 voor logistische regressie, 0,006 voor Naïve Bayes en 0,006 voor AdaBoost.The AUC-ROC from a model trained on psbr = 0 compared to a AUC-ROC of model where psbr = 0.25 differs by 0.003 for logistic regression, 0.006 for naive Bayes, and 0.006 for AdaBoost. In het geval van pSBR = 0,50 verschilt de gemeten AUC voor elk van de modellen van het model dat is getraind met pSBR = 0 met 0,007 voor logistische regressie, 0,011 voor Naïve Bayes en 0,010 voor AdaBoost.In the case of psbr = 0.50, the AUC measured for each of the models differ from the model trained with psbr = 0 by 0.007 for logistic regression, 0.011 for naive Bayes, and 0.010 for AdaBoost. Een logistische regressieclassificatie getraind met de aanwezigheid van ruis in één klasse vertoont het kleinste verschil in de metrische AUC-gegevens, d.w.z. een robuuster gedrag vergeleken met de classificaties Naïve Bayes en AdaBoost.logistic regression classifier trained in the presence of single-class noise presents the smallest variation in its AUC metric, i.e. a more robust behavior, when compared to our naive Bayes and AdaBoost classifiers.

B. Klasse ruis: klasse-onafhankelijkB. Class Noise: class-independent

We vergelijken de prestatie van onze drie classificaties voor de case waarbij de trainingsset is beschadigd door een klasse-onafhankelijke ruis.We compare the performance of our three classifiers for the case where the training set is corrupted by a class-independent noise. We meten de AUC voor elk model dat is getraind met verschillende niveaus van pBR in de trainingsgegevens.We measure the AUC for each model trained with different levels of pbr in the training data.

Tabel III

Tabel III toont ons een vermindering van de AUC-ROC voor elke toename van ruis in het experiment.In Table III we observe a decrease in the AUC-ROC for every noise increment in the experiment. De AUC-ROC die is gemeten in een model dat is getraind op gegevens zonder ruis vergeleken met een AUC-ROC van een model dat is getraind met klasse-onafhankelijke ruis met pBR = 0,25 verschilt met 0,011 voor logistische regressie, 0,008 voor Naïve Bayes en 0,0038 voor AdaBoost.The AUC-ROC measured from a model trained on noiseless data compared to a AUC-ROC of model trained with class-independent noise with pbr = 0.25 differs by 0.011 for logistic regression, 0.008 for naive Bayes, and 0.0038 for AdaBoost. We zien dat labelruis geen significante invloed heeft op de AUC van Naïve Bayes- en AdaBoost-classificaties wanneer het niveau van de ruis lager is dan 40%.We observe that label noise does not impact the AUC of naive Bayes and AdaBoost classifiers significantly when noise levels are lower than 40%. Daarentegen ervaart de logistische regressie-classificatie een impact op de AUC-meting bij een labelruisniveau van meer dan 30%.On the other hand, logistic regression Classifier experiences an impact in AUC measure for label noise levels above 30%.

AUC

Fig. 1.Fig. 1. Variatie van AUC-ROC in klasse-onafhankelijke ruis.Variation of AUC-ROC in class-independent noise. Voor een ruisniveau pbr = 0,5 de classificatie fungeert als een willekeurige classificatie, d.w.z. AUC ≈ 0,5.For a noise level pbr =0.5 the classifier acts like a random classifier, i.e. AUC≈0.5. Maar we zien dat de logistische regressie-classificatie een betere prestatie laat zien dan de andere twee modellen bij lagere niveaus van ruis (pBR ≤ 0,30).But we can observe that for lower noise levels (pbr ≤0.30), the logistic regression learner presents a better performance compared to the other two models. Echter, bij een waarde van 0,35 ≤ pBR ≤ 0,45 laat Naïve Bayes betere metrische gegevens voor AUC-ROC zien.However, for 0.35≤ pbr ≤0.45 naive Bayes learner presents better AUCROC metrics.

C. Klasse ruis: klasse-afhankelijkC. Class Noise: class-dependent

In de laatste reeks experimenten bekijken we een scenario waarin verschillende klassen verschillende niveaus van ruis bevatten, namelijk pSBR ≠ pnsbr.In the final set of experiments, we consider a scenario where different classes contain different noise levels, i.e. psbr ≠ pnsbr. We verhogen psbr en pnsbr systematisch en onafhankelijk met 0,05 in de trainingsgegevens en observeren de verandering van het gedrag van de drie classificaties.We systematically increment psbr and pnsbr independently by 0.05 in the training data and observe the change in behavior of the three classifiers.

Logistische regressie Naive Bayes AdaBoostLogistic Regression Naive Bayes AdaBoost

In de tabellen IV, V, VI wordt de variatie in AUC weergegeven naarmate ruis in verschillende niveaus van elke klasse wordt verhoogd. Logistische regressie wordt getoond in tabel IV, Naïve Bayes in tabel V en AdaBoost in tabel VI.Tables IV, V, VI show the variation of AUC as noise is increased in different levels in each class for logistic regression in Table IV, for naive Bayes in Table V and for AdaBoost in Table VI. Voor alle classificaties merken we een impact op in de metrische AUC-gegevens wanneer beide klassen een niveau van ruis van meer dan 30% bevatten.For all classifiers, we notice an impact in AUC metric when both classes contains noise level above 30%. Naïve Bayes gedraagt ​​zich robuust.naive Bayes behaves mot robustly. De impact op AUC is erg klein, zelfs wanneer 50% van de labels in de positieve klasse worden gespiegeld, op voorwaarde dat de negatieve klasse 30% of minder labels met ruis bevat.The impact on AUC is very small even when the 50% of the label in the positive class are flipped, provided that the negative class contains 30% of noisy labels or less. In dit geval is de daling van de AUC 0,03.In this case, the drop in AUC is of 0.03. AdaBoost heeft het meest robuuste gedrag van alle drie de classificaties laten zien.AdaBoost presented the most robust behavior of all three classifiers. Een significante verandering in de AUC vindt in beide klassen alleen plaats voor niveaus van ruis van meer dan 45%.A significant change in AUC will only happen for noise levels greater than 45% in both classes. In dat geval beginnen we een AUC-verval van meer dan 0,02 waar te nemen.In that case, we start observing an AUC decay greater than 0.02.

D. Over de aanwezigheid van restruis in de oorspronkelijke gegevenssetD. On The Presence of Residual Noise in the Original Data Set

Onze gegevensset is gelabeld door op handtekeningen gebaseerde geautomatiseerde systemen en door menselijke deskundigen.Our data set was labeled by signature-based automated systems and by human experts. Bovendien zijn alle foutrapporten verder beoordeeld en afgesloten door menselijke deskundigen.Moreover, all bugs reports have been further reviewed and closed by human experts. Hoewel we verwachten dat de hoeveelheid ruis in onze gegevensset minimaal en statistisch niet van belang is, maakt de aanwezigheid van restruis onze conclusies niet ongeldig.While we expect that the amount of noise in our data set is minimal and not statistically significant, the presence of residual noise does not invalidate our conclusions. Ter illustratie, ga ervan uit dat de oorspronkelijke gegevensset is beschadigd door een klasse-onafhankelijke ruis die gelijk is aan 0 < p <1/2 en voor elke vermelding onafhankelijk en identiek is verdeeld (i.i.d).Indeed, for the sake of illustration, assume that the original data set is corrupted by a class-independent noise equal to 0 < p < 1/2 independent and identically distributed (i.i.d) for every entry.

Als we, boven op de oorspronkelijke ruis een klasse-onafhankelijk ruis toevoegen met waarschijnlijkheid pBR i.i.d., is de resulterende ruis per vermelding p∗ = p(1 − pbr )+(1 − p)pbr .If we, on top of the original noise, add a class-independent noise with probability pbr i.i.d, the resulting noise per entry will be p∗ = p(1 − pbr )+(1 − p)pbr . Voor 0 < p,pbr < 1/2 is de daadwerkelijke ruis per label p∗ strikt groter dan de ruis die we kunstmatig toevoegen aan de gegevensset pBR.For 0 < p,pbr < 1/2, we have that the actual noise per label p∗ is strictly larger than the noise we artificially add to the data set pbr . De prestaties van onze classificaties zouden dus nog beter zijn als ze in eerste instantie waren getraind met een volledig ruisloze gegevensset (p = 0).Thus, the performance of our classifiers would be even better if they were trained with a completely noiseless data set (p = 0) in the first place. Samengevat betekent het bestaan ​​van restruis in de feitelijke gegevensset dat de veerkracht tegen ruis van onze classificaties beter is dan de hier gepresenteerde resultaten.In summary, the existence of residual noise in the actual data set means that the resilience against noise of our classifiers is better than the results here presented. Bovendien, als de restruis in onze gegevensset statistisch relevant zou zijn, zou de AUC van onze classificaties 0,5 (een willekeurige schatting) worden voor een ruisniveau dat strikt genomen minder is dan 0,5.Moreover, if the residual noise in our data set were statistically relevant, the AUC of our classifiers would become 0.5 (a random guess) for a level of noise strictly less than 0.5. We zien een dergelijk gedrag niet terug in onze resultaten.We do not observe such behavior in our results.

VI.VI. CONCLUSIES EN TOEKOMSTIGE WERKENCONCLUSIONS AND FUTURE WORKS

Onze bijdrage in dit artikel is tweeledig.Our contribution in this paper is twofold.

Ten eerste hebben we de haalbaarheid van classificatie van beveiligingsfoutrapporten aangetoond, uitsluitend gebaseerd op de titel van het foutrapport.First, we have shown the feasibility of security bug report classification based solely on the title of the bug report. Dit is met name relevant voor scenario's waarin het volledige foutrapport niet beschikbaar is vanwege privacybeperkingen.This is particularly relevant in scenarios where the entire bug report is not available due to privacy constraints. In onze case bevatten de foutrapporten bijvoorbeeld privé-informatie zoals wachtwoorden en cryptografische sleutels en waren ze niet beschikbaar voor het trainen van de classificaties.For example, in our case, the bug reports contained private information such as passwords and cryptographic keys and were not available for training the classifiers. Uit ons resultaat blijkt dat SBR-identificatie met hoge nauwkeurigheid kan worden uitgevoerd, zelfs wanneer er alleen rapporttitels beschikbaar zijn.Our result shows that SBR identification can be performed at high accuracy even when only report titles are available. Ons classificatiemodel dat gebruik maakt van een combinatie van TF-IDF en logistische regressie presteert met een AUC van 0,9831.Our classification model that utilizes a combination of TF-IDF and logistic regression performs at an AUC of 0.9831.

Ten tweede analyseerden we het effect van verkeerd gelabelde trainings-en validatiegegevens.Second, we analyzed the effect of mislabeled training and validation data. We hebben drie bekende machine learning-classificatietechnieken vergeleken (Naïve Bayes, logistische regressie en AdaBoost) op het gebied van robuustheid tegenover verschillende types ruis en verschillende niveaus van ruis.We compared three well-known machine learning classification techniques (naive Bayes, logistic regression and AdaBoost) in terms of their robustness against different noise types and noise levels. Alle drie de classificaties zijn robuust voor ruis met één klasse.All three classifiers are robust to single-class noise. Ruis in de trainingsgegevens heeft geen significant effect in de resulterende classificatie.Noise in the training data has no significant effect in the resulting classifier. De vermindering in AUC is zeer klein (0,01) voor een ruisniveau van 50%.The decrease in AUC is very small ( 0.01) for a level of noise of 50%. Voor ruis die in beide klassen aanwezig is en die klasse-onafhankelijk is, vertonen de Naïve Bayes- en AdaBoost-modellen alleen significante variaties in AUC wanneer ze zijn getraind met een gegevensset met ruisniveaus van meer dan 40%.For noise present in both classes and is class-independent, naive Bayes and AdaBoost models present significant variations in AUC only when trained with a data set with noise levels greater than 40%.

Tot slot heeft een klasse-afhankelijke ruis alleen een aanzienlijke impact op de AUC als er in beide klassen meer dan 35% ruis is.Finally, class-dependent noise significantly impacts the AUC only when there is more then 35% noise in both classes. AdaBoost liet de meeste robuustheid zien.AdaBoost showed the most robustness. De impact op de AUC is erg klein, zelfs wanneer de positieve klasse op 50% van de labels ruis heeft, op voorwaarde dat de negatieve klasse 45% labels met ruis bevat of minder.The impact in AUC is very small even when the positive class has 50% of its labels noisy, provided that the negative class contains 45% of noisy labels or less. In deze case is de daling van de AUC minder dan 0,03.In this case, the drop in AUC is less than 0.03. Voor zover wij weten, is dit het eerste systematische onderzoek naar het effect van gegevenssets met ruis voor de identificatie van beveiligingsfoutrapporten.To the best of our knowledge, this is the first systematic study on the effect of noisy data sets for security bug report identification.

TOEKOMSTIGE WERKENFUTURE WORKS

In dit artikel zijn we begonnen met het systematische onderzoek naar de effecten van ruis in de prestaties van machine learning-classificaties voor de identificatie van beveiligingsfouten.In this paper we have started the systematic study of the effects of noise in the performance of machine learning classifiers for the identification of security bugs. Dit werk heeft verschillende interessante gevolgen, waaronder: het onderzoeken van het effect van gegevenssets met ruis bij het bepalen van de ernst van een beveiligingsfout; het begrijpen van het effect van een ongebalanceerde klasse op de veerkracht van de getrainde modellen tegen ruis; inzicht in het effect van ruis die op een tegengestelde manier in de gegevensset wordt geïntroduceerd.There are several interesting sequels to this work, including: examining the effect of noisy data sets in determining the severity level of a security bug; understanding the effect of class imbalance on the resilience of the trained models against noise; understanding the effect of noise that is adversarially introduced in the data set.

REFERENTIESREFERENCES

[1] John Anvik, Lyndon Hiew en Gail C Murphy.[1] John Anvik, Lyndon Hiew, and Gail C Murphy. Wie moet deze fout oplossen?Who should fix this bug? In het rapport van de 28e internationale conferentie over software engineering, pagina's 361 – 370.In Proceedings of the 28th international conference on Software engineering, pages 361–370. ACM, 2006.ACM, 2006.

[2] Diksha Behl, Sahil Handa en Anuja Arora.[2] Diksha Behl, Sahil Handa, and Anuja Arora. Een hulpprogramma voor foutanalyse om beveiligingsfouten te identificeren en analyseren met behulp van Naïve Bayes en TF-IDF.A bug mining tool to identify and analyze security bugs using naive bayes and tf-idf. In Optimalisatie, betrouwbaarheid en informatietechnologie (ICROIT) , internationale conferentie van 2014 op pagina's 294 – 299.In Optimization, Reliabilty, and Information Technology (ICROIT), 2014 International Conference on, pages 294–299. IEEE, 2014.IEEE, 2014.

[3] Nicolas Bettenburg, Rahul Premraj, Thomas Zimmermann en Sunghun Kim.[3] Nicolas Bettenburg, Rahul Premraj, Thomas Zimmermann, and Sunghun Kim. Worden dubbele foutrapporten echt schadelijk geacht?Duplicate bug reports considered harmful really? In software onderhoud, 2008. ICSM 2008. Internationale IEEE-conferentie over, pagina's 337 – 345.In Software maintenance, 2008. ICSM 2008. IEEE international conference on, pages 337–345. IEEE, 2008.IEEE, 2008.

[4] Andres Folleco, Taghi M Khoshgoftaar, Jason van Hulse en Lofton Bullard.[4] Andres Folleco, Taghi M Khoshgoftaar, Jason Van Hulse, and Lofton Bullard. Identificeer learners die robuust zijn voor gegevens van lage kwaliteit.Identifying learners robust to low quality data. In Hergebruik en integratie van gegevens, 2008. IRI 2008. Internationale IEEE-conferentie over, pagina's 190 – 195.In Information Reuse and Integration, 2008. IRI 2008. IEEE International Conference on, pages 190–195. IEEE, 2008.IEEE, 2008.

[5] Benoˆıt Frenay.´ Onzekerheid en labelruis in machine learning.[5] Benoˆıt Frenay.´ Uncertainty and label noise in machine learning. Proefschrift, Katholieke Universiteit Leuven, Louvain-la-Neuve, België, 2013.PhD thesis, Catholic University of Louvain, Louvain-la-Neuve, Belgium, 2013.

[6] Beno ˆıt Frenay en Michel Verleysen.[6] Benoˆıt Frenay and Michel Verleysen. Classificatie met de aanwezigheid van labelruis: een enquête.Classification in the presence of´ label noise: a survey. IEEE-transacties op neurale netwerken en leersystemen, 25 (5): 845 – 869, 2014.IEEE transactions on neural networks and learning systems, 25(5):845–869, 2014.

[7] Michael Gegick, Pete Rotella en Tao Xie.[7] Michael Gegick, Pete Rotella, and Tao Xie. Beveiligingsfoutrapporten identificeren via tekstanalyse: een industriële casestudy.Identifying security bug reports via text mining: An industrial case study. In Analyse van softwarearchieven (MSR), 2010 7e IEEE-werkconferentie op, pagina's 11 – 20.In Mining software repositories (MSR), 2010 7th IEEE working conference on, pages 11–20. IEEE, 2010.IEEE, 2010.

[8] Katerina Goseva-Popstojanova en Jacob Tyo.[8] Katerina Goseva-Popstojanova and Jacob Tyo. Identificatie van foutrapporten die gerelateerd zijn aan beveiligingsissues via tekstanalyse met behulp van gecontroleerde en ongecontroleerde classificatie.Identification of security related bug reports via text mining using supervised and unsupervised classification. In 2018 IEEE Internationale Conferentie over kwaliteit, betrouwbaarheid en beveiliging van software (QRS) , pagina's 344 – 355, 2018.In 2018 IEEE International Conference on Software Quality, Reliability and Security (QRS), pages 344–355, 2018.

[9] Ahmed Lamkanfi, Serge Demeyer, Emanuel Giger en Bart Goethals.[9] Ahmed Lamkanfi, Serge Demeyer, Emanuel Giger, and Bart Goethals. De ernst van een gerapporteerde fout voorspellen.Predicting the severity of a reported bug. In Analyse van softwarearchieven (MSR), 2010 7e IEEE-werkconferentie op, pagina's 1 – 10.In Mining Software Repositories (MSR), 2010 7th IEEE Working Conference on, pages 1–10. IEEE, 2010.IEEE, 2010.

[10] Naresh Manwani en PS Sastry.[10] Naresh Manwani and PS Sastry. Ruistolerantie onder risicominimalisatie.Noise tolerance under risk minimization. IEEE-transacties op cybernetics, 43 (3): 1146 – 1151, 2013.IEEE transactions on cybernetics, 43(3):1146–1151, 2013.

[11] G. Murphy en D. Cubranic.[11] G Murphy and D Cubranic. Het automatisch sorteren van een fout met behulp van tekstcategorisatie.Automatic bug triage using text categorization. In het rapport van de 16e internationale conferentie over software engineering en kennis engineering.In Proceedings of the Sixteenth International Conference on Software Engineering & Knowledge Engineering. Citeseer, 2004.Citeseer, 2004.

[12] Mykola Pechenizkiy, Alexey Tsymbal, Seppo Puuronen en Oleksandr Pechenizkiy.[12] Mykola Pechenizkiy, Alexey Tsymbal, Seppo Puuronen, and Oleksandr Pechenizkiy. Klasseruis en gecontroleerd learning in medische domeinen: het effect van functie-extractie.Class noise and supervised learning in medical domains: The effect of feature extraction. In null, pagina's 708 – 713.In null, pages 708–713. IEEE, 2006.IEEE, 2006.

[13] Charlotte Pelletier, Silvia Valero, Jordi Inglada, Nicolas Champion, Claire Marais Sicre en Gerard Dedieu. ́ Het effect van labelruis van trainingsklassen op classificatieprestaties voor toewijzing van bodembedekking via tijdreeksen van satellietbeelden.[13] Charlotte Pelletier, Silvia Valero, Jordi Inglada, Nicolas Champion, Claire Marais Sicre, and Gerard Dedieu.´ Effect of training class label noise on classification performances for land cover mapping with satellite image time series. Remote Sensing, 9(2):173, 2017.Remote Sensing, 9(2):173, 2017.

[14] PS Sastry, GD Nagendra en Naresh Manwani.[14] PS Sastry, GD Nagendra, and Naresh Manwani. Een team van continuousaction learning automata voor het leren van halve ruimtes met ruistolerantie.A team of continuousaction learning automata for noise-tolerant learning of half-spaces. IEEE-transacties op systemen, mensen en cybernetics, deel B (Cybernetics) , 40(1):19–28, 2010.IEEE Transactions on Systems, Man, and Cybernetics, Part B (Cybernetics), 40(1):19–28, 2010.

[15] Choh-Man Teng.[15] Choh-Man Teng. Een vergelijking van technieken voor het omgaan met ruis.A comparison of noise handling techniques. In FLAIRS conferentie, pagina's 269 – 273, 2001.In FLAIRS Conference, pages 269–273, 2001.

[16] Dumidu Wijayasekara, Milos Manic en Miles McQueen.[16] Dumidu Wijayasekara, Milos Manic, and Miles McQueen. Identificatie en classificatie van een beveiligingsprobleem via tekstanalyse foutdatabases.Vulnerability identification and classification via text mining bug databases. In Industrial Electronics Society, IECON 2014 - 40e jaarlijkse conferentie van de IEEE, pagina's 3612 – 3618. IEEE, 2014.In Industrial Electronics Society, IECON 2014-40th Annual Conference of the IEEE, pages 3612–3618. IEEE, 2014.

[17] Xinli Yang, David Lo, Qiao Huang, Xin Xia en Jianling Sun.[17] Xinli Yang, David Lo, Qiao Huang, Xin Xia, and Jianling Sun. Geautomatiseerde identificatie van foutrapporten met hoge impact die gebruikmaken van onevenwichtige leerstrategieën.Automated identification of high impact bug reports leveraging imbalanced learning strategies. In conferentie over computersoftware en -toepassingen (COMPSAC), 2016 IEEE 40e jaarlijkse editie, volume 1, pagina's 227 – 232.In Computer Software and Applications Conference (COMPSAC), 2016 IEEE 40th Annual, volume 1, pages 227–232. IEEE, 2016.IEEE, 2016.

[18] Deqing Zou, Zhijun Deng, Zhen Li, en Hai Jin.[18] Deqing Zou, Zhijun Deng, Zhen Li, and Hai Jin. Automatische identificatie van beveiligingsfoutrapporten door analyse van meerdere functies.Automatically identifying security bug reports via multitype features analysis. In Australasian conferentie over informatiebeveiliging en privacy, pagina's 619 – 633.In Australasian Conference on Information Security and Privacy, pages 619–633. Springer, 2018.Springer, 2018.