Beveiligingsbugrapporten identificeren die uitsluitend zijn gebaseerd op rapporttitels en luidruchtige gegevens

Mayana Pereira

CELA-gegevenswetenschap
Microsoft

Scott Christiansen

Klantbeveiliging en vertrouwen
Microsoft

Samenvatting: Het identificeren van beveiligingsbugrapporten (SBR's) is een belangrijke stap in de levenscyclus van de softwareontwikkeling. In gecontroleerde benaderingen voor machine learning is het gebruikelijk om ervan uit te gaan dat hele bugrapporten beschikbaar zijn voor training en dat hun etiketten ruisvrij zijn. Voor het beste van ons weten is dit de eerste studie om aan te tonen dat nauwkeurige labelvoorspelling mogelijk is voor SBR's, zelfs wanneer alleen de titel beschikbaar is en in aanwezigheid van labelruis.

Indexvoorwaarden: Machine Learning, Foutlabeling, Ruis, Beveiligingsfoutrapport, Bug Repositories

I. INLEIDING

Het identificeren van beveiligingsgerelateerde problemen tussen gerapporteerde fouten is een dringende noodzaak voor softwareontwikkelingsteams, omdat dergelijke problemen vragen om snellere oplossingen om te voldoen aan de nalevingsvereisten en om de integriteit van de software en klantgegevens te waarborgen.

Met hulpmiddelen voor machine learning en kunstmatige intelligentie wordt de ontwikkeling van de software sneller, agile en correcter. Verschillende onderzoekers hebben machine learning toegepast op het probleem van het identificeren van beveiligings bugs [2], [7], [8], [18]. In eerdere gepubliceerde onderzoeken is ervan uitgegaan dat het hele bugrapport beschikbaar is voor training en het maken van een machine learning-model. Dit is niet per se het geval. Er zijn situaties waarin het hele foutrapport niet beschikbaar kan worden gesteld. Het foutenrapport kan bijvoorbeeld wachtwoorden bevatten, persoonlijke identificatiegegevens (PII) of andere soorten gevoelige gegevens, een zaak waar Microsoft momenteel mee te maken krijgt. Het is daarom belangrijk om vast te stellen hoe goed beveiligingsbug-identificatie kan worden uitgevoerd met minder informatie, bijvoorbeeld wanneer alleen de titel van het bugrapport beschikbaar is.

Daarnaast bevatten bugrepresitories vaak onjuist gelabelde vermeldingen [7]: niet-beveiligingsfoutenrapporten die zijn geclassificeerd als beveiligingsgerelateerde en omgekeerd. Er zijn verschillende redenen voor het optreden van verkeerd labeling, variërend van het gebrek aan expertise van het ontwikkelteam op het gebied van beveiliging tot de onduidelijkheid van bepaalde problemen, bijvoorbeeld dat niet-beveiligingsproblemen op een indirecte manier kunnen worden misbruikt om een beveiligingsrisico te veroorzaken. Dit is een ernstig probleem omdat het verkeerd labelen van SBR's er toe leidt dat beveiligingsexperts de bugdatabase handmatig moeten controleren in een dure en tijdrovende inspanning. Inzicht in de invloed van ruis op verschillende classificaties en hoe krachtig (of kwetsbaar) verschillende machine learning-technieken zijn in de aanwezigheid van gegevenssets die zijn verontreinigd met verschillende soorten ruis, is een probleem dat moet worden opgelost om automatische classificatie in de praktijk van software-engineering te brengen.

Voorlopig werk voert aan dat bug repositories intrinsiek luidruchtig zijn en dat het geluid een nadelig effect kan hebben op de classificaties voor performance machine learning [7]. Er ontbreekt echter een systematisch en kwantitatief onderzoek naar de invloed van verschillende niveaus en typen ruis op de prestaties van verschillende gecontroleerde machine learning-algoritmen voor het probleem van het identificeren van beveiligingsprobleemrapporten (SRBs).

In deze studie laten we zien dat de classificatie van foutrapporten kan worden uitgevoerd, zelfs wanneer alleen de titel beschikbaar is voor training en score. Voor het beste van ons weten is dit het eerste werk dat dit doet. Daarnaast bieden we de eerste systematische studie van het effect van ruis in de classificatie van foutenrapport. We maken een vergelijkende studie van de robuustheid van drie machine learning-technieken (logistieke regressie, naïeve Bayes en AdaBoost) tegen klasonafhankelijke ruis.

Hoewel er enkele analytische modellen zijn die de algemene invloed van ruis vastleggen voor een paar eenvoudige classificaties [5], [6], bieden deze resultaten geen strakke grenzen aan het effect van het geluid op precisie en zijn ze alleen geldig voor een bepaalde machine learning-techniek. Een nauwkeurige analyse van het effect van ruis in machine learning-modellen wordt meestal uitgevoerd door berekeningen uit te voeren. Dergelijke analyses zijn uitgevoerd voor verschillende scenario's, variërend van softwaremeetgegevens [4] tot classificatie van satellietafbeeldingen [13] en medische gegevens [12]. Deze resultaten kunnen echter niet worden vertaald naar ons specifieke probleem, vanwege de grote afhankelijkheid van de aard van de gegevenssets en het onderliggende classificatieprobleem. Voor de beste weten zijn er geen gepubliceerde resultaten over het probleem van het effect van luidruchtige gegevenssets op de classificatie van beveiligingsprobleemrapportages in het bijzonder.

ONZE ONDERZOEKSBIJDRAGEN:

  • We trainen classificaties voor het identificeren van beveiligingsbugrapporten (SBR's) op basis van de titel van de rapporten. Voor het beste van ons weten is dit het eerste werk dat dit doet. Vorige werken hebben het volledige foutenrapport gebruikt of het foutenrapport verbeterd met aanvullende aanvullende functies. Het classificeren van fouten die uitsluitend op de tegel zijn gebaseerd, is met name relevant wanneer de volledige foutenrapporten niet beschikbaar kunnen worden gesteld vanwege privacyproblemen. Het is bijvoorbeeld berucht om foutrapporten die wachtwoorden en andere gevoelige gegevens bevatten.

  • We bieden ook de eerste systematische studie van het label noise-tolerantie van verschillende machine learning-modellen en technieken die worden gebruikt voor de automatische classificatie van SBRs. We maken een vergelijkende studie van de robuustheid van drie verschillende machine learning-technieken (logistieke regressie, naïeve Bayes en AdaBoost) tegen klasafhankelijke en klasonafhankelijke ruis.

De rest van het papier wordt als volgt weergegeven: In sectie II presenteren we enkele van de vorige werken in de literatuur. In sectie III beschrijven we de gegevensset en hoe gegevens vooraf worden verwerkt. De methodologie wordt beschreven in sectie IV en de resultaten van onze experimenten die zijn geanalyseerd in sectie V. Tot slot worden onze conclusies en toekomstige werken weergegeven in VI.

II. VORIGE WERKEN

MACHINE LEARNING-TOEPASSINGEN VOOR BUG REPOSITORIES.

Er bestaat uitgebreide informatie over het toepassen van tekstmining, natuurlijke taalverwerking en machine learning op bugrepresitories in een poging om moeizame taken, zoals detectie van beveiligingsfouten [2], [7], [8], [18], fout dubbele identificatie [3], bug triage [1], [11] te automatiseren om een paar toepassingen te noemen. Het is ideaal dat het samenbrengen van machine learning (ML) en natuurlijke taalverwerking mogelijk het handmatige werk vermindert dat nodig is om bugdatabases te beheren, de benodigde tijd voor het uitvoeren van deze taken te verkorten en de betrouwbaarheid van de resultaten kan vergroten.

In [7] stellen de auteurs een natuurlijk taalmodel voor om de classificatie van SBR's te automatiseren op basis van de beschrijving van de bug. De auteurs halen een woordenlijst op uit alle foutbeschrijvingen in de trainingsgegevensset en ranglijsten deze handmatig in drie lijsten met woorden: relevante woorden, stopwoorden (veelgebruikte woorden die niet relevant lijken voor classificatie) en synoniemen. Ze vergelijken de prestaties van beveiligingsbugclassifier die is opgeleid op gegevens die allemaal worden geëvalueerd door beveiligingstechnici, en een classificatie die is opgeleid op gegevens die zijn gelabeld door bugverslaggevers in het algemeen. Hoewel hun model duidelijk effectiever is wanneer ze zijn opgeleid op gegevens die door beveiligingstechnici worden gecontroleerd, is het voorgestelde model gebaseerd op een handmatig afgeleide vocabulaire, waardoor het afhankelijk is van de menselijke curatie. Bovendien wordt niet geanalyseerd hoe verschillende niveaus van ruis van invloed zijn op hun model, hoe verschillende classificaties reageren op ruis en of ruis in beide klassen de prestaties anders beïnvloedt.

Zou et. al [18] maakt gebruik van meerdere typen informatie in een foutenrapport, die betrekking hebben op de niet-tekstuele velden van een bugrapport (metafuncties, bijvoorbeeld tijd, ernst en prioriteit) en de tekstuele inhoud van een foutrapport (tekstuele functies, dat wil zeggen de tekst in samenvattingsvelden). Op basis van deze functies bouwen ze een model om de SBR's automatisch te identificeren via natuurlijke taalverwerkings- en machine learning-technieken. In [8] voeren de auteurs een soortgelijke analyse uit, maar vergelijken ze ook de prestaties van gecontroleerde en niet-gecontroleerde machine learning-technieken en bestuderen ze hoeveel gegevens nodig zijn om hun modellen te trainen.

In [2] verkennen de auteurs ook verschillende technieken voor machine learning om bugs te classificeren als SBRs of NSBRs (Non-Security Bug Report) op basis van hun beschrijvingen. Ze stellen een pijplijn voor voor gegevensverwerking en modeltraining op basis van TFIDF. Ze vergelijken de voorgestelde pijplijn met een model op basis van woordentas en naïeve Bayes. Wijayasekara et al. [16] heeft ook technieken voor tekstmining gebruikt om de functievector van elk bugrapport te genereren op basis van veelgebruikte woorden om Hidden Impact Bugs (HIBs) te identificeren. Yang et al. [17] claimde met behulp van Term Frequency (TF) en naïeve Bayes hoge impact bug reports (b.v. SBRs) te identificeren. In [9] stellen de auteurs een model voor om de ernst van een fout te voorspellen.

LABELRUIS

Het probleem van het omgaan met gegevenssets met labelruis is uitgebreid onderzocht. Frenay en Verleysen stellen in [6] een labelruis taxonomie voor om verschillende typen luidruchtige etiketten te onderscheiden. De auteurs stellen drie verschillende soorten ruis voor: labelruis die onafhankelijk van de werkelijke klasse en van de waarden van de instantiefuncties voorkomt; labelruis die alleen afhankelijk is van het echte label; en labelruis waarbij de kans op verkeerd labelen ook afhankelijk is van de functiewaarden. In ons werk bestuderen we de eerste twee soorten ruis. Vanuit een theoretisch perspectief vermindert labelruis meestal de prestaties van een model [10], behalve in bepaalde specifieke gevallen [14]. Over het algemeen zijn krachtige methoden afhankelijk van overbelasting voor het verwerken van labelruis [15]. De bestudeering van geluidseffecten in classificatie is al eerder uitgevoerd op veel gebieden, zoals classificatie van satellietafbeeldingen [13], classificatie van softwarekwaliteit [4] en classificatie van medisch domein [12]. Voor de beste weten zijn er geen gepubliceerde werken die de exacte kwantificering bestuderen van de effecten van luidruchtige etiketten in het probleem van SBRs-classificatie. In dit scenario is de exacte relatie tussen geluidsniveaus, geluidstypen en prestatiedegradatie niet tot stand gebracht. Bovendien is het de moeite waard om te begrijpen hoe verschillende classificaties zich gedragen in aanwezigheid van ruis. Meer in het algemeen zijn we niet op de hoogte van het werk dat systematisch het effect van luidruchtige gegevenssets bestudeert op de prestaties van verschillende machine learning-algoritmen in de context van softwarebugrapporten.

III. BESCHRIJVING VAN GEGEVENSSET

Onze gegevensset bestaat uit 1.073.149 bugtitels, waarvan 552.073 overeenkomen met SBR's en 521.076 naar NSBR's. De gegevens zijn verzameld van verschillende teams in Microsoft in de jaren 2015, 2016, 2017 en 2018. Alle etiketten zijn verkregen door op handtekeningen gebaseerde systemen voor foutverificatie of met een menselijk label. Bugtitels in onze gegevensset zijn zeer korte teksten, die ongeveer 10 woorden bevatten, met een overzicht van het probleem.

A. Gegevens vooraf verwerken We parseren elke bugtitel op de lege spaties, wat resulteert in een lijst met tokens. Elke lijst met tokens wordt als volgt verwerkt:

  • Alle tokens verwijderen die bestandspaden zijn

  • Tokens splitsen waarin de volgende symbolen aanwezig zijn: { , (, ), -, }, {, [, ], }

  • Verwijder stopwoorden , tokens die alleen zijn samengesteld door numerieke tekens en tokens die minder dan 5 keer in het hele lichaam worden weergegeven.

IV. METHODOLOGIE

Het trainingsproces van onze machine learning-modellen bestaat uit twee belangrijke stappen: het coderen van de gegevens in functievectoren en training onder toezicht van machine learning classifiers.

A. Functievectoren en Machine Learning technieken

Het eerste deel bestaat uit het coderen van gegevens in functievectoren met de term frequencyinverse document frequency algorithm (TF-IDF), zoals gebruikt in [2]. TF-IDF is een techniek voor het ophalen van informatie die een termenfrequentie (TF) en de inverse documentfrequentie (IDF) weegt. Elk woord of term heeft de respectievelijke TF- en IDF-score. Het TF-IDF-algoritme wijst het belang van dat woord toe op basis van het aantal keren dat het in het document wordt weergegeven. Belangrijker is dat wordt gecontroleerd hoe relevant het trefwoord is tijdens het verzamelen van titels in de gegevensset. We hebben drie classificatietechnieken getraind en vergeleken: naïeve Bayes (NB), stimulerende beslissingsbomen (AdaBoost) en logistieke regressie (LR). We hebben deze technieken gekozen omdat ze goed zijn weergegeven voor de gerelateerde taak om beveiligingsbugrapporten te identificeren op basis van het hele rapport in de literatuur. Deze resultaten zijn bevestigd in een voorlopige analyse waarbij deze drie classificaties beter presteerden dan ondersteuningsvectoren en willekeurige bossen. In onze experimenten maken we gebruik van de scikit-learn-bibliotheek voor codering en modeltraining.

B. Typen ruis

Het geluid dat in dit werk wordt onderzocht, verwijst naar ruis in het klaslabel in de trainingsgegevens. In de aanwezigheid van dergelijke ruis worden het leerproces en het resulterende model beïnvloed door verkeerd gelabelde voorbeelden. We analyseren de impact van verschillende geluidsniveaus die worden toegepast op de klasgegevens. Typen labelruis zijn eerder besproken in de literatuur met behulp van verschillende terminologieën. In ons werk analyseren we de effecten van twee verschillende labelruis in onze classificaties: klasse-onafhankelijke labelruis, die wordt geïntroduceerd door willekeurige exemplaren te kiezen en hun label te spiegelen; en klasafhankelijke ruis, waarbij klassen verschillende waarschijnlijkheid hebben om luidruchtig te zijn.

a) Klasse-onafhankelijk geluid:klasse-onafhankelijk geluid verwijst naar het geluid dat onafhankelijk van de werkelijke klasse van de exemplaren optreedt. In dit type ruis is de kans op foute labeling van pbr hetzelfde voor alle exemplaren in de gegevensset. We introduceren klasafhankelijke ruis in onze gegevenssets door elk label in onze gegevensset willekeurig te spiegelen met kans pbr.

b) Klasseafhankelijke ruis:geluid dat afhankelijk is van de klas verwijst naar het geluid dat afhankelijk is van de werkelijke klasse van de exemplaren. In dit type ruis is de kans op foute labeling in klasse SBR psbr en de kans op foute labeling in klasse NSBR is pnsbr. We introduceren klasafhankelijke ruis in onze gegevensset door elke vermelding in de gegevensset te spiegelen waarvoor het ware label SBR met kans psbr is. Op dezelfde plaats spiegelen we het klaslabel van NSBR-exemplaren met kans pnsbr.

