Identifiera rapporter om säkerhetsfel baserat på rapportrubriker och brusdata

Mayana Pereira Scott Christiansen
CELA Data Science Customer Security and Trust
Microsoft Microsoft

Sammanfattning – Rapporter om säkerhetsbuggar är en fundamental del av livscykeln för programvaruutveckling. I övervakade maskininlärningsbaserade scenarier är det vanligt att anta att hela buggrapporter är tillgängliga för träning och att deras märkningar är brusfria. Såvitt vi vet är det här den första studien som visar att exakta förutsägelser om märkning är möjligt för SBR:er även om endast titeln är tillgänglig och även då det förekommer märkningar med brus.

Indextermer – Maskininlärning, Felmärkning, Brus, Rapport om säkerhetsbuggar, Buggdatabaser

I. INTRODUKTION

Att identifiera säkerhetsrelaterade problem bland rapporterade buggar är en utmaning för programvaruutvecklingsteam eftersom den typen av problem kräver snabba åtgärder för att uppfylla efterlevnadskrav och säkerställa integriteten i programvaran och kundernas data.

Verktyg för maskininlärning och artificiell intelligens utlovar snabbare, smidigare och mer precis programvaruutveckling. Flera forskare har tillämpat maskininlärning på problemet med att identifiera säkerhetsbuggar [2], [7], [8], [18]. I tidigare publicerade studier har man antagit att hela buggrapporten är tillgänglig för att träna och klassificera en maskininlärningsmodell. Så är inte nödvändigtvis fallet. Det finns situationer då hela buggrapporten inte kan göras tillgänglig. Buggrapporten kan till exempel innehålla lösenord, personligt identifierbar information (PII) eller andra typer av känsliga data – en utmaning som vi på Microsoft för närvarande står inför. Därför är det viktigt att titta på hur väl det går att identifiera säkerhetsbuggar med mindre information, t.ex. då endast buggrapportens titel är tillgänglig.

Dessutom innehåller buggdatabaser ofta felmärkta poster [7]: rapporter över buggar som inte rör säkerhet klassificeras som säkerhetsrelaterade och tvärtom. Felmärkningarna kan ha flera orsaker. De kan till exempel bero på att utvecklingsteamet saknar expertis inom säkerhetsområdet eller på att vissa problem är särskilt komplexa. Det är exempelvis möjligt att buggar som inte är säkerhetsrelaterade utnyttjas på ett indirekt sätt för att kompromettera säkerheten. Det här är ett allvarligt problem eftersom felmärkning av SBR:er resulterar i att säkerhetsexperter måste gå igenom buggdatabasen manuellt, vilket är både dyrt och tidskrävande. För att göra automatisk klassificering till en del av programvaruutvecklingen måste vi förstå hur brus påverkar olika klassificerare och hur robusta (eller svaga) olika maskininlärningstekniker är vid förekomsten av datauppsättningar som har kontaminerats med olika typer av brus.

Preliminära studier visar att buggdatabaser alltid innehåller brus och att det bruset kan ha en negativ effekt på ML-klassificerarnas prestanda [7]. Dock finns det ingen systematisk och kvantitativ studie som visar hur olika nivåer och typer av brus påverkar prestanda hos olika övervakade maskininlärningsalgoritmer med hänsyn till problemet med SRB-identifiering.

I den här studien visar vi att klassificeringen av buggrapporter kan utföras även om endast titeln är tillgänglig för träning och klassificering. Såvitt vi vet är den här studien den första i sitt slag. Dessutom är det den första systematiska studien av hur brus påverkar klassificeringen av buggrapporter. Vi jämför robustheten hos tre maskininlärningstekniker (Logistic Regression, Naive Bayes och AdaBoost) med klassoberoende brus.

