Biztonsági hibajelentések azonosítása jelentéscímek és zajos adatok alapján

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

Kivonat – A biztonsági hibajelentések (SBR-ek) azonosítása alapvető fontosságú lépés a szoftverfejlesztés folyamatában. A felügyelt gépi tanuláson alapuló megközelítések esetében általában feltételezhető, hogy a betanításhoz rendelkezésre állnak teljes hibajelentések, és ezek címkéi zajmentesek. Legjobb tudásunk szerint ez az első tanulmány, amely azt mutatja be, hogy az SBR-ek címkéinek pontos előrejelzése akkor is lehetséges, ha kizárólag a cím áll rendelkezésre, és címkezajjal is számolni kell.

Indexkifejezések – Machine Learning, téves címkézés, zaj, biztonsági hibajelentés, hibatárak

I. BEVEZETÉS

A jelentett hibák között előforduló biztonsági problémák azonosítására sürgető szüksége van a szoftverfejlesztő csapatoknak, mivel az ilyen problémákat gyorsabban kell javítani a megfelelőségi követelmények kielégítéséhez, valamint a szoftver- és ügyféladatok integritásának biztosításához.

A gépi tanulási és mesterséges intelligencián alapuló eszközök által a szoftverfejlesztés gyorsabb, rugalmas és pontos lehet. Számos kutató alkalmazta a gépi tanulást a biztonsági hibák azonosításának problémája esetében [2], [7], [8], [18]. A korábban publikált tanulmányok azt feltételezték, hogy a gépi tanulási modellek betanításához és pontozásához a teljes hibajelentés rendelkezésre áll. Ez azonban nem feltétlenül van így. Vannak olyan helyzetek, amikor a teljes hibajelentést nem lehet elérhetővé tenni. A hibajelentés tartalmazhat például jelszavakat, személyes azonosításra alkalmas adatokat (PII) vagy egyéb bizalmas adatokat – ilyen esetekkel jelenleg is találkozunk a Microsoftnál. Ezért fontos megállapítani, hogy mennyire lehet hatékonyan elvégezni a biztonsági hibák azonosítását kevesebb információ alapján, például ha csak a hibajelentés címe áll rendelkezésre.

Emellett a hibatárak gyakran tartalmaznak félrecímkézett bejegyzéseket [7]: nem biztonsággal kapcsolatos hibajelentéseket, amelyek biztonsághoz kapcsolódóként vannak besorolva, és fordítva. A félrecímkézésnek számos oka lehet, a fejlesztőcsapat biztonsági kérdésekben való tapasztalanságától kezdve odáig, hogy egyes problémák maguk is zavarosak, például előfordulhat, hogy egy nem biztonsági jellegű hiba közvetve kihasználható oly módon, hogy az biztonsági szempontból aggályos lehet. Ez komoly gond, mivel az SBR-ek félrecímkézése esetén a biztonsági szakértőknek manuálisan kell áttekinteniük a hibaadatbázist, ami költséges és időigényes is. Ahhoz, hogy az automatikus besorolás a szoftvermérnöki terület bevett gyakorlatává válhasson, tisztában kell lennünk azzal, hogyan hat a zaj a különböző besorolókra, és mennyire hatékonyak (vagy ellenkezőleg) a gépi tanulási technikák a különböző típusú zajokkal szennyezett adathalmazok esetében.

A korábbi tanulmányok amellett érvelnek, hogy a hibatárak eredendően zajosak, és a zaj ronthatja a gépi tanulási besorolók teljesítményét [7]. Nem volt még azonban olyan szisztematikus és kvantitatív vizsgálat, amely azzal foglalkozott volna, hogyan befolyásolják a különböző szintű és típusú zajok a biztonsági hibajelentések (SBR-ek) azonosítására szolgáló különböző felügyelt gépi tanulási algoritmusok teljesítményét.

Ebben a tanulmányban bemutatjuk, hogy a hibajelentések osztályozása akkor is elvégezhető, ha kizárólag a cím áll rendelkezésre a betanításhoz és pontozáshoz. Legjobb tudásunk szerint ez a legelső vizsgálat, amely ezzel a témával foglalkozik. Emellett az első szisztematikus tanulmány, amely a zaj hatását vizsgálja a hibajelentések besorolásában. Összehasonlító elemzést végzünk arról, mennyire hatékony három gépi tanulási módszer (logisztikai regresszió, naiv Bayes és AdaBoost) az osztályfüggetlen zajjal szemben.