c) Geluid vanéén klas: geluid van één klas is een speciaal geval van klassenafhankelijk geluid, waarbij pnsbr = 0 en psbr 0. Let op: voor klasse-onafhankelijk geluid hebben we psbr = pnsbr = pbr.

C. Ruis genereren

Onze experimenten onderzoeken de impact van verschillende geluidstypen en niveaus in de training van SBR-classificaties. In onze experimenten hebben we 25% van de gegevensset ingesteld als testgegevens, 10% als validatie en 65% als trainingsgegevens.

We voegen ruis toe aan de trainings- en validatiegegevenssets voor verschillende niveaus van pbr,psbr en pnsbr. We brengen geen wijzigingen aan in de testgegevensset. De verschillende gebruikte geluidsniveaus zijn P = {0,05 × i|0 < i < 10}.

In klas-onafhankelijke geluidsexperimenten, voor pbr ∈ P doen we het volgende:

  • Ruis genereren voor trainings- en validatiegegevenssets;

  • Train logistieke regressie, naïeve Bayes en AdaBoost-modellen met behulp van trainingsgegevensset (met ruis); * Modellen afstemmen met behulp van validatiegegevensset (met ruis);

  • Testmodellen met behulp van testgegevensset (ruisloos).

In klasafhankelijke geluidsexperimenten, voor psbr ∈ P en pnsbr ∈ P, doen we het volgende voor alle combinaties van psbr en pnsbr:

  • Ruis genereren voor trainings- en validatiegegevenssets;

  • Train logistieke regressie, naïeve Bayes en AdaBoost-modellen met behulp van trainingsgegevensset (met ruis);

  • Modellen afstemmen met behulp van validatiegegevensset (met ruis);

  • Testmodellen met behulp van testgegevensset (ruisloos).

