Beveiligingsfoutrapporten identificeren op basis van rapporttitels en ruisgegevens

Mayana Analytics Scott Christiansen
CELA data science Klantbeveiliging en -vertrouwen
Microsoft Microsoft

Abstract: het identificeren van beveiligingsfoutrapporten (SBR's) is een belangrijke stap in de levenscyclus van softwareontwikkeling. 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. 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.

Indexbegrippen: machine learning, foutief labelen, ruis, beveiligingsfoutrapport en foutenarchieven

i. INLEIDING

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.

Machine learning en hulpprogramma's voor kunstmatige intelligentie beloven de softwareontwikkeling sneller, flexibel en juist te maken. 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. Dit is niet noodzakelijkerwijs het geval. Er bestaan situaties waarin het volledige foutenrapport niet beschikbaar kan worden gemaakt. 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. 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.

Daarnaast bevatten foutarchieven vaak verkeerd gelabelde vermeldingen [7]: niet-beveiligingsfoutrapporten die zijn geclassificeerd als beveiligingsgerelateerd en andersom. 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. 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. 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.

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]. 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).

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. Voor zover wij weten is dit het allereerste werk dat dit doet. Daarnaast bieden we het eerste systematische onderzoek naar het effect van ruis op de classificatie van foutrapporten. We doen een vergelijkend onderzoek naar de robuustheid van drie machine learning-technieken (logistieke regressie, Naïve Bayes en AdaBoost) tegen klasse-onafhankelijke ruis.

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. Een nauwkeurige analyse van het effect van ruis in modellen voor machine learning wordt meestal gedaan door computationele experimenten uit te voeren. Dergelijke analyses zijn uitgevoerd voor verschillende scenario's, variërend van softwaremeetgegevens [4] tot satellietbeeldclassificatie [13] en medische gegevens [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. 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.

ONZE ONDERZOEKSBIJDRAGEN:

  • We trainen classificatiedeskundigen voor het identificeren van beveiligingsfoutrapporten (SBR's) die uitsluitend zijn gebaseerd op de titel van de rapporten. Voor zover wij weten is dit het eerste werk dat dit doet. Eerdere werken gebruikten ofwel het volledige foutrapport of verbeterden het foutrapport met aanvullende functies. Het classificeren van fouten uitsluitend gebaseerd op de tegel, is met name relevant wanneer de volledige foutrapporten niet beschikbaar kunnen worden gemaakt vanwege privacyredenen. Er is bijvoorbeeld een geval bekend van foutrapporten die wachtwoorden en andere gevoelige gegevens bevatten.

  • 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 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.

De rest van het document wordt als volgt gepresenteerd: in sectie II presenteren we enkele van de vorige werken in de literatuur. In deel III beschrijven we de gegevensset en hoe gegevens vooraf worden verwerkt. 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.

II. EERDERE WERKEN

MACHINE LEARNING-TOEPASSINGEN VOOR FOUTARCHIEVEN.

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. 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.

In [7] stellen de auteurs een natuurlijk taalmodel voor om de classificatie van SBR's te automatiseren op basis van de foutbeschrijving. 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. 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. 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. 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.

Zou et. al [18] maken gebruik van meerdere soorten informatie in een foutrapport waarbij de niet-tekstuele velden van een bugrapport worden betrokken (metafuncties, bijvoorbeeld tijd, ernst en prioriteit) en de tekstuele inhoud van een foutrapport (tekstuele functies, de tekst in samenvattingsvelden). Op basis van deze functies wordt een model gebouwd om de SBR's automatisch te identificeren via natuurlijke taalverwerking en machine learning-technieken. 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 [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. Ze stellen een pijplijn voor gegevensverwerking en modeltraining voor op basis van TFIDF. Ze vergelijken de voorgestelde pijplijn met een model op basis van bag-of-words en Naïve 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. Yang et al. [17] beweerde met behulp van Term Frequency (TF) en Naïve Bayes foutrapporten met hoge impact (bijv. SBR's) 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 bestudeerd. Frenay en Verleysen stellen in [6] een taxonomie voor labelruis voor om verschillende soorten labels met ruis te onderscheiden. 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. In ons werk bestuderen we de eerste twee typen ruis. Vanuit een theoretisch oogpunt vermindert labelruis normaal gesproken de prestatie van een model [10], behalve in enkele specifieke gevallen [14]. Over het algemeen zijn robuuste methoden afhankelijk van het vermijden van overfitting om labelruis te verwerken [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]. 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. In dit scenario is de precieze relatie tussen de niveaus van ruis, de ruistypen en prestatievermindering niet vastgesteld. Bovendien is het de moeite waard om te begrijpen hoe verschillende classificaties zich gedragen als er ruis aanwezig is. 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.