Bár vannak olyan analitikai modellek, amelyek rögzítik a zaj általános hatását néhány egyszerű osztályozó esetében [5, 6], ezek az eredmények nem határozzák meg pontosan a zajnak a pontosságra gyakorolt hatását, és csak egy adott gépi tanulási technika esetében érvényesek. A zaj gépi tanulási modellekre gyakorolt hatásának pontos elemzése általában számítási kísérletek futtatásával történik. Ilyen elemzések számos különböző forgatókönyvre vonatkozóan készültek már, a szoftveres mérési adatoktól [4] és a műholdképek osztályozásától [13] kezdve az orvosi adatokig [12]. Ezek az eredmények azonban nem képezhetők le az általunk vizsgált problémára, mivel az nagyban függ az adatkészletek jellegétől és a mögöttes besorolási problémáktól. Legjobb tudásunk szerint nincsenek közzétett eredmények azzal a konkrét problémával kapcsolatban, hogy a zajos adatkészletek milyen hatással vannak a biztonsági hibajelentések besorolására.

KUTATÁSUNKBAN KÖZREMŰKÖDTEK:

  • Osztályzókat tanítunk be arra, hogy biztonsági hibajelentéseket (SBR-eket) azonosítsanak kizárólag a jelentések címe alapján. Legjobb tudásunk szerint ez az első vizsgálat, amely ezzel a témával foglalkozik. A korábbi tanulmányok vagy a teljes hibajelentést használták, vagy kiegészítő funkciókkal bővítették azt. A hibák csak cím alapján történő besorolása különösen akkor fontos, ha adatvédelmi okok miatt nem lehet a teljes hibajelentéseket elérhetővé tenni. Gyakran előforduló ilyen eset, amikor a hibajelentések jelszavakat és más bizalmas adatokat tartalmaznak.

  • Emellett a mi tanulmányunk az első szisztematikus vizsgálat, amely az SBR-ek automatikus besorolására szolgáló különböző gépi tanulási modellek és technikák címkezaj-toleranciájával foglalkozik. Összehasonlító elemzést végzünk arról, mennyire hatékony három különböző gépi tanulási módszer (logisztikai regresszió, naiv Bayes és AdaBoost) az osztályfüggő és osztályfüggetlen zajjal szemben.

A papír fennmaradó része a következőképpen jelenik meg: A II. szakaszban bemutatunk néhány korábbi művet a szakirodalomban. A III. szakaszban az adatkészletet és az adatok előzetes feldolgozását ismertetjük. A IV. szakaszban mutatjuk be a módszertant, az V. szakaszban pedig a kísérleteink eredményeit elemezzük. Végül, a VI. szakaszban a konklúzió és a jövőbeli teendők szerepelnek.

II. KORÁBBI MUNKÁK

GÉPI TANULÁSI ALKALMAZÁSOK A HIBATÁRAK ESETÉBEN.

Kiterjedt szakirodalom foglalkozik azzal, hogyan használható a szövegbányászat, a természetes nyelvek feldolgozása és a gépi tanulás a hibatárak esetében az olyan munkaigényes feladatok automatizálására, mint például a biztonsági hibák észlelése [2, 7, 8, 18], a duplikált hibák azonosítása [3], vagy a hibák osztályozása [1, 11]. Ideális esetben a gépi tanulás (ML) és a természetesnyelv-feldolgozás együttes használatával csökkenthető a hibaadatbázisok összeállításához szükséges manuális munka mennyisége, a feladatok elvégzéséhez szükséges idő, és növelhető az eredmények megbízhatósága.