V. EXPERIMENTELE RESULTATEN

Analyseer in deze sectie de resultaten van experimenten die worden uitgevoerd volgens de methodologie die wordt beschreven in sectie IV.

a)Modelprestaties zonder ruis in de trainingsgegevensset: Een van de bijdragen van dit artikel is het voorstel van een machine learning-model om beveiligingsbugs te identificeren door alleen de titel van de bug te gebruiken als gegevens voor het maken van beslissingen. Hierdoor wordt de training van machine learning-modellen mogelijk, zelfs wanneer ontwikkelteams geen foutenrapporten volledig willen delen vanwege de aanwezigheid van gevoelige gegevens. We vergelijken de prestaties van drie machine learning-modellen wanneer ze worden opgeleid met alleen bugtitels.

Het logistische regressiemodel is de best presterende classificatie. Het is de classificatie met de hoogste AUC-waarde, van 0,9826, inroeping van 0,9353 voor een FPR-waarde van 0,0735. De naïeve Bayes Classifier presenteert iets lagere prestaties dan de logistische regressie classifier, met een AUC van 0,9779 en een terugroepactie van 0,9189 voor een FPR van 0,0769. De AdaBoost-classificatie heeft een inferieure prestaties ten opzichte van de twee eerder genoemde classificaties. Het haalt een AUC van 0,9143 en een recall van 0,7018 voor een 0,0774 FPR. Het gebied onder de ROC-curve (AUC) is een goede metrische waarde voor het vergelijken van de prestaties van verschillende modellen, omdat het samenvattend is in één waarde de TPR-relatie versus FPR-relatie. In de volgende analyse beperken we onze vergelijkende analyse tot AUC-waarden.

