1. Szczegółowa interpretacja tematu projektu Wykorzystane zostaną sztucznie wytworzone dane z ruchem sieciowym, powstałe na potrzeby konkursu KDD Cup '99. Projekt polega na wybraniu rodzaju, a następnie skonstruowaniu klasyfikatora o parametrach, które będą z satysfakcjonującym poziomem prawdopodobieństwa wykrywać atak na maszynę na podstawie analizy ruchu sieciowego zebranego w zbiorze testowym. (Ustalona max. stopa false positive i max. stopa false negative) Określenie kosztów jakie poniesiemy w związku z błędną klasyfikacją - czy wolimy wyciąć za dużo i być bezpiecznym, czy narazić się na atak dając większy średni czas między odcięciami dostępu do sieci Określenie charakterystycznych cech głównych grup ataków - ilość połączeń - DoS, probe - dużo - U2R, R2L - mało - wstępna klasyfikacja - czy atak wykorzystuje jedno połączenie czy wiele 2. Opis algorytmów, które będą wykorzystywane Projekt nie będzie się opierał na sygnaturach, lecz na wykrywaniu podobieństwa do pewnych klas (fuzzy). Sygnatury odpadają, ponieważ: - cechy zbyt enigmatyczne jak na sygnatury, np. cecha "hot" Klasyfikator oparty na prawdopodobieństwie przynależności, podobieństwie do klas: - nieokreślone znaczenie cech, równie dobrze mogłaby to być klasyfikacja gatunku kosaćców Będzie podejmował decyzję klasyfikacyjną atak/nie-atak na podstawie selekcji: - ? negatywnej - jak bardzo badany ruch odbiega od profili normalnego zachowania - ANOMALIE (supervised anomaly detection - mamy etykiety) - czy może robimy John Rambo style i jedziemy w trybie unsupervised - ? pozytywnej - jak bardzo ruch przypomina jakąś klasę ataku (#nie wiem czy sensowne jest rzeczywiście podejście z anomaliami, bo wtedy mamy tylko jedną oetykietowaną klasę pt. "normalny ruch", aż szkoda patrzeć jak wszystkie złe klasy wrzucamy do jednego wora) - MISUSE detection - czy może podwójna - wykryj, że nienormalnie negatywnie, a potem pozytywnie typ ataku - czy naszym zadaniem jest określenie typu ataku - byłoby fajnie - ładne statystyki byśmy wyprodukowali, poza tym jeszcze ładniejsze statsy dla kategorii nieokreślonych jawnie Kwestię wyboru anomalie/selekcja pozytywna widzę jako: - pojemnik z kuleczkami - 3 cechy = 3 wymiary - kulki czerwone - ataki, kulki zielone - normalny ruch - jeśli kulki czerwone zdarzają się rzadko, to powinniśmy jednak badać bliskość w przesrzeni do ataku, bo dobro otaczałoby nas zewsząd - jeśli mało jest normalności - odwrotnie, wtedy anomialie, czyli jak bardzo wyszliśmy poza sferę, zakreśloną przestrzeń normalnego profilu (A Comparative Study of Anomaly Detection Schemes in Network Intrusion Detection - to jest niezłe - wskazywałoby na to, że to normalność jest zjawiskiem lokalnym - gęste, dobrze izolowane profile zachowań) Techniki do wyboru: - klasyfikator Bayesa - 1-NN - k-NN - SVM - drzewa decyzyjne 3. Plan eksperymentów 3.1 Pytania, na które będzie poszukiwana odpowiedź - jaki klasyfikator nadaje się najlepiej - na ile klasy ataków ustalone intuicyjnie przez KDD pokrywają się z ilością klas potrzebną do prawidłowego działania klasyfikatora stwierdzającego atak/nie-atak - czy wszystkie cechy zawarte w zbiorze danych są znaczące - które z nich można pominąć - które są skorelowane - czy warto zastosować techniki redukcji wymiarowości - w przypadku badania anomalii, ile jest znacząco różniących się profili normalnego zachowania 3.2 Charakterystyka zbiorów danych (ew. czynności przygotowania danych) - ciągłe i dyskretne cechy - do ciągłych normalizacja rzędów wielkości - czy można przyjąć, że w zbiorze testowym ataki występują z takim samym prawdopodobieństwem, jak w zbiorze uczącym (jak to wpłynie na ew. wybrany klasyfikator Bayesa?) - czy zbiór uczący należy wstępnie przefiltrować - czy należy usunąć dane, które przekłamują ogólne obrazy klas ataków - np. usunięcie "outlierów" - czy należy zastosować edycję zbiorów - np. MULTIEDIT - czy z części cech wyprowadzić nowe cechy 3.3 Parametry algorytmów, których wpływ na wyniki będzie badany - wybrane miary (#tutaj dużo nazw miar) - jeśli k-NN, oprócz wybrania miary, strojenie wielkości k 3.4 Sposób oceny jakości modeli - procentowa ilość błędów - false positive - false negative - błędna klasyfikacja do innej klasy ataków - procentowa ilość wykrytych ataków, których nie ma z zbiorze uczącym - ile zbiorczo - ile dla każdej klasy - do ilu różnych starych klas zostaną one zakwalifikowane 4. Otwarte kwestie wymagające późniejszego rozwiązania (dlaczego na później) - ile klas - niewiadome jest ich odizolowanie w przestrzeni cech - czyli czy użyć np. hierarchicznego podziału rodzajów ataków i przeprowadzać szczegółową analizę dla podklas