A [7] szerzői természetesnyelv-modellt javasolnak az SBR-ek besorolásának automatizálásához a hiba leírása alapján. A szerzők szószedetet nyernek ki a betanítási adatkészletben szereplő hibaleírásokból, és abból manuálisan állítanak össze három szólistát: a releváns szavak, a stopszavak (gyakori, a besorolás szempontjából irreleváns szavak) és a szinonimák listáját. Összehasonlítják két biztonságihiba-osztályozó teljesítményét, amelyek közül az egyik kizárólag biztonsági mérnökök által kiértékelt adatokkal, a másik pedig általános hibajelentők által címkézett adatokkal lett betanítva. Bár a modell egyértelműen hatékonyabb, ha biztonsági mérnökök által kiértékelt adatokkal lett betanítva, de a javasolt modell egy manuálisan összeállított szószedeten alapul, vagyis emberi döntéshozataltól függ. Emellett itt nem szerepel annak elemzése, hogy a különböző zajszintek hogyan befolyásolják a modellt, hogy a különböző osztályozók hogyan reagálnak a zajra, illetve hogy a különböző osztályokban megjelenő zaj eltérő módon befolyásolja-e a teljesítményt.

Zou et. az al [18] a hibajelentésekben található számos olyan információtípust használ, amely magában foglalja a hibajelentés nem szöveges mezőit (metafunkciók, például idő, súlyosság és prioritás), valamint a hibajelentés szöveges tartalmát (szöveges funkciók, azaz az összefoglaló mezők szövegét). E funkciók alapján létrehoznak egy modellt, amely automatikusan azonosítja az SBR-eket, természetesnyelv-feldolgozási és gépi tanulási technikák használatával. A [8] szerzői egy hasonló elemzést végeznek el, de ezen kívül összehasonlítják a felügyelt és a nem felügyelt gépi tanulási technikák teljesítményét is, illetve megvizsgálják, hogy mennyi adat szükséges a modellek betanításához.

A [2] szerzői szintén különböző gépi tanulási technikák segítségével, leírás alapján próbálják besorolni a hibákat az SBR vagy az NSBR (nem biztonsági hibajelentés) osztályokba. TFIDF-alapú adatfeldolgozási és modellbetanítási folyamat használatát javasolják. Összehasonlítják a javasolt folyamatot egy bag-of-words (szóhalmaz) és naiv Bayes-alapú modellel. Wijayasekara és munkatársai [16] szintén használtak szövegbányászati technikákat az egyes hibajelentések jellemzővektorainak létrehozásához a rejtett hatású hibák (HIB-k) azonosításához, a gyakran előforduló szavak alapján. Yang és munkatársai [17] kifejezésgyakoriság (TF) és naiv Bayes segítségével kívánt azonosítani nagy hatású hibajelentéseket (például SBR-eket). A [9] szerzői egy modellt javasolnak a hibák súlyosságának előrejelzéséhez.

CÍMKEZAJ

A címkezajos adatkészletek kezelésének problémájával számos tanulmány foglalkozott. Frenay és Verleysen a [6] tanulmányban címkezaj-osztályozási rendszer bevezetését javasolják, amellyel megkülönböztethetők a zajos címkék különböző típusai. A szerzők három különböző zajtípus megkülönböztetését javasolják: ezek a valódi osztálytól és a példányjellemzők értékeitől függetlenül előforduló címkezajok; a csak a valódi címkétől függő címkezajok; valamint azok a címkezajok, amelyeknél a félrecímkézés valószínűsége a jellemzőértékektől is függ. Ebben a tanulmányban az első két típusba tartozó zajokat vizsgáljuk. Elméleti szempontból a címkezaj általában rontja a modell teljesítményét [10], néhány specifikus eset kivételével [14]. Általánosságban elmondható, hogy a hatékony módszerek az elkerülés túlillesztésével próbálják kezelni a címkezajokat [15]. A zajok besorolásra gyakorolt hatását számos területen tanulmányozták már, a műholdképek osztályozásától [13] és a szoftverek minőségi besorolásától [4] kezdve az orvosi tartománybesorolásig [12]. Legjobb tudásunk szerint nincsenek olyan közzétett tanulmányok, amelyek a zajos címkék hatásának pontos kvantifikálásával foglalkoznak, az SBR-ek besorolásának vonatkozásában. Ebben a forgatókönyvben a zajszintek, a zajtípusok és a teljesítménycsökkenés közötti pontos kapcsolat nem lett megállapítva. Érdemes továbbá megvizsgálni, hogyan viselkednek a különböző osztályozók a zaj jelenlétében. Általánosságban véve nem tudunk olyan munkáról, amely szisztematikusan vizsgálná a zajos adathalmazok hatását a különböző gépi tanulási algoritmusok teljesítményére a szoftverhiba-jelentések kontextusában.