Tabel I

A. Klasgeluid: één klas

U kunt zich een scenario voorstellen waarbij alle bugs standaard aan klasse NSBR zijn toegewezen en een fout alleen wordt toegewezen aan klas-SBR als er een beveiligingsexpert is die de bugopslagplaats controleert. Dit scenario wordt weergegeven in de experimentele instelling voor één klas, waarbij we ervan uitgaan dat pnsbr = 0 en 0 psbr 0,5.

Tabel II

Uit tabel II zien we een zeer klein effect in het AUC voor alle drie classificaties. De AUC-ROC van een model dat is opgeleid op psbr = 0 in vergelijking met een AUC-ROC van model waarbij psbr = 0,25 verschilt met 0,003 voor logistieke regressie, 0,006 voor naïeve Bayes en 0,006 voor AdaBoost. In het geval van psbr = 0,50 verschilt de AUC die voor elk van de modellen wordt gemeten van het model dat is opgeleid met psbr = 0 bij 0,007 voor logistieke regressie, 0,011 voor naïeve Bayes en 0,010 voor AdaBoost. de logistische regressieclassifier die is opgeleid in aanwezigheid van ruis in één klas, geeft de kleinste variatie weer in de AUC-metrische, dat wil zeggen een krachtiger gedrag, vergeleken met onze naïeve Bayes- en AdaBoost-classificaties.