III. BESCHRIJVING VAN GEGEVENSSET

Onze gegevensset bestaat uit 1.073.149 fouttitels, waarvan er 552.073 overeenkomen met SBR's en 521.076 met NSBR's. De gegevens zijn verzameld van verschillende teams binnen Microsoft in de jaren 2015, 2016, 2017 en 2018. Alle labels zijn verkregen door op handtekeningen gebaseerde foutverificatiesystemen of doordat ze door mensen zijn gelabeld. Fouttitels in onze gegevensset zijn zeer korte teksten van ongeveer 10 woorden die een overzicht van het probleem geven.

A. Het vooraf verwerken van gegevens. We ontleden elke fouttitel aan de hand van de lege ruimtes, wat resulteert in een lijst met tokens. We verwerken elke lijst met tokens als volgt:

  • Verwijder alle tokens die bestandspaden weergeven

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

  • Verwijder stopwoorden, tokens die alleen zijn samengesteld uit numerieke tekens en tokens die minder dan 5 keer voorkomen in het hele corpus.

IV. METHODOLOGIE

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.

A. Functievectoren en machine learning-technieken

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]. TF-IDF is een techniek voor het ophalen van informatie die een begrippenfrequentie (TF) en zijn inverse documentfrequentie (IDF) weegt. Elk woord of elke term heeft zijn respectievelijke TF- en 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. We hebben drie classificatietechnieken getraind en vergeleken: Naïve Bayes (NB), versterkte beslissingsstructuren (AdaBoost) en logistische regressie (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. Deze resultaten werden bevestigd in een voorlopige analyse waarin deze drie classificaties het beter deden dan ondersteunende vectormachines en willekeurige forests. In onze experimenten gebruiken we de scikit-learn-bibliotheek voor codering en modeltraining.

B. Soorten ruis

De in dit werk bestudeerde ruis verwijst naar de ruis in het klassenlabel in de trainingsgegevens. Als er dergelijke ruis aanwezig is, worden het leerproces en het daaruit voortkomende model als gevolg daarvan belemmerd door verkeerd gelabelde voorbeelden. We analyseren de impact van verschillende niveaus van ruis die worden toegepast op de klasse-informatie. De soorten labelruis zijn eerder in de literatuur besproken met behulp van verschillende terminologieën. 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.

a) Klasse-onafhankelijke ruis: klasse-onafhankelijke ruis verwijst naar de ruis die onafhankelijk van de werkelijke klasse van de instanties plaatsvindt. Bij dit type ruis is de waarschijnlijkheid pBR op het verkeerd labelen voor alle exemplaren in de gegevensset hetzelfde. We introduceren klasse-onafhankelijke ruis in onze gegevenssets door elk label in onze gegevensset willekeurig te spiegelen met waarschijnlijkheid pBR.

b) Klasseafhankelijke ruis: Klasseafhankelijke ruis verwijst naar de ruis die afhankelijk is van de werkelijke klasse van de exemplaren. 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. 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. Op dezelfde wijze spiegelen we het klasselabel van NSBR-exemplaren met waarschijnlijkheid pnsbr.