III. ADATHALMAZ LEÍRÁSA

Az adathalmazunk 1 073 149 hibacímet tartalmaz, amelyből 552 073 cím SBR-eknek, 521 076 cím pedig nem SBR-eknek felel meg. Az adatok a Microsoft különböző csapataitól lettek összegyűjtve, 2015 és 2018 között. Minden címkét egy aláírás-alapú hibaellenőrző rendszer állított elő, vagy a címke manuálisan lett megadva. Az adathalmazban található hibacímek nagyon rövid, nagyjából 10 szóból álló szövegek, amelyek áttekintést nyújtanak a problémáról.

V. Előzetes adatfeldolgozás Elemezzük az egyes hibacímeket az üres helyek alapján, így egy tokenekből álló listát kapunk. A tokenlisták feldolgozása a következő módon történik:

  • Eltávolítunk minden olyan tokent, amely egy fájl elérési útja

  • Feldaraboljuk a tokeneket a következő szimbólumok előfordulásainál: {, (, ), -, }, {, [, ], }

  • Eltávolítjuk a stopszavakat, a csak numerikus karakterekből álló tokeneket, valamint az olyan tokeneket, amelyek a teljes korpuszban 5-nél kevesebbszer fordulnak elő.

IV. MÓDSZERTAN

A gépi tanulási modelljeink betanításának folyamata két fő lépésből áll: az adatok jellemzővektorokba kódolásából és a felügyelt gépi tanulási osztályozók betanításából.

V. Jellemzővektorok és gépi tanulási technikák

Az első részben az adatokat jellemzővektorokba kódoljuk a kifejezésgyakorisági/fordított dokumentumbeli gyakorisági (TF-IDF) algoritmus használatával, a [2] tanulmányban leírt módon. A TF-IDF olyan információlekérési módszer, amely felméri egy kifejezés gyakoriságát (TF) és fordított dokumentumbeli gyakoriságát (IDF). Minden egyes szónak vagy kifejezésnek saját TF- és IDF-pontszáma van. A TF-IDF algoritmus fontossági értéket rendel a szavakhoz az alapján, hogy a szavak hányszor fordulnak elő a dokumentumban, és ami még fontosabb, ellenőrzi, hogy a kulcsszavak mennyire relevánsak az adathalmazban található címek gyűjteményében. Háromféle besorolási technikát tanítottunk be és hasonlítottunk össze: ezek a naiv Bayes (NB), a súlyozott döntési fák (AdaBoost) és a logisztikai regresszió (LR). Azért választottuk ezeket a technikákat, mert a szakirodalom alapján bizonyítottan jól teljesítenek a biztonsági hibajelentések teljes jelentés alapján történő azonosításának kapcsolódó feladatában. Ezeket az eredményeket megerősítette egy előzetes elemzés, amely során ez a három osztályozó jobban teljesített, mint a támogatóvektor-gépek és a véletlenszerű erdők. A kísérletekben a scikit-learn kódtárat használjuk a kódoláshoz és a modell betanításához.

B. Zajtípusok

A tanulmányban vizsgált zaj alatt a betanítási adatok besorolási címkéjében megjelenő zajt értjük. Az ilyen jellegű zajok okán a betanítási folyamatra és az eredményül kapott modellre kedvezőtlen hatással vannak a félrecímkézett példák. Megvizsgáljuk, hogy milyen hatással vannak a besorolási információkra alkalmazott különböző zajszintek. A címkezajtípusok esetében a szakirodalom korábban különböző terminológiákat használt. Ebben a tanulmányban két különböző típusú címkezajnak a besorolókra gyakorolt hatásait vizsgáljuk: ezek az osztályfüggetlen címkezaj, amelyet példányok véletlenszerű kiválasztásával és címkéjük tükrözésével vezetünk be, valamint az osztályfüggő zaj, ahol az osztályok eltérő valószínűséggel zajosak.