B. Klasgeluid: klasse-onafhankelijk

We vergelijken de prestaties van onze drie classificaties voor het geval dat de trainingsset beschadigd is door een klasse-onafhankelijk geluid. We meten de AUC voor elk model dat is opgeleid met verschillende niveaus van pbr in de trainingsgegevens.

Tabel III

In tabel III zien we een afname van de AUC-ROC voor elke geluidsincidenten in het experiment. De AUC-ROC die is gemeten op basis van een model dat is opgeleid op ruisloze gegevens in vergelijking met een AUC-ROC van model dat is opgeleid met klasseonafhankelijk geluid met pbr = 0,25, verschilt met 0,011 voor logistieke regressie, 0,008 voor naïeve Bayes en 0,0038 voor AdaBoost. We zien dat labelruis geen invloed heeft op de AUC van naïeve Bayes en AdaBoost-classificaties wanneer het geluidsniveau lager is dan 40%. Aan de andere kant heeft de logistische regressie classifier een impact in AUC-meting voor labelruisniveaus boven 30%.

AUC

Fig. 1. Variatie van AUC-ROC in klasse-onafhankelijk geluid. Voor een ruisniveau pbr =0,5 werkt de classificatie als een willekeurige classificatie, dat wil zeggen AUC≈0,5. We kunnen echter zien dat voor lagere geluidsniveaus (pbr ≤0,30) de regressie-regressie-leerling betere prestaties biedt dan de andere twee modellen. Voor 0,35≤ pbr ≤0,45 naïeve Bayes-leerling worden echter betere AUCROC-meetwaarden gebruikt.