Även om det finns analytiska modeller som visar hur brus generellt påverkar några enkla klassificerare [5], [6], så visar inte dessa resultat den konkreta effekten av brus på precisionen, och de är endast giltiga för en specifik maskininlärningsteknik. En relevant analys av effekten av brus i maskininlärningsmodeller utförs vanligtvis med beräkningsexperiment. Sådana analyser har gjorts för flera scenarier som sträcker sig från programmätningsdata [4] till satellitbildsklassificering [13] och medicinska data [12]. Men dessa resultat kan inte överföras till vårt specifika problem på grund av dess starka koppling till typen av datauppsättningar och underliggande klassificeringsproblem. Såvitt vi vet finns det inga publicerade resultat som mer specifikt tar upp effekten av brus i datauppsättningar på klassificeringen av säkerhetsbuggrapporter.

VÅRA FORSKNINGSBIDRAG:

  • Vi tränar klassificerare för identifiering av SBR:er uteslutande baserat på rapportens titel. Såvitt vi vet är den här studien den första i sitt slag. I tidigare studier användes antingen hela buggrapporten eller en förbättrad buggrapport med fler kompletterande funktioner. Att klassificera buggar enbart baserat på titeln är särskilt relevant när de fullständiga buggrapporterna inte kan göras tillgängliga av sekretesskäl. Ett typiskt exempel är buggrapporter som innehåller lösenord och andra känsliga data.

  • Det här är också den första systematiska studien som studerar hur märkningar med brus tolereras i olika maskininlärningsmodeller och maskininlärningstekniker som används för automatisk SBR-klassificering. Vi jämför robustheten hos tre olika maskininlärningstekniker (Logistic Regression, Naive Bayes och AdaBoost) med klassberoende och klassoberoende brus.

Resten av dokumentet presenteras på följande sätt: I avsnitt II presenterar vi några av de tidigare verken i litteraturen. I avsnitt III beskriver vi datauppsättningen och förbehandlingen av data. Metoden beskrivs i avsnitt IV och resultaten av våra experiment analyseras i avsnitt V. Slutligen presenteras våra slutsatser och framtida arbeten i avsnitt VI.

II. TIDIGARE ARBETEN

TILLÄMPNING AV MASKININLÄRNING PÅ BUGGDATABASER.

Det finns omfattande litteratur som beskriver hur textutvinning, bearbetning på naturlig språk och maskininlärning används med buggdatabaser för att automatisera krävande uppgifter såsom identifiering av säkerhetsbuggar [2], [7], [8], [18], identifiering av buggdubbletter [3] och buggprioritering [1], [11] för att bara nämna några. Idealiskt kan maskininlärning (ML) och bearbetning på naturligt språk minska mängden manuellt arbete som krävs för att kurera buggdatabaser, göra dessa uppgifter mindre tidskrävande samt leverera resultat med högre tillförlitlighet.

I [7] föreslår författarna en modell som baseras på naturlig språk för att automatisera klassificeringen av SBR:er baserat på beskrivningen av buggen. Författarna extraherar ett vokabulär från buggbeskrivningen i uppsättningen med träningsdata och kurerar det manuellt i tre listor med ord: relevanta ord, stoppord (vanliga ord som verkar vara irrelevanta för klassificering) och synonymer. De jämför resultatet från en klassificerare av säkerhetsbuggar som tränats med data som granskats av säkerhetstekniker, och en klassificerare som tränats med data som märkts av buggrapportörer. Även om deras modell helt klart är effektivare när den tränats med data som granskats av säkerhetstekniker, baseras den föreslagna modellen på ett manuellt härlett vokabulär, vilket betyder att den är beroende av mänsklig kurering. Det finns inte heller någon analys över hur olika nivåer av brus påverkar modellen, hur olika klassificerare svarar på brus eller huruvida brus i den ena eller andra klassen påverkar prestanda på olika sätt.

Zou et. al [18] använder sig av flera typer av information som finns i en buggrapport som omfattar icke-textfält i en buggrapport (metafunktioner, t.ex. tid, allvarlighetsgrad och prioritet) och textinnehållet i en buggrapport (textfunktioner, dvs. texten i sammanfattningsfält). Baserat på dessa egenskaper skapar de en modell för automatisk SBR-identifiering via bearbetning på naturligt språk och maskininlärningstekniker. I [8] gör författarna en liknande analys, men de jämför även prestanda med övervakade och oövervakade maskininlärningstekniker och studerar hur mycket data som behövs för att träna deras modeller.