c) Single class noise: Single-class noise is een speciaal geval van klasse-afhankelijke ruis, waarbij pnsbr = 0 en psbr> 0. Houd er rekening mee dat we voor klasse-afhankelijke ruis psbr = pnsbr = pbr gebruiken.

C. Het genereren van ruis

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

We voegen ruis toe aan de gegevenssets voor training en validatie voor verschillende niveaus van pBR, pSBR en pNSBR. We brengen geen wijzigingen aan in de testgegevensset. De verschillende gebruikte ruisniveaus zijn P = {0,05 × i|0 < i < 10}.

Bij experimenten met klasse-onafhankelijke ruis voor pBR ∈ P doen we het volgende:

  • Ruis genereren voor training en validatie van gegevenssets;

  • 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);

  • Modellen testen met behulp van een testgegevensset (zonder ruis).

Bij experimenten met klasse-afhankelijke ruis voor pSBR ∈ P en pnsbr ∈ P doen we voor alle combinaties van pSBR en pnsbr het volgende:

  • Ruis genereren voor training en validatie van gegevenssets;

  • 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);

  • Modellen testen met behulp van een testgegevensset (zonder ruis).

V. EXPERIMENTELE RESULTATEN

In deze sectie worden de resultaten geanalyseerd van experimenten die worden uitgevoerd volgens de methodologie die in sectie IV is beschreven.

a) Modelprestaties zonder ruis in de trainingsgegevensset: Een van de bijdragen van dit document is het voorstel van een machine learning-model om beveiligingsfouten te identificeren door alleen de titel van de bug te gebruiken als gegevens voor besluitvorming. Dit maakt de training van machine learning-modellen mogelijk, zelfs als ontwikkelteams vanwege de aanwezigheid van gevoelige gegevens niet de volledige foutrapporten willen delen. We vergelijken de prestaties van drie modellen voor machine learning wanneer ze zijn getraind door alleen fouttitels te gebruiken.

Het logistische regressiemodel is de best presterende classificatie. 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. 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. De AdaBoost-classificatie presteert inferieur in vergelijking met de twee eerder genoemde classificaties. Deze behaalt een AUC van 0,9143 en een relevante overeenkomst van 0,7018 voor een FPR van 0,0774. Het gebied onder de ROC-curve (AUC) is een goede meetwaarde voor het vergelijken van de prestaties van verschillende modellen, zoals deze samenvat in één waarde de TPR versus FPR-relatie. In de daaropvolgende analyse beperken we onze vergelijkende analyse beperken tot de AUC-waarden.

Tabel I

A. Klasse ruis: één klasse

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. Dit scenario wordt weergegeven in de experimentele instelling van één klasse, waarbij we ervan uitgaan dat pnsbr = 0 en 0 < psbr< 0,5.

Tabel II

Tabel II toont ons een zeer kleine impact op de AUC voor alle drie de classificaties. 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. 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. 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.

B. Klasse ruis: klasse-onafhankelijk

We vergelijken de prestatie van onze drie classificaties voor de case waarbij de trainingsset is beschadigd door een klasse-onafhankelijke ruis. We meten de AUC voor elk model dat is getraind met verschillende niveaus van pBR in de trainingsgegevens.

Tabel III

Tabel III toont ons een vermindering van de AUC-ROC voor elke toename van ruis in het 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. 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%. Daarentegen ervaart de logistische regressie-classificatie een impact op de AUC-meting bij een labelruisniveau van meer dan 30%.

AUC-variatie

Fig. 1. Variatie van AUC-ROC in klasse-onafhankelijke ruis. Voor een ruisniveau pbr = 0,5 de classificatie fungeert als een willekeurige classificatie, d.w.z. 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). Echter, bij een waarde van 0,35 ≤ pBR ≤ 0,45 laat Naïve Bayes betere metrische gegevens voor AUC-ROC zien.