C. Klasgeluid: klasafhankelijk

In de laatste reeks experimenten wordt rekening houden met een scenario waarbij verschillende klassen verschillende geluidsniveaus bevatten, dat wil zeggen psbr ≠ pnsbr. We verhogen systematisch psbr en pnsbr onafhankelijk van elkaar met 0,05 in de trainingsgegevens en zien de wijziging in het gedrag van de drie classificaties.

Logistische RegressieNaive BayesAdaBoost

Tabellen IV, V, VI tonen de variatie van AUC als ruis in verschillende niveaus in elke klas wordt verhoogd voor logistieke regressie in tabel IV, voor naïeve Bayes in tabel V en voor AdaBoost in tabel VI. Voor alle classificaties zien we een impact in de AUC-metrische classificatie wanneer beide klassen een geluidsniveau van meer dan 30% bevatten. naïeve Bayes gedraagt zich krachtig. De invloed op AUC is erg klein, zelfs wanneer de 50% van het label in de positieve klasse wordt omgedraaid, mits de negatieve klasse 30% van de luidruchtige etiketten of minder bevat. In dit geval is de daling van AUC 0,03. AdaBoost heeft het meest krachtige gedrag van alle drie classificaties gepresenteerd. Een significante wijziging in AUC vindt alleen plaats voor geluidsniveaus van meer dan 45% in beide klassen. In dat geval zien we een AUC-verval groter dan 0,02.

D. Op De aanwezigheid van restgeluid in de oorspronkelijke gegevensset

Onze gegevensset is gelabeld door op handtekeningen gebaseerde geautomatiseerde systemen en door menselijke experts. Bovendien zijn alle foutenrapporten verder bekeken en gesloten door menselijke experts. Hoewel we verwachten dat de hoeveelheid ruis in onze gegevensset minimaal is en niet statistisch significant, worden onze conclusies niet ongeldig door de aanwezigheid van restgeluid. Neem ter illustratie aan dat de oorspronkelijke gegevensset beschadigd is door een onafhankelijk geluid dat gelijk is aan 0 p 1/2 onafhankelijk en identiek verdeeld << (i.i.d) voor elke vermelding.

