Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Mayana Pereira | Scott Christiansen |
---|---|
CELA Data Science | Zabezpieczenia i zaufanie klientów |
Microsoft | Microsoft |
Abstrakt — Identyfikowanie raportów o błędach zabezpieczeń (SBR) jest istotnym krokiem w cyklu życia tworzenia oprogramowania. W nadzorowanych podejściach opartych na uczeniu maszynowym zwykle zakłada się, że całe raporty o błędach są dostępne do trenowania i że ich etykiety są wolne od szumu. Zgodnie z naszą najlepszą wiedzą, jest to pierwsze badanie pokazujące, że dokładne przewidywanie etykiet jest możliwe dla raportów o błędach oprogramowania (SBR), nawet gdy dostępny jest tylko tytuł i nawet w przypadku zakłóceń w etykietach.
Terminy Indeksu — Uczenie Maszynowe, Błędne Etykietowanie, Zakłócenia, Raport o Błędzie Zabezpieczeń, Repozytoria Błędów
Ja. WPROWADZENIE
Identyfikowanie problemów związanych z zabezpieczeniami wśród zgłoszonych usterek jest palącą potrzebą wśród zespołów programistycznych, takich jak takie problemy, wymagają bardziej przyspieszonych poprawek w celu spełnienia wymagań dotyczących zgodności i zapewnienia integralności oprogramowania i danych klientów.
Uczenie maszynowe i narzędzia sztucznej inteligencji obiecują szybsze, zwinne i poprawne tworzenie oprogramowania. Kilku badaczy zastosowało uczenie maszynowe do problemu identyfikowania usterek zabezpieczeń [2], [7], [8], [18]. Poprzednie opublikowane badania zakładały, że cały raport o błędach jest dostępny do trenowania i oceniania modelu uczenia maszynowego. Niekoniecznie tak jest. Istnieją sytuacje, w których nie można udostępnić całego raportu o usterce. Na przykład raport o usterce może zawierać hasła, dane osobowe lub inne rodzaje poufnych danych — przypadek, z którym mamy obecnie do czynienia w firmie Microsoft. Dlatego ważne jest ustalenie, jak dobrze można przeprowadzić identyfikację usterek zabezpieczeń przy użyciu mniejszej ilości informacji, takich jak wtedy, gdy dostępny jest tylko tytuł raportu o usterce.
Ponadto repozytoria błędów często zawierają błędnie oznaczone wpisy [7]: raporty o błędach niezwiązanych z zabezpieczeniami sklasyfikowane jako powiązane z zabezpieczeniami i na odwrót. Istnieje kilka powodów występowania błędnego etykietowania, począwszy od braku wiedzy zespołu deweloperów w zakresie zabezpieczeń, po rozmycie niektórych problemów, np. istnieje możliwość wykorzystania usterek niezwiązanych z zabezpieczeniami w sposób pośredni, aby spowodować implikację zabezpieczeń. Jest to poważny problem, ponieważ błędne oznaczenie SBRs powoduje, że eksperci ds. zabezpieczeń muszą ręcznie przejrzeć bazę danych błędów w kosztownym i czasochłonnym wysiłku. Zrozumienie, w jaki sposób szum wpływa na różne klasyfikatory i jak niezawodne (lub kruche) różne techniki uczenia maszynowego są w obecności zestawów danych zanieczyszczonych różnymi rodzajami szumów, jest problemem, który należy rozwiązać, aby zapewnić automatyczną klasyfikację praktyk inżynierii oprogramowania.
Wstępne prace twierdzą, że repozytoria błędów są wewnętrznie hałaśliwe i że szum może mieć negatywny wpływ na klasyfikatory uczenia maszynowego wydajności [7]. Brakuje jednak systematycznego i ilościowego badania, w jaki sposób różne poziomy i typy szumów wpływają na wydajność różnych nadzorowanych algorytmów uczenia maszynowego w przypadku problemu identyfikowania raportów o błędach zabezpieczeń (SRB).
W tym badaniu pokazujemy, że klasyfikacja raportów o błędach może być wykonywana nawet wtedy, gdy tylko tytuł jest dostępny do trenowania i oceniania. Według naszej wiedzy, jest to pierwsze takie dzieło. Ponadto zapewniamy pierwsze systematyczne badanie wpływu szumu w klasyfikacji raportów o błędach. Przeprowadzamy badanie porównawcze niezawodności trzech technik uczenia maszynowego (regresja logistyczna, naiwny Bayes i AdaBoost) przed szumem niezależnym od klasy.
Chociaż istnieją pewne modele analityczne, które przechwytują ogólny wpływ szumu dla kilku prostych klasyfikatorów [5], [6], te wyniki nie zapewniają ciasnych granic wpływu szumu na precyzję i są prawidłowe tylko dla konkretnej techniki uczenia maszynowego. Dokładna analiza wpływu szumu w modelach uczenia maszynowego jest zwykle wykonywana przez uruchamianie eksperymentów obliczeniowych. Takie analizy wykonano w kilku scenariuszach, począwszy od danych pomiaru oprogramowania [4], po klasyfikację obrazów satelitarnych [13] i dane medyczne [12]. Jednak nie można przetłumaczyć tych wyników na nasz konkretny problem ze względu na wysoką zależność od charakteru zestawów danych i podstawowego problemu klasyfikacji. Zgodnie z naszą najlepszą wiedzą nie ma opublikowanych wyników dotyczących problemu wpływu hałaśliwych zestawów danych na klasyfikację raportów o błędach zabezpieczeń.
NASZ WKŁAD W BADANIA:
Szkolimy klasyfikatory do identyfikacji raportów o błędach zabezpieczeń (SBRs) wyłącznie na podstawie tytułu raportów. Z tego co wiemy, jest to pierwsza praca, która to robi. Poprzednie prace korzystały z kompletnego raportu o usterce lub ulepszono raport o usterce z dodatkowymi funkcjami uzupełniającymi. Klasyfikowanie usterek opartych wyłącznie na kafelku jest szczególnie istotne, gdy nie można udostępnić pełnych raportów o błędach ze względu na obawy dotyczące prywatności. Na przykład notoryczny jest przypadek raportów o błędach zawierających hasła i inne poufne dane.
Zapewniamy również pierwsze systematyczne badanie tolerancji szumu etykiety dla różnych modeli uczenia maszynowego i technik używanych do automatycznej klasyfikacji SBRs. Przeprowadzamy badanie porównawcze niezawodności trzech odrębnych technik uczenia maszynowego (regresja logistyczna, naiwny Bayes i AdaBoost) względem szumu zależnego od klasy i niezależnego od klasy.
Pozostała część artykułu jest przedstawiona w następujący sposób: W sekcji II przedstawimy niektóre z poprzednich prac w literaturze. W sekcji III opisano zestaw danych i sposób wstępnego przetwarzania danych. Metodologia została opisana w sekcji IV i wynikach naszych eksperymentów analizowanych w sekcji V. Wreszcie nasze wnioski i przyszłe prace przedstawiono w VI.
II. POPRZEDNIE PRACE
APLIKACJE UCZENIA MASZYNOWEGO DO REPOZYTORIÓW BŁĘDÓW.
Istnieje obszerna literatura dotycząca stosowania wyszukiwania tekstu, przetwarzania języka naturalnego i uczenia maszynowego w repozytoriach błędów w celu zautomatyzowania żmudnych zadań, takich jak wykrywanie usterek zabezpieczeń [2], [7], [8], [18], identyfikacja duplikatów błędów [3], klasyfikacja błędów [1], [11], aby wymienić kilka aplikacji. W idealnym przypadku połączenie uczenia maszynowego (ML) i przetwarzania języka naturalnego potencjalnie zmniejsza ręczną pracę wymaganą do opracowywania baz danych błędów, skraca czas potrzebny na wykonanie tych zadań i może zwiększyć niezawodność wyników.
W [7] autorzy proponują model języka naturalnego w celu zautomatyzowania klasyfikacji SBRs na podstawie opisu usterki. Autorzy wyodrębniają słownictwo ze wszystkich opisów usterek w zestawie danych treningowych i ręcznie je sortują na trzy listy słów: odpowiednie wyrazy, stop words (typowe słowa, które są uznawane za nieistotne dla klasyfikacji) i synonimy. Porównują one wydajność klasyfikatora usterek zabezpieczeń wyszkolonego na danych, które są oceniane przez inżynierów zabezpieczeń, oraz klasyfikator wyszkolony na danych, które zostały ogólnie oznaczone przez reporterów błędów. Chociaż ich model jest wyraźnie bardziej skuteczny, gdy jest trenowany na danych przeglądanych przez inżynierów zabezpieczeń, proponowany model jest oparty na ręcznie opracowanym słownictwie, co sprawia, że zależy od ludzkiej selekcji. Ponadto nie ma analizy, w jaki sposób różne poziomy szumu wpływają na ich model, jak różne klasyfikatory reagują na szum, a jeśli szum w każdej klasie wpływa na wydajność inaczej.
Zou et. al [18] używać wielu typów informacji zawartych w raporcie o usterce, które obejmują pola nietekstowe raportu o usterce (funkcje meta, np. czas, ważność i priorytet) oraz tekstową zawartość raportu o usterce (funkcje tekstowe, tj. tekst w polach podsumowania). Na podstawie tych funkcji tworzą model, aby automatycznie identyfikować SBRs za pomocą przetwarzania języka naturalnego i technik uczenia maszynowego. W [8] autorzy wykonują podobną analizę, ale dodatkowo porównują wydajność nadzorowanych i nienadzorowanych technik uczenia maszynowego oraz badają, ile danych jest potrzebnych do trenowania modeli.
W [2] autorzy badają również różne techniki uczenia maszynowego w celu klasyfikowania usterek jako SBRs lub NSBRs (raport o błędach niezwiązanych z zabezpieczeniami) na podstawie ich opisów. Proponują ścieżkę przetwarzania danych i trenowania modelu na podstawie TFIDF. Porównują proponowany przepływ z modelem opartym na torbie słów i naiwnym Bayesie. Wijayasekara et al. [16] użyli również technik eksploracji tekstu w celu wygenerowania wektora cech każdego raportu błędu na podstawie częstych słów w celu zidentyfikowania Ukrytych Błędów Wpływu (HIB). Yang et al. [17] twierdzili, że potrafią identyfikować raporty o błędach o dużym wpływie, takie jak znaczące raporty o błędach (SBR), za pomocą częstotliwości terminów (TF) i naiwnego Bayesa. W [9] autorzy proponują model przewidywania ważności usterki.
NIEŚCISŁOŚĆ ETYKIET
Problem radzenia sobie z zestawami danych z szumem w etykietach został szeroko zbadany. Frenay i Verleysen proponują taksonomię szumu etykiet w [6], aby odróżnić różne typy hałaśliwych etykiet. Autorzy proponują trzy różne typy szumu etykiety: szum etykiety, który pojawia się niezależnie od prawdziwej klasy i wartości cech instancji; szum etykiety, który zależy tylko od prawdziwej etykiety; oraz szum etykiety, w którym prawdopodobieństwo błędnego oznaczenia również zależy od wartości cech. W naszej pracy badamy dwa pierwsze rodzaje hałasu. Z perspektywy teoretycznej szum etykiety zwykle zmniejsza wydajność modelu [10], z wyjątkiem niektórych konkretnych przypadków [14]. Ogólnie rzecz biorąc, niezawodne metody polegają na unikaniu nadmiernego dopasowania do obsługi szumu etykiet [15]. Badanie efektów szumu w klasyfikacji zostało przeprowadzone wcześniej w wielu obszarach, takich jak klasyfikacja obrazów satelitarnych [13], klasyfikacja jakości oprogramowania [4] i klasyfikacja domen medycznych [12]. Zgodnie z naszą najlepszą wiedzą, nie ma opublikowanych prac badających dokładne kwantyfikację skutków hałaśliwych etykiet w problemie klasyfikacji SBRs. W tym scenariuszu nie ustalono dokładnej relacji między poziomami szumów, typami szumów i obniżeniem wydajności. Co więcej, warto zrozumieć, jak różne klasyfikatory zachowują się w obecności szumu. Ogólnie rzecz biorąc, nie wiemy o jakiejkolwiek pracy, która systematycznie bada wpływ hałaśliwych zestawów danych na wydajność różnych algorytmów uczenia maszynowego w kontekście raportów o błędach oprogramowania.
III. OPIS ZESTAWU DANYCH
Nasz zestaw danych składa się z 1 073 149 tytułów błędów, w tym 552 073 odpowiada SBR i 521 076 NSBR. Dane zostały zebrane z różnych zespołów firmy Microsoft w latach 2015, 2016, 2017 i 2018. Wszystkie etykiety zostały uzyskane przez systemy weryfikacji usterek oparte na podpisach lub oznaczone przez człowieka. Tytuły usterek w naszym zestawie danych to bardzo krótkie teksty zawierające około 10 słów z omówieniem problemu.
A. Przetwarzanie wstępne danych Analizujemy każdy tytuł usterki według pustych spacji, co powoduje wyświetlenie listy tokenów. Przetwarzamy każdą listę tokenów w następujący sposób:
Usuń wszystkie tokeny, które są ścieżkami plików
Podziel tokeny, w których znajdują się następujące symbole: { , (, ), -, }, {, [, ], }
Usuń wyrazy stopu, tokeny składające się tylko z znaków liczbowych oraz tokeny, które pojawiają się mniej niż 5 razy w całym korpusie.
IV. METODOLOGIA
Proces trenowania modeli uczenia maszynowego składa się z dwóch głównych kroków: kodowania danych w wektorów cech i trenowania nadzorowanych klasyfikatorów uczenia maszynowego.
A. Wektory funkcji i techniki uczenia maszynowego
Pierwsza część obejmuje kodowanie danych do wektorów cech przy użyciu algorytmu częstotliwości odwrotnej częstości dokumentów (TF-IDF), jak zastosowano w [2]. TF-IDF to technika pobierania informacji, która waży częstotliwość występowania terminów (TF) i ich odwrotną częstotliwość występowania dokumentów (IDF). Każdy wyraz lub termin ma odpowiedni wynik TF i IDF. Algorytm TF-IDF przypisuje znaczenie do tego słowa na podstawie liczby wystąpień w dokumencie, a co ważniejsze, sprawdza, jak istotne jest słowo kluczowe w całej kolekcji tytułów w zestawie danych. Wyszkoliliśmy i porównaliśmy trzy techniki klasyfikacji: naiwny Bayes (NB), wzmocnione drzewa decyzyjne (AdaBoost) i regresja logistyczna (LR). Wybraliśmy te techniki, ponieważ zostały one pokazane w celu zapewnienia dobrej wydajności dla powiązanego zadania identyfikowania raportów o błędach zabezpieczeń na podstawie całego raportu w literaturze. Wyniki te zostały potwierdzone w wstępnej analizie, w której te trzy klasyfikatory przewyższają wydajność maszyn wektorów nośnych i lasów losowych. W naszych eksperymentach używamy biblioteki scikit-learn do kodowania i trenowania modeli.
B. Typy szumów
Szum badany w tej pracy odnosi się do szumu w etykiecie klasy w danych treningowych. W obecności takiego szumu, w konsekwencji, proces uczenia się i wynikowy model są osłabione przez błędnie oznakowane przykłady. Analizujemy wpływ różnych poziomów szumów na informacje o klasie. Typy szumów etykiet zostały omówione wcześniej w literaturze przy użyciu różnych terminologii. W naszej pracy analizujemy efekty dwóch różnych zakłóceń etykiet w naszych klasyfikatorach: szum etykiet niezależny od klasy, który jest wprowadzany przez losowe wybieranie wystąpień i zamianę ich etykiet; oraz szum zależny od klasy, gdzie klasy mają różne prawdopodobieństwo wystąpienia szumów.
a) Szum niezależny od klasy: Szum niezależny od klasy odnosi się do szumu, który występuje niezależnie od prawdziwej klasy obserwacji. W tym typie szumu prawdopodobieństwo błędnego etykietowania pbr jest takie samo dla wszystkich wystąpień w zestawie danych. Wprowadzamy niezależny od klasy szum w naszych zestawach danych, losowo zmieniając każdą etykietę w naszym zestawie danych z prawdopodobieństwem pbr.
b) szum zależny od klasy: Szum zależny od klasy odnosi się do szumu, który zależy od prawdziwej klasy wystąpień. W tym typie szumu prawdopodobieństwo błędnego etykietowania w klasie SBR wynosi psbr, a prawdopodobieństwo błędnego etykietowania w klasie NSBR wynosi pnsbr. Wprowadzamy szum zależny od klasy w naszym zestawie danych, przerzucając każdy wpis w zestawie danych, dla którego prawdziwa etykieta to SBR z prawdopodobieństwem psbr. Analogicznie zmieniamy etykietę klasy wystąpień NSBR z prawdopodobieństwem pnsbr.
c) Szum jednoklasowy: Szum jednoklasowy jest specjalnym przypadkiem szumu zależnego od klasy, gdzie pnsbr = 0 i psbr> 0. Należy pamiętać, że w przypadku szumu niezależnego od klasy mamy psbr = pnsbr = pbr.
C. Generowanie szumu
Nasze eksperymenty badają wpływ różnych typów i poziomów szumu na trenowanie klasyfikatorów SBR. W naszych eksperymentach ustawiliśmy 25% zestawu danych jako dane testowe, 10% jako walidację i 65% jako dane szkoleniowe.
Do zbiorów danych do trenowania i walidacji dodajemy szum dla różnych poziomów pbr, psbr i pnsbr. Nie wprowadzamy żadnych modyfikacji zestawu danych testowych. Różne używane poziomy szumu to P = {0,05 × i|0 < i < 10}.
W eksperymentach z szumem niezależnym od klasy wykonujemy następujące czynności dla pbr ∈ P:
Generowanie szumu dla zestawów danych treningowych i walidacyjnych.
Trenowanie modeli regresji logistycznej, naiwnych Bayesów i AdaBoost przy użyciu zestawu danych treningowych (z szumem); * Dostrajanie modeli przy użyciu zestawu danych weryfikacji (z szumem);
Testowanie modeli przy użyciu zestawu danych testowych (bez szumu).
W eksperymentach szumu zależnego od klasy, dla psbr ∈ P i pnsbr ∈ P, wykonujemy następujące czynności dla wszystkich kombinacji psbr i pnsbr:
Generowanie szumu dla zestawów danych do trenowania i walidacji.
Trenowanie modeli regresji logistycznej, naiwnych Bayesów i AdaBoost przy użyciu zestawu danych treningowych (z szumem);
Dostrajanie modelu przy użyciu danych walidacyjnych (z szumem);
Testowanie modeli przy użyciu zestawu danych testowych (bez szumu).
V. WYNIKI EKSPERYMENTALNE
W tej sekcji przeanalizuj wyniki eksperymentów przeprowadzonych zgodnie z metodologią opisaną w sekcji IV.
a) Wydajność modelu bez szumu w zestawie danych treningowych: Jednym z elementów tego artykułu jest propozycja modelu uczenia maszynowego w celu zidentyfikowania usterek zabezpieczeń przy użyciu tylko tytułu usterki jako danych do podejmowania decyzji. Umożliwia to trenowanie modeli uczenia maszynowego nawet wtedy, gdy zespoły programistyczne nie chcą w pełni udostępniać raportów o usterkach z powodu obecności poufnych danych. Porównujemy wydajność trzech modeli uczenia maszynowego podczas trenowania przy użyciu tylko tytułów błędów.
Model regresji logistycznej jest najlepszym klasyfikatorem. Jest to klasyfikator o najwyższej wartości AUC wynoszącej 0,9826, czułości 0,9353 przy wartości FPR 0,0735. Naiwny klasyfikator Bayesa przedstawia nieco niższą wydajność niż klasyfikator regresji logistycznej z wartością AUC 0,9779 i wycofanie wartości 0,9189 dla FPR o wartości 0,0769. Klasyfikator AdaBoost ma niższą wydajność w porównaniu z dwoma wcześniej wymienionymi klasyfikatorami. Osiąga AUC o wartości 0,9143 oraz czułość 0,7018 dla wskaźnika fałszywie pozytywnych wynoszącego 0,0774. Obszar pod krzywą ROC (AUC) jest dobrą metryką do porównywania wydajności kilku modeli, ponieważ podsumowuje w jednej wartości relację TPR a FPR. W kolejnej analizie ograniczymy naszą analizę porównawczą do wartości AUC.
A. Szum klasy: jednoklasowy
Można sobie wyobrazić scenariusz, w którym wszystkie usterki są przypisane do klasy NSBR domyślnie, a usterka zostanie przypisana tylko do klasy SBR, jeśli istnieje ekspert ds. zabezpieczeń przeglądający repozytorium błędów. Ten scenariusz jest reprezentowany w ustawieniu eksperymentalnym dla jednej klasy, gdzie przyjęto założenie, że pnsbr = 0 oraz 0 < psbr< 0,5.
Z tabeli II obserwujemy bardzo mały wpływ na AUC dla wszystkich trzech klasyfikatorów. AUC-ROC z modelu wytrenowanego nasbr = 0 w porównaniu z AUC-ROC modelu, w którym psbr = 0,25, różni się o 0,003 w przypadku regresji logistycznej, o 0,006 dla naiwnego Bayesa oraz o 0,006 dla AdaBoost. W przypadku psbr = 0,50, AUC mierzone dla każdego z modeli różni się od modelu trenowanego z parametrami psbr = 0 o 0,007 dla regresji logistycznej, 0,011 dla naiwnego Bayesa i 0,010 dla AdaBoost. Klasyfikator regresji logistycznej, wyszkolony w obecności szumu pojedynczej klasy, wykazuje najmniejszą zmienność w metryce AUC, co oznacza bardziej odporne zachowanie, w porównaniu z naszym naiwnym klasyfikatorem Bayesa i klasyfikatorami AdaBoost.
B. Szum klasy: niezależny od klasy
Porównujemy wydajność naszych trzech klasyfikatorów w przypadku, gdy zestaw treningowy jest uszkodzony przez szum niezależny od klasy. Mierzymy AUC dla każdego modelu trenowanego z wykorzystaniem różnych poziomów pbr w danych treningowych.
W tabeli III obserwujemy spadek AUC-ROC dla każdego przyrostu szumu w eksperymencie. AUC-ROC mierzona na modelu wyszkolonym na danych bez szumu w porównaniu z AUC-ROC modelu wytrenowanego na danych z szumem niezależnym od klasy zbr = 0,25 różni się o 0,011 w przypadku regresji logistycznej, o 0,008 dla naiwnego Bayesa i o 0,0038 dla AdaBoost. Zauważamy, że szum etykiety nie ma wpływu na AUC naiwnych bayesów i klasyfikatorów AdaBoost znacznie, gdy poziom szumu jest niższy niż 40%. Z drugiej strony klasyfikator regresji logistycznej ma wpływ na miarę AUC dla poziomów szumu etykiet powyżej 30%.
Rys. 1. Odmiana AUC-ROC w szumie niezależnym od klasy. Dla poziomu szumu pbr =0,5 klasyfikator działa jak klasyfikator losowy, tj. AUC≈0,5. Jednak możemy zauważyć, że w przypadku niższych poziomów szumu (pbr ≤0,30), uczeń regresji logistycznej przedstawia lepszą wydajność w porównaniu z innymi dwoma modelami. Jednak dla 0,35≤ pbr ≤0,45 naiwny algorytm Bayesa przedstawia się z lepszymi metrykami AUCROC.
C. Szum związany z klasą: zależny od klasy
W ostatnim zestawie eksperymentów rozważamy scenariusz, w którym różne klasy zawierają różne poziomy szumu, tj. psbr ≠ pnsbr. Systematycznie zwiększamy psbr i pnsbr niezależnie o 0,05 w danych treningowych i obserwujemy zmianę zachowanie trzech klasyfikatorów.
Tabele IV, V i VI pokazują zmienność AUC wraz ze wzrostem szumu na różnych poziomach w każdej klasie: dla regresji logistycznej w tabeli IV, dla naiwnego Bayesa w tabeli V oraz dla AdaBoost w tabeli VI. Dla wszystkich klasyfikatorów zauważamy wpływ na metrykę AUC, gdy obie klasy mają poziom szumu powyżej 30%. naiwny Bayes działa najbardziej niezawodnie. Wpływ na AUC jest bardzo mały, nawet jeśli 50% etykiet w klasie dodatniej zostanie zamienionych, pod warunkiem że klasa ujemna zawiera 30% hałaśliwych etykiet lub mniej. W tym przypadku spadek wartości AUC wynosi 0,03. AdaBoost przedstawia najbardziej niezawodne zachowanie wszystkich trzech klasyfikatorów. Znacząca zmiana WUC nastąpi tylko w przypadku poziomów szumu większego niż 45% w obu klasach. W takim przypadku zaczniemy obserwować rozpad AUC większy niż 0,02.
D. Obecność szumu resztkowego w oryginalnym zestawie danych
Nasz zestaw danych został oznaczony przez zautomatyzowane systemy oparte na podpisach i przez ekspertów ludzkich. Ponadto wszystkie raporty o błędach zostały dokładniej poddane przeglądowi i zamknięte przez ekspertów ludzkich. Chociaż oczekujemy, że poziom szumu w naszym zestawie danych jest minimalny i nie ma znaczenia statystycznego, obecność resztkowego szumu nie unieważnia naszych wniosków. Na potrzeby ilustracji przyjęto założenie, że oryginalny zestaw danych jest uszkodzony przez niezależny od klasy szum równy 0 < p < 1/2 niezależnie i identycznie rozłożony (i.i.d) dla każdego wpisu.
Jeśli na tle oryginalnego szumu dodamy szum niezależny od klasy z prawdopodobieństwem pbr i.i.d., wynikowy szum na wpis wyniesie p∗ = p(1 − pbr )+(1 − p)pbr. Dla 0 < p,pbr< 1/2, mamy, że rzeczywisty szum na etykietę p∗ jest ściśle większy niż szum, który sztucznie dodajemy do zestawu danych pbr . W związku z tym wydajność naszych klasyfikatorów byłaby jeszcze lepsza, gdyby zostały wytrenowane przy użyciu całkowicie bezgłośnego zestawu danych (p = 0) w pierwszej kolejności. Podsumowując, istnienie reszt szumu w rzeczywistym zestawie danych oznacza, że odporność na szum naszych klasyfikatorów jest lepsza niż przedstawione w tym miejscu wyniki. Co więcej, jeśli resztowy szum w naszym zestawie danych był statystycznie istotny, AUC naszych klasyfikatorów stanie się 0,5 (losowe odgadnięcie) dla poziomu szumu ściśle mniejszego niż 0,5. Nie obserwujemy takiego zachowania w naszych wynikach.
VI. WNIOSKI I PRZYSZŁE PRACE
Nasz wkład w ten dokument jest dwuczęściowy.
Po pierwsze, pokazaliśmy możliwość klasyfikacji raportów o błędach zabezpieczeń wyłącznie na podstawie tytułu raportu o błędach. Jest to szczególnie istotne w scenariuszach, w których cały raport o błędach nie jest dostępny z powodu ograniczeń prywatności. Na przykład w naszym przypadku raporty o błędach zawierały prywatne informacje, takie jak hasła i klucze kryptograficzne, i nie były dostępne do trenowania klasyfikatorów. Nasz wynik pokazuje, że identyfikacja SBR może być wykonywana z wysoką dokładnością nawet wtedy, gdy dostępne są tylko tytuły raportów. Nasz model klasyfikacji korzystający z kombinacji TF-IDF i regresji logistycznej osiąga AUC na poziomie 0,9831.
Po drugie, przeanalizowaliśmy wpływ błędnie oznaczonych danych treningowych i walidacyjnych. Porównaliśmy trzy dobrze znane techniki klasyfikacji uczenia maszynowego (naiwne Bayes, regresja logistyczna i AdaBoost) pod względem ich odporności na różne typy szumów i poziom szumu. Wszystkie trzy klasyfikatory są odporne na szumy jednoklasowe. Szum w danych treningowych nie ma znaczącego wpływu na wynikowy klasyfikator. Spadek AUC jest bardzo mały (0,01) przy poziomie szumu wynoszącym 50%. W przypadku szumu, który występuje zarówno w obu klasach, jak i jest niezależny od klasy, naiwne modele Bayesa i AdaBoost prezentują znaczące różnice w AUC tylko wtedy, gdy są trenowane z zestawem danych o poziomie szumu większym niż 40%.
Na koniec szum zależny od klasy znacząco wpływa na AUC tylko wtedy, gdy w obu klasach występuje więcej niż 35% szumów typu%. AdaBoost wykazała największą niezawodność. Wpływ na AUC jest bardzo mały, nawet jeśli klasa dodatnia ma 50% etykiet hałaśliwych, pod warunkiem, że klasa ujemna zawiera 45% hałaśliwych etykiet lub mniej. W tym przypadku spadek wartości AUC jest mniejszy niż 0,03. Zgodnie z naszą najlepszą wiedzą jest to pierwsze systematyczne badanie wpływu hałaśliwych zestawów danych na potrzeby identyfikacji raportów o błędach zabezpieczeń.
PRZYSZŁE PRACE
W tym dokumencie rozpoczęliśmy systematyczne badanie skutków szumu w wydajności klasyfikatorów uczenia maszynowego w celu identyfikacji usterek zabezpieczeń. Istnieje kilka interesujących kontynuacji tej pracy, w tym: badanie wpływu hałaśliwych zestawów danych na określanie poziomu ważności usterki zabezpieczeń; zrozumienie wpływu nierównowagi klas na odporność wytrenowanych modeli na hałas; zrozumienie wpływu szumu celowo wprowadzonego do zestawu danych.
REFERENCJE
[1] John Anvik, Lyndon Hiew i Gail C Murphy. Kto powinien naprawić tę usterkę? W 28 międzynarodowej konferencji na temat inżynierii oprogramowania, strony 361–370. ACM, 2006.
[2] Diksha Behl, Sahil Handa i Anuja Arora. Narzędzie do wykrywania błędów do identyfikowania i analizowania błędów bezpieczeństwa przy użyciu Naive Bayes'a i TF-IDF. W Optimization, Reliability i Information Technology (ICROIT), na Międzynarodowej Konferencji w 2014 roku, strony 294–299. IEEE, 2014.
[3] Nicolas Bettenburg, Rahul Premraj, Thomas Zimmermann i Sunghun Kim. Zduplikowane raporty o błędach uważane za szkodliwe naprawdę? W Konserwacja oprogramowania, 2008. ICSM 2008. Międzynarodowa konferencja IEEE na temat, stron 337–345. IEEE, 2008.
[4] Andres Folleco, Taghi M Khoshgoftaar, Jason Van Hulse i Lofton Bullard. Identyfikowanie uczących się odpornych na dane o niskiej jakości. W Informacje o ponownym użyciu i integracji, 2008. IRI 2008. Międzynarodowa Konferencja IEEE dotyczącej, strony 190–195. IEEE, 2008.
[5] Benoˆıt Frenay. Niepewność i szum etykiet w uczeniu maszynowym. Doktorat, Katolicki Uniwersytet Louvain, Louvain-la-Neuve, Belgia, 2013.
[6] Benoˆıt Frenay i Michel Verleysen. Klasyfikacja w obecności szumu etykiety: ankieta. Prace IEEE dotyczące sieci neuronowych i systemów uczenia, 25(5):845–869, 2014.
[7] Michael Gegick, Pete Rotella i Tao Xie. Identyfikowanie raportów o błędach zabezpieczeń za pośrednictwem wyszukiwania tekstu: analiza przypadku przemysłowego. W Mining software repositories (MSR), 2010 7 konferencji roboczej IEEE na temat, strony 11–20. IEEE, 2010.
[8] Katerina Goseva-Popstojanova i Jacob Tyo. Identyfikacja raportów usterek związanych z zabezpieczeniami za pośrednictwem wyszukiwania tekstu przy użyciu nadzorowanej i nienadzorowanej klasyfikacji. W 2018 IEEE International Conference on Software Quality, Reliability and Security (QRS), strony 344–355, 2018.
[9] Ahmed Lamkanfi, Serge Demeyer, Emanuel Giger i Bart Goethals. Przewidywanie ważności zgłoszonej usterki. W Analiza Repozytoriów Oprogramowania (MSR), 2010 7th IEEE Working Conference on, strony 1–10. IEEE, 2010.
[10] Naresh Manwani i PS Sastry. Tolerancja szumu w ramach minimalizacji ryzyka. transakcje IEEE dotyczące cybernetyki, 43(3):1146–1151, 2013.
[11] G Murphy i D Cubranic. Automatyczne klasyfikowanie usterek przy użyciu kategoryzacji tekstu. W szesnastej międzynarodowej konferencji na temat inżynierii oprogramowania & Knowledge Engineering. Citeseer, 2004.
[12] Mykola Pechenizkiy, Alexey Tsymbal, Seppo Puuronen i Oleksadr Pechenizkiy. Szum klasy i uczenie nadzorowane w domenach medycznych: efekt wyodrębniania cech. W null, strony 708–713. IEEE, 2006.
[13] Charlotte Pelletier, Silvia Valero, Jordi Inglada, Nicolas Champion, Claire Marais Sicre i Gerard Dedieu. Wpływ szumu etykiet klas szkoleniowych na wydajność klasyfikacji w mapowaniu pokrycia ziemi z czasowymi seriami obrazów satelitarnych. Zdalnego Wykrywania, 9(2):173, 2017.
[14] PS Sastry, GD Nagendra i Naresh Manwani. Zespół automatów do ciągłego uczenia się dla odpornego na szumy uczenia półprzestrzeni. Transakcje IEEE w zakresie Systemów, Człowieka i Cybernetyki, Część B (Cybernetyka), 40(1):19–28, 2010.
[15] Choh-Man Teng. Porównanie technik obsługi szumów. W konferencji FLAIRSstrony 269–273, 2001.
[16] Dumidu Wijayasekara, Milos Manic i Miles McQueen. Identyfikacja i klasyfikacja luk w zabezpieczeniach za pomocą analizy tekstowej baz danych usterek. W Industrial Electronics Society, IECON 2014-40th Annual Conference of the IEEE, strony 3612–3618. IEEE, 2014.
[17] Xinli Yang, David Lo, Qiao Huang, Xin Xia i Jianling Sun. Automatyczna identyfikacja raportów o błędach o dużym wpływie z wykorzystaniem strategii uczenia się niezrównoważonych. W Computer Software and Applications Conference (COMPSAC), 2016 IEEE 40th Annual, tom 1, strony 227–232. IEEE, 2016.
[18] Deqing Zou, Zhijun Deng, Zhen Li i Hai Jin. Automatyczne identyfikowanie raportów o błędach zabezpieczeń za pośrednictwem analizy funkcji wielotypowych. W Australasian Conference on Information Security and Privacy, strony 619–633. Springer, 2018.