I [2] utforskar författarna även olika maskininlärningstekniker för att klassificera buggar som SBR:er eller NSBR:er (buggrapporter som inte är säkerhetsrelaterade) baserat på deras beskrivningar. De föreslår en pipeline för databearbetning och modellträning baserat på TFIDF. De jämför den föreslagna pipelinen med en modell som baseras på ”bag-of-words” och Naive Bayes. Wijayasekara et al. [16] använde också textutvinningstekniker för att generera funktionsvektorn för varje buggrapport baserat på frekventa ord, för att identifiera HBI:er (buggar med dold effekt). Yang et al. [17] hävdade att man identifierat buggrapporter med stor effekt (t.ex. SBR:er) med hjälp av TF (termfrekvens) och Naive Bayes. I [9] föreslår författarna en modell för att förutsäga allvarlighetsgraden för en bugg.

MÄRKNINGAR MED BRUS

Det finns många studier som rör hanteringen av datamängder med märkningsbrus. Frenay och Verleysen föreslår en taxonomi för märkningsbrus i [6], för att skilja mellan olika typer av märkningar med brus. Författarna föreslår tre olika typer av brus: märkningsbrus som förekommer oberoende av den egentliga klassen och instansegenskapernas värden; märkningsbrus som endast beror på den egentliga märkningen; och märkningsbrus där sannolikheten för felmärkning även beror på egenskapsvärdena. I vårt arbete studerar vi de två första typerna av brus. Ur ett teoretiskt perspektiv försämrar märkningsbrus vanligtvis en modells prestanda [10], förutom i vissa specifika fall [14]. Generellt hanterar robusta metoder märkningsbrus genom att undvika överanpassning [15]. Effekten av brus på en klassificering har studerats tidigare inom flera områden, till exempel inom satellitbildsklassificering [13], programkvalitetsklassificering [4] och klassificering i den medicinska domänen [12]. Såvitt vi vet finns det inga publicerade studier som konkret försöker kvantifiera effekterna av brusmärkningar i samband med klassificeringen av SBR:er. I det här scenariot har den specifika kopplingen mellan brusnivåer, brustyper och prestandaförsämring inte fastställts. Dessutom är det viktigt att förstå hur olika klassificerare beter sig vid förekomsten av brus. Generellt finns det såvitt vi vet ingen studie som systematiskt studerar hur brus i datauppsättningar påverkar prestanda i olika maskininlärningsalgoritmer i samband med SBR:er.

III. BESKRIVNING AV DATAUPPSÄTTNING

Vår datauppsättning består av 1 073 149 buggtitlar, där 552 073 är SBR:er och 521 076 är NSBR:er. Data samlades in från olika team på Microsoft under åren 2015, 2016, 2017 och 2018. Alla märkningar hämtades genom signaturbaserade buggverifieringssystem eller mänsklig märkning. Buggtitlar i vår datauppsättning är mycket korta texter som innehåller runt 10 ord, med en översikt över problemet.

A. Vid förbearbetningen av data parsar vi varje buggtitel efter blanksteg, vilket resulterar i en lista med token. Vi bearbetar varje tokenlista enligt följande:

  • Ta bort alla token som utgör filsökvägar

  • Dela upp token som har följande symboler: {, (, ), -, }, {, [, ], }

  • Ta bort stoppord, token som endast består av numeriska tecken och token som förekommer mindre än fem gånger i hela korpusen.

IV. METODIK

Träningen av våra maskininlärningsmodeller involverar två huvudsakliga steg: kodning av data till funktionsvektorer och träning av klassificerare för övervakad maskininlärning.

A. Funktionsvektorer och maskininlärningstekniker