Als we boven het oorspronkelijke geluid een klasse-onafhankelijk geluid toevoegen met kans pbr i.i.d, is het resulterende geluid per invoer p∗ = p(1 − pbr )+(1 − p)pbr . Voor 0 < p,p<< 1/2 hebben we dat het werkelijke geluid per label p∗ strikt groter is dan het geluid dat we kunstmatig toevoegen aan de gegevensset p< . De prestaties van onze classificaties zijn dus nog beter als ze in de eerste plaats zijn opgeleid met een volledig ruisloze gegevensset (p = 0). Samengevat betekent het bestaan van restgeluid in de werkelijke gegevensset dat de tolerantie tegen ruis van onze classificaties beter is dan de resultaten die hier worden gepresenteerd. Als het restgeluid in onze gegevensset statistisch relevant was, zou de AUC van onze classificaties bovendien 0,5 (een willekeurige gok) worden voor een geluidsniveau dat strikt lager is dan 0,5. We zien dergelijk gedrag niet in onze resultaten.

VI. CONCLUSIES EN TOEKOMSTIGE WERKEN

Onze bijdrage in dit artikel is tweeledig.

In de eerste plaats hebben we de haalbaarheid van de classificatie van beveiligingsbugrapports getoond op basis van de titel van het bugrapport. Dit is met name relevant in scenario's waarin het hele foutenrapport niet beschikbaar is vanwege privacybeperkingen. In ons geval bevatten de foutenrapporten bijvoorbeeld persoonlijke informatie, zoals wachtwoorden en cryptografische sleutels, en waren ze niet beschikbaar voor het trainen van de classificaties. Ons resultaat laat zien dat SBR-identificatie met hoge nauwkeurigheid kan worden uitgevoerd, zelfs wanneer alleen rapporttitels beschikbaar zijn. Ons classificatiemodel dat gebruikmaakt van een combinatie van TF-IDF en logistieke regressie, wordt uitgevoerd met een AUC van 0,9831.

Ten tweede hebben we het effect van verkeerd gelabelde trainings- en validatiegegevens geanalyseerd. We hebben drie bekende classificatietechnieken voor machine learning (naïeve Bayes, logistieke regressie en AdaBoost) vergeleken met hun robuustheid ten opzichte van verschillende geluidstypen en geluidsniveaus. Alle drie classificaties zijn robuust voor geluid van één klas. Ruis in de trainingsgegevens heeft geen significant effect in de resulterende classificatie. De afname van AUC is zeer klein (0,01) voor een geluidsniveau van 50%. Voor ruis die aanwezig is in beide klassen en klasse-onafhankelijk is, zijn naïeve Bayes en AdaBoost-modellen alleen significante variaties in AUC wanneer ze worden opgeleid met een gegevensset met ruisniveaus van meer dan 40%.

Ten slotte heeft klassenafhankelijke ruis alleen een aanzienlijke invloed op de AUC als er meer dan 35% ruis in beide klassen is. AdaBoost heeft de meest krachtige technologie getoond. De impact in AUC is erg klein, zelfs wanneer de positieve klasse 50% van de etiketten luidruchtig heeft, mits de negatieve klasse 45% van de luidruchtige etiketten of minder bevat. In dit geval is de daling in AUC kleiner dan 0,03. Voor de beste weten is dit de eerste systematische studie naar het effect van luidruchtige gegevenssets voor de identificatie van beveiligingsrisico's.

TOEKOMSTIGE WERKEN

In dit artikel zijn we begonnen met de systematische studie van de effecten van ruis in de prestaties van machine learning classifiers voor het identificeren van beveiligingswantsen. Er zijn verschillende interessante vervolgfilms op dit werk, waaronder: het onderzoeken van het effect van luidruchtige gegevenssets bij het bepalen van de ernst van een beveiligingsbug; inzicht in het effect van onbalans in klassen op de tolerantie van de getrainde modellen tegen ruis; begrijpen van het effect van ruis dat op tegen de achtergrond wordt geïntroduceerd in de gegevensset.

VERWIJZINGEN