C. Klasse ruis: klasse-afhankelijk

In de laatste reeks experimenten beschouwen we een scenario waarin verschillende klassen verschillende ruisniveaus bevatten, d.w.z. 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.

Logistic RegressionNaive BayesAdaBoost

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. 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. Naïve Bayes gedraagt ​​zich robuust. 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. In dit geval is de daling van de AUC 0,03. AdaBoost heeft het meest robuuste gedrag van alle drie de classificaties laten zien. Een significante verandering in de AUC vindt in beide klassen alleen plaats voor niveaus van ruis van meer dan 45%. In dat geval beginnen we een AUC-verval van meer dan 0,02 waar te nemen.

D. Over de aanwezigheid van restruis in de oorspronkelijke gegevensset

Onze gegevensset is gelabeld door op handtekeningen gebaseerde geautomatiseerde systemen en door menselijke deskundigen. Bovendien zijn alle foutrapporten verder beoordeeld en afgesloten door menselijke deskundigen. 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. In het belang van illustratie wordt er inderdaad van uitgegaan dat de oorspronkelijke gegevensset is beschadigd door een klasse-onafhankelijke ruis die gelijk is aan 0 < p < 1/2 onafhankelijk en identiek verdeeld (i.i.d) voor elke vermelding.

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 . Voor 0 < p,pbr< 1/2 hebben we dat de werkelijke ruis per label p∗ strikt groter is dan het geluid dat we kunstmatig toevoegen aan de gegevensset 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). 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. 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. We zien een dergelijk gedrag niet terug in onze resultaten.

VI. CONCLUSIES EN TOEKOMSTIGE WERKEN

Onze bijdrage in dit artikel is tweeledig.

Ten eerste hebben we de haalbaarheid van classificatie van beveiligingsfoutrapporten aangetoond, uitsluitend gebaseerd op de titel van het foutrapport. Dit is met name relevant voor scenario's waarin het volledige foutrapport niet beschikbaar is vanwege privacybeperkingen. 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. Uit ons resultaat blijkt dat SBR-identificatie met hoge nauwkeurigheid kan worden uitgevoerd, zelfs wanneer er alleen rapporttitels beschikbaar zijn. Ons classificatiemodel dat gebruik maakt van een combinatie van TF-IDF en logistische regressie presteert met een AUC van 0,9831.

Ten tweede analyseerden we het effect van verkeerd gelabelde trainings-en validatiegegevens. 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. Alle drie de classificaties zijn robuust voor ruis met één klasse. Ruis in de trainingsgegevens heeft geen significant effect in de resulterende classificatie. De vermindering in AUC is zeer klein (0,01) voor een ruisniveau van 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%.

Tot slot heeft een klasse-afhankelijke ruis alleen een aanzienlijke impact op de AUC als er in beide klassen meer dan 35% ruis is. AdaBoost liet de meeste robuustheid zien. 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. In deze case is de daling van de AUC minder dan 0,03. Voor zover wij weten, is dit het eerste systematische onderzoek naar het effect van gegevenssets met ruis voor de identificatie van beveiligingsfoutrapporten.

TOEKOMSTIGE WERKEN

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. 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.

REFERENTIES

[1] John Anvik, Lyndon Hiew en Gail C Murphy. Wie moet deze fout oplossen? In het rapport van de 28e internationale conferentie over software engineering, pagina's 361 – 370. ACM, 2006.

[2] Diksha Behl, Sahil Handa en Anuja Arora. Een hulpprogramma voor foutanalyse om beveiligingsfouten te identificeren en analyseren met behulp van Naïve Bayes en TF-IDF. In Optimalisatie, betrouwbaarheid en informatietechnologie (ICROIT), internationale conferentie van 2014 op pagina's 294 – 299. IEEE, 2014.