a) Osztályfüggetlen zaj: Az osztályfüggetlen zaj a példányok valódi osztályától függetlenül fellépő zajra utal. Ennél a zajtípusnál a félrecímkézési valószínűség (pbr) azonos az adathalmazban lévő összes példánynál. Az adathalmazainkban az osztályfüggetlen zaj bevezetéséhez véletlenszerűen tükrözzük az adathalmazban található összes címkét, pbr valószínűséggel.

b) Osztályfüggő zaj: Az osztályfüggő zaj a példányok valódi osztályától függő zajra utal. Ennél a zajtípusnál a félrecímkézés valószínűsége az SBR osztályban pSBR, az NSBR osztályban pedig pNSBR. Az adathalmazunkban az osztálytól függő zaj bevezetéséhez tükrözzük az adathalmazban található összes olyan bejegyzést, amelynek valódi címkéje SBR, pbr valószínűséggel. Ezzel analóg módon, az NSBR-példányok besorolási címkéjét pnsbr valószínűséggel tükrözzük.

c) Egyosztályos zaj: Az egyosztályos zaj az osztályfüggő zaj speciális esete, ahol a pnsbr = 0 és a psbr> 0. Megjegyzendő, hogy az osztályfüggetlen zaj esetében a psbr = pnsbr = pbr.

C. Zaj előállítása

Kísérleteink azt vizsgálják, milyen hatással vannak a különböző zajtípusok és -szintek az SBR osztályozók betanítására. A kísérleteinkben az adathalmaz 25%-a tesztelési adat, 10%-a ellenőrzési adat, 65%-a pedig betanítási adat.

A betanítási és ellenőrzési adathalmazokhoz zajt adunk a pbr, a psbr és a pnsbr különböző szintjei esetében. A tesztelési adathalmazt nem módosítjuk. A különböző zajszintek a P = {0,05 × i|0 < i < 10}.

Az osztályfüggetlen zajjal kapcsolatos kísérleteknél a pbr ∈ P esetében a következőket tesszük:

  • Zaj előállítása a betanítási és ellenőrzési adathalmazokhoz;

  • Logisztikai regressziós, naiv Bayes- és AdaBoost-modellek betanítása a betanítási adatkészlettel (zajjal); * Modellek finomhangolása az ellenőrzési adatkészlettel (zajjal);

  • Modellek tesztelése a tesztelési adathalmazzal (zaj nélkül).

Az osztálytól függő zajt alkalmazó kísérleteknél psbr ∈ P és pnsbr ∈ P esetében a következőket tesszük a psbr és a pnsbr valamennyi kombinációjára vonatkozóan:

  • Zaj előállítása a betanítási és ellenőrzési adathalmazokhoz;

  • Logisztikai regressziós, naiv Bayes- és AdaBoost-modellek betanítása a betanítási adatkészlettel (zajjal);

  • Modellek finomhangolása az ellenőrzési adatkészlettel (zajjal);

  • Modellek tesztelése a tesztelési adathalmazzal (zaj nélkül).

V. KÍSÉRLETI EREDMÉNYEK

Ebben a szakaszban vizsgáljuk a IV. szakaszban leírt módszertan szerint elvégzett a kísérletek eredményeit.

a) A modell teljesítménye zaj nélkül a betanítási adatkészletben: A tanulmány egyik része egy gépi tanulási modell javaslata a biztonsági hibák azonosítására úgy, hogy csak a hiba címét használja adatokként a döntéshozatalhoz. Ezáltal a gépi tanulási modellek betanítása abban az esetben is lehetővé válik, amikor a fejlesztőcsapatok nem kívánják teljes terjedelmükben megosztani a hibajelentéseket a bennük található bizalmas adatok miatt. Összehasonlítjuk három olyan gépi tanulási modell teljesítményét, amelyek kizárólag hibacímek használatával lettek betanítva.

A legjobban teljesítő osztályozó a logisztikai regressziós modell. Ennek az osztályozónak a legmagasabb az AUC értéke (0,9826), és 0,9353 a visszahívása 0,0735-ös FPR érték esetén. A naiv Bayes-osztályozó valamivel gyengébb teljesítményt nyújt a logisztikai regressziós osztályozóhoz képest, 0,9779 az AUC-je, és 0,9189 a visszahívása 0,0769-es FPR esetén. Az AdaBoost-osztályozó mindkét fent említett osztályozónál gyengébben teljesít. 0,9143-as AUC-t ér el, és 0,7018 a visszahívása 0,0774-es FPR mellett. A ROC-görbe (AUC) alatti terület jó metrika több modell teljesítményének összehasonlításához, mivel egyetlen értékben összegzi a TPR és az FPR relációt. A következő összehasonlító elemzéseket kizárólag az AUC-értékekre szorítkozva végezzük el.