Den första delen handlar om att koda data till funktionsvektorer med TF-IDF-algoritmen (Term Frequency Inverse Document Frequency), som används i [2]. TF-IDF är en teknik för informationsinsamling som viktar en terms frekvens (TF) och dess inverterade dokumentfrekvens (IDF). Varje ord eller term har sin egen TF- respektive IDF-poäng. TF-IDF-algoritmen tilldelar vikten till ordet baserat på hur många gånger det förekommer i dokumentet, och kontrollerar dessutom hur relevant nyckelordet är i samlingen med titlar i datauppsättningen. Vi tränade och jämförde tre klassificeringstekniker: Naive Bayes (NB), Boosted Decision Trees (AdaBoost) och Logistic Regression (LR). Vi valde dessa tekniker eftersom de i olika studier har visat sig prestera bra i uppgifter relaterade till att identifiera SBR:er baserat på hela rapporten. Dessa resultat bekräftades i en preliminär analys där dessa tre klassificerare presterade bättre än datorer med vektorstöd och slumpmässiga skogar. I våra experiment använder vi scikit-learn-biblioteket för kodning och modellträning.

B. Typer av brus

Bruset som studeras i detta arbete avser brus i klassmärkningen i träningsdata. Förekomsten av sådant brus hindrar inlärningsprocessen och den resulterande modellen på grund av felmärkta indata. Vi analyserar effekten av olika brusnivåer som tillämpas på klassinformationen. Typer av märkningsbrus har diskuterats tidigare i litteraturen utifrån olika terminologier. I vår studie analyserar vi effekterna av två olika typer av märkningsbrus i våra klassificerare: klassoberoende märkningsbrus, som är slumpmässigt utvalda instanser vars märkning inverterats; och klassberoende brus, där sannolikheten för brus skiljer sig beroende på klass.

a) Klassoberoende brus: Klassoberoende brus refererar till bruset som inträffar oberoende av den sanna klassen för instanserna. I den här typen av brus är sannolikheten för felmärkning pbr samma för alla instanser i datauppsättningen. Vi introducerar klassoberoende brus i våra datauppsättningar genom att slumpmässigt invertera varje märkning i datauppsättningen med sannolikheten pbr.

b) Klassberoende brus: Klassberoende brus refererar till bruset som är beroende av den sanna klassen för instanserna. I den här typen av brus är sannolikheten för felmärkning i klass SBR psbr, och sannolikheten för felmärkning i klass NSBR är pnsbr. Vi introducerar klassberoende brus i vår datauppsättning genom att invertera varje post i datauppsättningen vars egentliga märkning är SBR med sannolikheten psbr. På motsvarande sätt inverterar vi klassmärkningen för NSBR-instanser med sannolikheten pnsbr.

c) Brus av en klass: Brus av en klass är ett särskilt fall av klassberoende brus, där pnsbr = 0 och psbr> 0. Observera att vi för klassoberoende brus har psbr = pnsbr = pbr.

C. Brusgenerering

Våra experiment undersöker effekten av olika typer av brus och nivåer i träningen av SBR-klassificerare. I våra experiment utgör 25 % av datauppsättningen testdata, 10 % validering och 65 % träningsdata.

Vi lägger till brus i datauppsättningarna för träning och validering för olika nivåer av pbr, psbr och pnsbr. Vi gör inga ändringar i testdatauppsättningen. De olika brusnivåerna som används är P = {0,05 × i|0 < i < 10}.

I experiment med klassoberoende brus gör vi följande för pbr ∈ P:

  • Generera brus för datauppsättningar för träning och validering;

  • Träna Logistic Regression-, Naive Bayes- och AdaBoost-modeller med hjälp av en träningsdatauppsättning (med brus); * Justera modeller med hjälp av en datauppsättning för validering (med brus);

  • Testa modeller med hjälp av en testdatauppsättning (brusfri).

I experiment med klassberoende brus gör vi följande för psbr ∈ P och pnsbr ∈ P för alla kombinationer av psbr och pnsbr:

  • Generera brus för datauppsättningar för träning och validering;

  • Träna Logistic Regression-, Naive Bayes- och AdaBoost-modeller med hjälp av en datauppsättning för träning (med brus);

  • Finjustera modeller med hjälp av en datauppsättning för validering (med brus);

  • Testa modeller med hjälp av en testdatauppsättning (brusfri).

V. EXPERIMENTELLA RESULTAT

I det här avsnittet analyserar vi resultatet av experiment som har genomförts med de metoder som beskrivs i avsnitt IV.