[1] John Anvik, Lyndon Hiew en Gail C Murphy. Wie moet dit probleem oplossen? In Proceedings of the 28th international conference on Software engineering, pages 361–370. ACM, 2006.

[2] Diksha Behl, Sahil Handa en Anuja Arora. Een hulpprogramma voor bugmining om beveiligingsbugs te identificeren en te analyseren met behulp van naïeve bayes en tf-idf. In Optimization, Reliabilty, and Information Technology (ICROIT), 2014 International Conference on, pages 294–299. IEEE, 2014.

[3] Nicolas Bettenburg, Rahul Premraj, Thomas Zimmermann en Sunghun Kim. Dubbele foutenrapporten die als schadelijk worden beschouwd? In Softwareonderhoud, 2008. ICSM 2008. Internationale IEEE-conferentie op, pagina's 337-345. IEEE, 2008.

[4] Andres Folleco, Taghi M Khoshgoftaar, Jason Van Hulse en Lofton Bullard. Leerlingen identificeren die robuust zijn tot gegevens van lage kwaliteit. In Information Reuse and Integration, 2008. IRI 2008. IEEE International Conference on, pages 190–195. IEEE, 2008.

[5] Beno€ıt Frenay.' Onzekerheid en labelruis in machine learning. PhD thesis, Catholic University of Louvain, Louvain-la-Neuve, België, 2013.

[6] Beno€ıt Frenay en Michel Verleysen. Classificatie in aanwezigheid van labelruis: een enquête. IEEE-transacties op neurale netwerkenen leersystemen , 25(5):845–869, 2014.

[7] Michael Gegick, Peter Rotella en Tao Xie. Beveiligings bugrapporten identificeren via text mining: Een industriële case study. In Mining software repositories (MSR), 2010 7th IEEE working conference on, pages 11–20. IEEE, 2010.

[8] Katerina Goseva-Popstojanova en Jacob Tyo. Identificatie van beveiligingsgerelateerde foutenrapporten via tekstmining met behulp van gecontroleerde en niet-gecontroleerde classificatie. 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. De ernst van een gerapporteerde fout voorspellen. In Mining Software Repositories (MSR), 2010 7th IEEE Working Conference on, pages 1–10. IEEE, 2010.

[10] Naresh Manwani en PS Sastry. Geluidstolerantie onder risicominimatie. IEEE-transacties op cybernetics, 43(3):1146–1151, 2013.

[11] G Murphy en D Cubranic. Automatische bugtriage met behulp van tekstcategorisatie. In Proceedings of the Sixteenth International Conference on Software Engineering Knowledge Engineering. Citeseer, 2004.

[12] Mykola Pechenizkiy, Alexey Tsymbal, Seppo Puuronen en Oleksandr Pechenizkiy. Klasgeluid en begeleid leren in medische domeinen: het effect van functieextractie. In null, pagina's 708–713. IEEE, 2006.

[13] Charlotte Pelletier, Silvia Valero, Jordi Inglada, Nicolas Champion, Claire Marais Sicre en Gerard Dedieu.' Effect of training class label noise on classification performance for land cover mapping with satellite image time series. Teledetectie, 9(2):173, 2017.

[14] PS Sastry, GD Nagendra en Naresh Manwani. Een team van continuaction learning automata voor ruis tolerant leren van halve ruimten. IEEE Transactions on Systems, Man, and Cybernetics, Part B (Cybernetics),40(1):19–28, 2010.

[15] Choh-Man Teng. Een vergelijking van technieken voor geluidsafhandeling. In FLAIRS-conferentie, pagina's 269-273, 2001.

[16] Dumidu Wijayasekara, Milos Manic en Miles McQueen. Kwetsbaarheidsidentificatie en -classificatie via text mining bugdatabases. 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. Automatische identificatie van rapporten met een hoge impact die gebruikmaken van onbalans in leerstrategieën. In Computer Software and Applications Conference (COMPSAC), 2016 IEEE 40th Annual, volume 1, pages 227–232. IEEE, 2016.

[18] Deqing Zou, Zhijun Deng, Zhen Li en Hai Jin. Beveiligingsfoutrapporten automatisch identificeren via analyse van multitypefuncties. Pagina's 619–633 in de Australasian Conference on Information Security and Privacy. Springer, 2018.