I. táblázat

V. Osztályzaj: egyosztályos

Feltételezzünk egy olyan forgatókönyvet, ahol a rendszer minden hibát alapértelmezés szerint NSBR-ként osztályoz, és a hibákat csak akkor lehet az SBR osztályhoz rendelni, ha egy biztonsági szakértő vizsgálja felül a hibatárat. Ez a forgatókönyv az egyosztályos kísérleti beállításban jelenik meg, ahol feltételezzük, hogy pnsbr = 0 és 0 < psbr< 0,5.

II. táblázat

A II. táblázatból megállapíthatjuk, hogy mindhárom osztályozó esetében nagyon kicsi az AUC-re gyakorolt hatás. A psbr = 0 beállítással betanított modell AUC-ROC értéke és a psbr = 0,25 beállítással betanított modell AUC-ROC értéke közötti különbség a logisztikai regressziós modell esetében 0,003, a naiv Bayesnél 0,006, az AdaBoostnál szintén 0,006. A psbr = 0,50 beállítással betanított modell AUC értéke és a psbr = 0 beállítással betanított modell AUC értéke közötti különbség a logisztikai regressziós modell esetében 0,007, a naiv Bayesnél 0,011, az AdaBoostnál pedig 0,010. Az egyosztályos zaj jelenlétében betanított logisztikai regressziós osztályozó mutatja a legkisebb eltérést az AUC mérőszám esetében, vagyis ez hatékonyabb, mint a naiv Bayes- és az AdaBoost-osztályozók.

B. Osztályzaj: osztályfüggetlen

Összehasonlítjuk a három osztályozó teljesítményét abban az esetben, amikor a betanítási adathalmazt osztályfüggetlen zaj szennyezi. Megmérjük, hogyan változik az egyes modellek AUC értéke, ha a modelleket különböző szintű pbr értékű adathalmazokkal tanítjuk be.

III. táblázat

A III. táblázatban megfigyelhető, hogyan csökken az AUC-ROC, valahányszor növeljük a zajt a kísérletben. A zajmentes adatokkal betanított modell AUC-ROC értéke és az osztályfüggetlen zajokkal, pbr = 0,25 beállítással betanított modell AUC-ROC értéke közötti különbség a logisztikai regressziós modell esetében 0,011, a naiv Bayesnél 0,008, az AdaBoostnál pedig 0,0038. Megfigyelhető, hogy a címkezaj nem befolyásolja jelentős mértékben a naiv Bayes- és az AdaBoost-osztályozók AUC értékét, amíg a zajszint 40% alatt van. Ugyanakkor a logisztikai regressziós osztályozó AUC mérőszámát a 30% feletti zajszintek már befolyásolják.

AUC-változat

1. ábra Az AUC-ROC változásai osztályfüggetlen zajban. Ha a zajszint pbr = 0,5 értékű, az osztályozó véletlenszerű osztályozóként viselkedik (például AUC ≈ 0,5). Megfigyelhető azonban, hogy alacsonyabb zajszintek (pbr ≤ 0,30) esetében a logisztikai regressziós tanuló jobb teljesítményt nyújt, mint a másik két modell. Azonban a 0,35 ≤ pbr ≤ 0,45 naiv Bayes-tanuló jobb AUC-ROC-metrikákat mutat.

C. Osztályzaj: osztályfüggő

A kísérletek végső halmazában egy olyan forgatókönyvet veszünk figyelembe, amelyben a különböző osztályok különböző zajszinteket tartalmaznak, például psbr ≠ pnsbr. Szisztematikusan és egymástól függetlenül 0,05-dal növeljük a psbr és a pnsbr értékét a betanítási adatban, és megfigyeljük a három osztályozóban történt változásokat.

Logisztikai regresszióNaiv BayesAdaBoost