a) Modellprestanda utan brus i träningsdatauppsättningen: Ett av bidragen i det här dokumentet är förslaget om en maskininlärningsmodell för att identifiera säkerhetsbuggar genom att endast använda buggens titel som data för beslutsfattande. Detta gör det möjligt att träna maskininlärningsmodeller även om utvecklingsteamet inte vill dela hela buggrapporter på grund av att de innehåller känsliga data. Vi jämför prestanda i tre maskininlärningsmodeller när de enbart tränas med buggtitlar.

Logistic Regression-modellen är den klassificerare som presterar bäst. Det är klassificeraren med högst AUC-värde på 0,9826 och återanrop på 0,9353 för ett FPR-värde på 0,0735. Naive Bayes-klassificeraren uppvisar något sämre prestanda än Logistic Regression-klassificeraren, med ett AUC-värde på 0,9779 och återanrop på 0,9189 för ett FPR-värde på 0,0769. AdaBoost-klassificeraren har sämre prestanda jämfört med de två tidigare nämnda klassificerarna. Den uppnår ett AUC-värde på 0,9143 och återanrop på 0,7018 för ett FPR-värde på 0,0774. Området under ROC-kurvan (AUC) är ett bra mått för att jämföra prestanda för flera modeller, eftersom det sammanfattas i ett enda värde TPR jämfört med FPR-relationen. I den efterföljande analysen begränsar vi vår jämförande analys till AUC-värden.

Tabell I

A. Klassbrus: en enda klass

Man kan föreställa sig ett scenario där alla buggar tilldelas till klassen NSBR som standard, och där en bugg endast tilldelas till klassen SBR om en säkerhetsexpert granskar buggdatabasen. Det här scenariot representeras i den experimentella inställningen med en klass, där vi antar att pnsbr = 0 och 0 < psbr< 0,5.

Tabell II

I tabell II ser vi en mycket liten effekt på AUC för alla tre klassificerare. AUC-ROC från en modell som har tränats med psbr = 0 jämfört med en AUC-ROC av modellen där psbr = 0,25 skiljer sig med 0,003 för Logistic Regression, 0,006 för Naive Bayes och 0,006 för AdaBoost. För psbr = 0,50 skiljer sig uppmätt AUC-värde för var och en av modellerna från modellen som tränats med psbr = 0 med 0,007 för Logistic Regression, 0,011 för Naive Bayes och 0,010 för AdaBoost. Logistic Regression-klassificeraren som tränats med brus i en enda klass uppvisar minst variation i AUC-måttet, dvs. ett mer robust beteende, jämfört med Naive Bayes- och AdaBoost-klassificerarna.

B. Klassbrus: klassoberoende

Vi jämför prestanda hos våra tre klassificerare i ett scenario där träningsuppsättningen har skadats av klassoberoende brus. Vi mäter AUC för varje modell som har tränats med olika nivåer av pbr i träningsdata.

Tabell III

I tabell III observerar vi en minskning av AUC-ROC för varje brusökning i experimentet. Det uppmätta AUC-ROC-värdet från en modell som har tränats med brusfria data jämförs med AUC-ROC från en modell som har tränats med klassoberoende brus där pbr = 0,25 skiljer sig med 0,011 för Logistic Regression, 0,008 för Naive Bayes och 0,0038 för AdaBoost. Vi ser att märkningsbrus inte påverkar AUC-värdet med Naive Bayes- och AdaBoost-klassificeraren signifikant när brusnivåerna är lägre än 40 %. Å andra sidan påverkas Logistic Regression-klassificerarens AUC-mått vid märkningsbrusnivåer över 30 %.

AUC-variant

Bild 1. Variation av AUC-ROC i klassoberoende brus. För brusnivå pbr = 0,5 fungerar klassificeraren som en slumpmässig klassificerare, dvs. AUC ≈ 0,5. Men vi kan se att Logistic Regression-inlärning ger bättre prestanda jämfört med de två andra modellerna vid lägre brusnivåer (pbr ≤ 0,30). Men för 0,35 ≤ pbr ≤ 0,45 ger Naive Bayes-inlärning bättre AUCROC-mått.