[3] Nicolas Bettenburg, Rahul Premraj, Thomas Zimmermann en Sunghun Kim. Worden dubbele foutrapporten echt schadelijk geacht? In softwareonderhoud, 2008. ICSM 2008. Internationale IEEE-conferentie, pagina's 337-345. IEEE, 2008.

[4] Andres Folleco, Taghi M Khoshgoftaar, Jason van Hulse en Lofton Bullard. Identificeer learners die robuust zijn voor gegevens van lage kwaliteit. In Gegevens hergebruik en integratie, 2008. IRI 2008. IEEE International Conference on, pagina's 190-195. IEEE, 2008.

[5] Benoˆıt Frenay.´ Onzekerheid en labelruis in machine learning. Proefschrift, Katholieke Universiteit Leuven, Louvain-la-Neuve, België, 2013.

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

[7] Michael Gegick, Pete Rotella en Tao Xie. Beveiligingsfoutrapporten identificeren via tekstanalyse: een industriële casestudy. In Analyse van softwarearchieven (MSR), 2010 7e IEEE-werkconferentie op, pagina's 11 – 20. IEEE, 2010.

[8] Katerina Goseva-Popstojanova en Jacob Tyo. Identificatie van foutrapporten die gerelateerd zijn aan beveiligingsissues via tekstanalyse met behulp van gecontroleerde en ongecontroleerde classificatie. In 2018 IEEE Internationale Conferentie over kwaliteit, betrouwbaarheid en beveiliging van software (QRS), pagina's 344 – 355, 2018.

[9] Ahmed Lamkanfi, Serge Demeyer, Emanuel Giger en Bart Goethals. De ernst van een gerapporteerde fout voorspellen. In Analyse van softwarearchieven (MSR), 2010 7e IEEE-werkconferentie op, pagina's 1 – 10. IEEE, 2010.

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

[11] G. Murphy en D. Cubranic. Het automatisch sorteren van een fout met behulp van tekstcategorisatie. In het rapport van de 16e internationale conferentie over software engineering en kennis engineering. Citeseer, 2004.

[12] Mykola Pechenizkiy, Alexey Tsymbal, Seppo Puuronen en Oleksandr Pechenizkiy. Klasruis en leren onder supervisie 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. ́ Het effect van labelruis van trainingsklassen op classificatieprestaties voor toewijzing van bodembedekking via tijdreeksen van satellietbeelden. Remote Sensing, 9(2):173, 2017.

[14] PS Sastry, GD Nagendra en Naresh Manwani. Een team van continuousaction learning automata voor het leren van halve ruimtes met ruistolerantie. IEEE-transacties op systemen, mensen en cybernetics, deel B (Cybernetics), 40(1):19–28, 2010.

[15] Choh-Man Teng. Een vergelijking van technieken voor het omgaan met ruis. In FLAIRS conferentie, pagina's 269 – 273, 2001.

[16] Dumidu Wijayasekara, Milos Manic en Miles McQueen. Identificatie en classificatie van een beveiligingsprobleem via tekstanalyse foutdatabases. In Industrial Electronics Society, IECON 2014-40e Jaarlijkse Conferentie van de IEEE, pagina's 3612-3618. IEEE, 2014.

[17] Xinli Yang, David Lo, Qiao Huang, Xin Xia en Jianling Sun. Geautomatiseerde identificatie van foutrapporten met hoge impact die gebruikmaken van onevenwichtige leerstrategieën. In conferentie over computersoftware en -toepassingen (COMPSAC), 2016 IEEE 40e jaarlijkse editie, volume 1, pagina's 227 – 232. IEEE, 2016.

[18] Deqing Zou, Zhijun Deng, Zhen Li, en Hai Jin. Automatische identificatie van beveiligingsfoutrapporten door analyse van meerdere functies. In Australasian conferentie over informatiebeveiliging en privacy, pagina's 619 – 633. Springer, 2018.