A IV., V., VI. táblázat bemutatja az AUC változását a zaj növekedésére az egyes osztályok különböző szintjein – a logisztikai regresszió esetén a IV., a Bayes esetén az V., az AdaBoost esetén a VI. táblázat a mérvadó. Az összes osztályozó esetében akkor veszünk észre változást az AUC-metrikában, ha mindkét osztály zajszintje 30% felett van. A naiv Bayes a legrobusztusabb. Az AUC-re gyakorolt hatás nagyon kicsi, még akkor is, ha a pozitív osztályban található címke 50%-a tükrözött, feltéve, hogy a negatív osztály legfeljebb 30%-ban tartalmaz zajos címkéket. Ebben az esetben az AUC csökkenése 0,03 értékű. Az AdaBoost mindhárom osztályozó közül a legrobusztusabb viselkedést tanúsította. Csak akkor változik jelentős mértékben az AUC, ha a zajszint mindkét osztály esetén nagyobb 45%-nál. Ebben az esetben 0,02-nél nagyobb AUC-csökkenést tapasztaltunk.

D. Fennmaradó zaj jelenléte az eredeti adathalmazban

Az adathalmazt aláírás-alapú automatizált rendszerek és szakértők címkézték. Emellett szakértők vizsgálták és zárták le az összes hibajelentést. Bár arra számítunk, hogy az adathalmazban lévő zaj mennyisége minimális és statisztikailag nem jelentős, a fennmaradó zaj jelenléte nem érvényteleníti a következtetéseinket. Az ábra kedvéért tegyük fel, hogy az eredeti adatkészletet egy 0 < p < 1/2 független és azonos módon elosztott (i.i.d) osztályfüggetlen zaj rongálja meg minden bejegyzés esetében.

Ha az eredeti zajon túl olyan osztályfüggetlen zajt adunk hozzá, amelynek a valószínűsége pbr i.i.d, a bejegyzésekben az eredményül kapott zaj értéke p∗ = p(1 – pbr) + (1 − p)pbr. A 0 < p, pbr< 1/2 esetén a tényleges zaj címkénként p∗ szigorúan nagyobb, mint a p br adathalmazhozmesterségesen hozzáadott zaj. Így az osztályozók teljesítménye még jobb lenne, ha már első alkalommal is egy teljesen zajmentes adathalmazzal (p = 0) tanították volna be őket. Összefoglalva: a tényleges adathalmazban lévő fennmaradó zaj megléte azt jelenti, hogy az osztályozók rugalmassága a zajjal szemben jobb, mint az itt bemutatott eredmények. Továbbá, ha az adathalmazban lévő fennmaradó zaj statisztikailag fontos lenne, az osztályozók AUC-értéke 0,5 lenne (véletlenszerű becslés) szigorúan 0,5 alatti zajszint esetén. Az eredményünkben nem tapasztaltunk ilyen viselkedést.

VI. KÖVETKEZTETÉSEK ÉS JÖVŐBELI MUNKÁK

Két hozzájárulással szolgáltunk ebben a dokumentumban.

Először is bemutattuk a biztonsági hibajelentések osztályozásának megvalósíthatóságát pusztán a hibajelentés címe alapján. Ez különösen fontos olyan helyzetekben, amikor az adatvédelmi korlátozások miatt nem érhető el a teljes hibajelentés. Ebben az esetben például a hibajelentések olyan személyes adatokat tartalmaztak, mint a jelszavak és a titkosítási kulcsok, és nem voltak elérhetők az osztályozók betanításához. Az eredmény azt mutatja, hogy az SBR-azonosítás akkor is nagy pontossággal hajtható végre, ha csak a jelentések címei érhetők el. A TF-IDF és a logisztikai regresszió kombinációját használó osztályozó modellünk 0,9831 értékű AUC-n működik.