C. Klassbrus: klassberoende

I den sista uppsättningen experiment överväger vi ett scenario där olika klasser innehåller olika brusnivåer, d.v.s. psbr ≠ pnsbr. Vi ökar systematiskt psbr och pnsbr oberoende av varandra med 0,05 i träningsdata och observerar hur de tre klassificerarnas beteende ändras.

Logistisk regressionNaive BayesAdaBoost

Tabellerna IV, V och VI visar variationen i AUC när bruset ökar i olika nivåer i respektive klass för Logistic Regression i tabell IV, för Naive Bayes i tabell V och för AdaBoost i tabell VI. För alla klassificerare ser vi en påverkan på AUC-måttet när båda klasserna har en brusnivå över 30 %. Naive Bayes uppvisar ett mer robust beteende. AUC påverkas ytterst lite även när 50 % av märkningen i den positiva klassen inverteras, förutsatt att den negativa klassen innehåller 30 % märkningar med brus eller mindre. I detta fall sjunker AUC med 0,03. AdaBoost visade det mest robusta beteendet av alla tre klassificerare. En signifikant ändring i AUC sker bara för brusnivåer som är högre än 45 % i båda klasserna. I detta fall börjar vi observera en AUC-minskning över 0,02.

D. Förekomst av kvarvarande brus i den ursprungliga datauppsättningen

Vår datauppsättning märktes av signaturbaserade automatiserade system och av mänskliga experter. Dessutom har alla buggrapporter granskats ytterligare och stängts av mänskliga experter. Även om vi förväntar oss att bruset i vår datauppsättning är minimalt och inte statistiskt signifikant påverkar förekomsten av kvarvarande brus inte giltigheten i våra slutsatser. För illustrationens skull förutsätter vi att den ursprungliga datamängden är skadad av ett klassoberoende brus som är lika med 0 < p < 1/2 oberoende och identiskt distribuerad (i.i.d) för varje post.

Om vi, utöver det ursprungliga bruset, lägger till klassoberoende brus med sannolikheten pbr i.i.d kommer det resulterande bruset per post att vara p∗ = p(1 − pbr )+(1 − p)pbr. För 0 < p,pbr< 1/2 har vi att det faktiska bruset per etikett p∗ är strikt större än bruset vi artificiellt lägger till i datauppsättningen pbr . Därför skulle prestanda för våra klassificerare bli ännu bättre om de redan från början tränades med en helt brusfri datauppsättning (p = 0). Sammanfattningsvis innebär förekomsten av kvarvarande brus i själva datauppsättningen att våra klassificerare har bättre motståndskraft mot brus än de resultat som presenteras här. Om kvarvarande brus i vår datauppsättning vore statistiskt relevant skulle AUC-värdet för våra klassificerare bli 0,5 (gissningsvis) för en brusnivå som är strikt mindre än 0,5. Vi ser inte detta beteende i våra resultat.

VI. SLUTSATSER OCH FRAMTIDA ARBETE

Vårt bidrag i den här rapporten har två sidor.

För det första har vi visat på möjligheten att klassificera SBR:er endast baserat på buggrapportens titel. Detta är särskilt relevant i scenarier där hela buggrapporten inte är tillgänglig av sekretesskäl. I vårt fall innehöll buggrapporterna privat information, till exempel lösenord och kryptografiska nycklar, och var inte tillgängliga för att träna klassificerarna. Vårt resultat visar att SBR-identifiering kan utföras med hög precision även när endast rapporttitlarna är tillgängliga. Vår klassificeringsmodell som använder en kombination av TF-IDF och Logistic Regression presterar med ett AUC på 0,9831.

För det andra analyserade vi effekten av felmärkta tränings- och valideringsdata. Vi jämförde robustheten i tre välkända maskininlärningstekniker (Naive Bayes, Logistic Regression och AdaBoost) med olika brustyper och brusnivåer. Alla tre klassificerarna är robusta vid brus i en enskild klass. Brus i träningsdata har ingen signifikant påverkan på den resulterande klassificeraren. Minskningen i AUC är mycket liten (0,01) vid en brusnivå på 50 %. För brus i båda klasserna och klassoberoende brus visade Naive Bayes- och AdaBoost-modellerna signifikanta variationer i AUC endast när de tränades med en datauppsättning med brusnivåer över 40 %.

Slutligen har klassberoende brus endast en signifikant effekt på AUC när brusnivån är över 35 % i båda klasserna. AdaBoost visade störst robusthet. Effekten på AUC är mycket liten även om 50 % av märkningarna i den positiva klassen har brus, förutsatt att den negativa klassen har 45 % märkningar med brus eller mindre. I detta fall är AUC-minskningen mindre än 0,03. Såvitt vi vet är det här den första systematiska studien om effekten av datauppsättningar med brus för SBR-identifiering.

FRAMTIDA ARBETE

Den här rapporten är startpunkten för systematisk forskning om effekten av brus på maskininlärningsklassificerare i samband med identifieringen av säkerhetsbuggar. Det här arbetet öppnar upp för ytterligare intressant forskning, t.ex. för att studera relationen mellan datauppsättningar med brus och säkerhetsbuggens allvarlighetsgrad; för att förstå hur en obalans mellan klasser påverkar de tränade modellernas motståndskraft mot brus; och för att förstå effekten av brus som avsiktligt matats in i datauppsättningen.

REFERENSER

[1] John Anvik, Lyndon Hiew och Gail C Murphy. Who should fix this bug? I Proceedings of the 28th international conference on Software engineering, sid. 361–370. ACM, 2006.

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

[3] Nicolas Bettenburg, Rahul Premraj, Thomas Zimmermann och Sunghun Kim. Duplicate bug reports considered harmful really? Under Programvaruunderhåll, 2008. ICSM 2008. Internationell IEEE-konferens på sidorna 337–345. IEEE, 2008.

[4] Andres Folleco, Taghi M Khoshgoftaar, Jason Van Hulse och Lofton Bullard. Identifying learners robust to low quality data. I Återanvändning och integrering av information, 2008. IRI 2008. IEEE International Conference på sidorna 190–195. IEEE, 2008.

[5] Benoˆıt Frenay.´ Uncertainty and label noise in machine learning. Doktorsavhandling, Catholic University of Louvain, Louvain-la-Neuve, Belgien, 2013.

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

[7] Michael Gegick, Pete Rotella och Tao Xie. Identifiera rapporter om säkerhetsfel via textutvinning: En studie av industrifall. I Mining software repositories (MSR), 2010 7th IEEE working conference, sid. 11–20. IEEE, 2010.

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

[9] Ahmed Lamkanfi, Serge Demeyer, Emanuel Giger och Bart Goethals. Predicting the severity of a reported bug. I Mining Software Repositories (MSR), 2010 7th IEEE Working Conference, sid. 1–10. IEEE, 2010.

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

[11] G Murphy och D Cubranic. Automatic bug triage using text categorization. I Proceedings of the Sixteenth International Conference on Software Engineering & Knowledge Engineering. Citeseer, 2004.

[12] Mykola Pechenizkiy, Alexey Tsymbal, Seppo Puuronen och Oleksandr Pechenizkiy. Klassbrus och övervakad inlärning i medicinska domäner: Effekten av extrahering av funktioner. I null, sid. 708–713. IEEE, 2006.

[13] Charlotte Pelletier, Silvia Valero, Jordi Inglada, Nicolas Champion, Claire Marais Sicre och 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.

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

[15] Choh-Man Teng. A comparison of noise handling techniques. I FLAIRS Conference, sid. 269–273, 2001.

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

[17] Xinli Yang, David Lo, Qiao Huang, Xin Xia och Jianling Sun. Automated identification of high impact bug reports leveraging imbalanced learning strategies. I Computer Software and Applications Conference (COMPSAC), 2016 IEEE 40th Annual, volym 1, sid. 227–232. IEEE, 2016.

[18] Deqing Zou, Zhijun Deng, Zhen Li och Hai Jin. Automatically identifying security bug reports via multitype features analysis. I Australasian Conference on Information Security and Privacy, sid. 619–633. Springer, 2018.