Ezenfelül kielemeztük a félrecímkézett betanítások és érvényesítési adatok hatását. Összehasonlítottunk három jól ismert gépi tanulási osztályozó technikát (naiv Bayes, logisztikai regresszió és AdaBoost) a különböző zajtípusok és zajszintek irányában tanúsított robusztusságuk alapján. Mindhárom osztályozó robusztus az egyosztályos zajjal szemben. A betanítási adaton belüli zaj nem befolyásolja jelentős mértékben az eredményül kapott osztályozót. Az AUC csökkenése 50%-os zajszintnél nagyon alacsony (0,01). A két osztályban jelen lévő és osztályfüggetlen zaj esetében a naiv Bayes- és az AdaBoost-modellek csak akkor mutatnak jelentős eltéréseket az AUC-ben, ha 40%-nál magasabb zajszintű adathalmazokkal tanítják be őket.

Végezetül az osztályfüggő zaj csak akkor befolyásolja jelentős mértékben az AUC-t, ha a zaj szintje mindkét osztályban több 35%-nál. Az AdaBoost volt a legrobusztusabb. Az AUC-re gyakorolt hatás nagyon kicsi, még akkor is, ha a pozitív osztály címkéinek 50%-a zajos, feltéve, hogy a negatív osztály címkéinek legfeljebb 45%-a zajos. Ebben az esetben az AUC csökkenése kisebb 0,03-nál. A legjobb tudásunk szerint ez az első szisztematikus tanulmány a zajos adathalmazok a biztonsági hibajelentések azonosítására kifejtett hatásáról.

JÖVŐBELI MUNKÁK

Ebben a dokumentumban elindítottuk a zaj hatásainak szisztematikus vizsgálatát a biztonsági hibák azonosítására szolgáló gépi tanulási osztályozók teljesítményét illetően. Ennek a munkának több érdekes folytatása is lehet, többek között: a zajos adathalmazok hatásának vizsgálata a biztonsági hibák súlyossági szintjének meghatározásával kapcsolatban; az osztályegyensúly hiányának hatáselemzése a betanított modellek zajjal szembeni rugalmasságával kapcsolatban; az adathalmazba kártékony céllal bevitt zaj hatásának megismerése.

HIVATKOZÁSOK

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

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

[3] Nicolas Bettenburg, Rahul Premraj, Thomas Zimmermann és Sunghun Kim: Duplicate bug reports considered harmful really? A Szoftverkarbantartás, 2008. ICSM 2008. I Enterprise kiadás E nemzetközi konferencia, oldalak 337-345. IEEE, 2008.

[4] Andres Folleco, Taghi M Khoshgoftaar, Jason Van Hulse és Lofton Bullard: Identifying learners robust to low quality data. In Information Reuse and Integration, 2008. IRI 2008. I Enterprise kiadás E International Conference on, pages 190–195. IEEE, 2008.

[5] Benoît Frénay: Uncertainty and label noise in machine learning. PhD-disszertáció, Leuveni Katolikus Egyetem, Leuven, Belgium, 2013.

[6] Benoît Frénay és 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 és Tao Xie: Biztonsági hibajelentések azonosítása szövegbányászattal: Ipari esettanulmány. Mining software repositories (MSR), 2010 7th IEEE working conference, 11–20. oldal. IEEE, 2010.

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

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

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

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

[12] Mykola Pechenizkiy, Alexey Tsymbal, Seppo Puuronen és Oleksandr Pechenizkiy: Osztályzaj és felügyelt tanulás orvosi területeken: A jellemzők kinyerésének hatása. null, 708–713. oldal. IEEE, 2006.

[13] Charlotte Pelletier, Silvia Valero, Jordi Inglada, Nicolas Champion, Claire Marais Sicre és 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 és Naresh Manwani: A team of continuous-action learning automata for noise-tolerant learning of half-spaces. IEEE Transactions on Systems, Man, and Cybernetics, Part B (Cybernetics), 40(1):19–28, 2010.

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

[16] Dumidu Wijayasekara, Milos Manic és Miles McQueen: Vulnerability identification and classification via text mining bug databases. In Industrial Electronics Society, IECON 2014-40th Annual Conference of the I Enterprise kiadás E, pages 3612–3618. I Enterprise kiadás E, 2014.

[17] Xinli Yang, David Lo, Qiao Huang, Xin Xia és Jianling Sun: Automated identification of high impact bug reports leveraging imbalanced learning strategies. Computer Software and Applications Conference (COMPSAC), 2016 IEEE 40th Annual, 1. kötet, 227–232. oldal. IEEE, 2016.

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