Opis zadania
Transkrypt
Opis zadania
Zadanie 6 Systemy operacyjne - laboratorium Jakub M. Tomczak Wrocław 2010 1 Zawartość dokumentu W dokumencie sformułowano zadanie 6 na zaj˛ecia laboratoryjne z przedmiotu Systemy operacyjne oraz przedstawiono informacje służace ˛ do jego rozwiazania. ˛ Celem zadania jest symulacja prostego systemu wykrywania włamań (ang. Intrusion Detection System, IDS). 2 Zarys problemu Załóżmy, że monitorujemy działanie pewnego systemu komputerowego. Podczas sesji użytkownika, który łaczy ˛ si˛e z systemem, rejestrowane sa˛ nast˛epujace ˛ dane: 1. Długość sesji. 2. Liczba przesłanych zapytań. 3. Liczba przesłanych danych (w bajtach). 4. Licza otrzymanych danych (w bajtach). Nast˛epnie, po odbytej sesji, określana jest jej kategoria (klasa) jako normalna lub włamanie (atak). Wykrycie włamań po fakcie (taki przypadek rozpatrujemy) jest niezwykle istotne i może być użyte do, np. określenia i naprawy ewentualnych szkód wynikajacych ˛ z ataku, zablokowania adresów intruzów, znalezienia luk w systemie ochrony. 1 Określanie klasy sesji może odbywać si˛e r˛ecznie przez administratora systemu, jednak jest to zadanie niezwykle pracochłonne. Dlatego też interesować nas b˛edzie automatyczne wykrywanie włamań. 3 Sformułowanie problemu Oznaczmy przez x = [x1 x2 x3 x4 ] ∈ X wektor rejestrowanych cech, • x1 – długość sesji; • x2 – liczba przesłanych zapytań; • x3 – liczba przesłanych danych (w bajtach); • x4 – licza otrzymanych danych (w bajtach). Natomiast poprzez j ∈ J = {1, 2} – klas˛e, gdzie 1 oznacza normalna˛ sesj˛e, a 2 – włamanie. Zatem pojedyncza n-ta sesja scharakteryzowana jest przez par˛e (obserwacj˛e): (xn , yn ), np. x1 = 4, x2 = 1, x3 = 5, x4 = 1, j = 1. Ciag ˛ N obserwacji oznaczamy przez SN = {(xn , yn ) : n = 1, 2, . . . , N }. Dotychczas nie zostały określone zbiory wartości poszczególnych cech. W zadaniu zakładamy, że zbiór wartości każdej cechy jest dyskretny, a konkretna wartość oznacza przedział, np. x1 = 4 oznacza, że długość sesji jest w przedziale 4, np. [0.01, 0.02] sekundy. Ponieważ wartości przedziałów nie b˛eda˛ istotne, dlatego też nie b˛edziemy ich podawali. Przez Ψ : X → J oznaczmy funkcj˛e klasyfikujac ˛ a˛ (klasyfikator), która danemu wektorowi cech przyporzadkowuje ˛ określona˛ klas˛e. Może ona przyjmować różna˛ postać, np. funkcji dyskryminujacej, ˛ sieci neuronalnej, drzewa decyzyjnego, klasyfikatora bayesowskiego. Niezależnie od rodzaju klasyfikatora interesuje nas jego nauczenie, tzn. korzystajac ˛ z zestawu obserwacji SN wyznaczyć najlepszy klasyfikator określonego rodzaju. Najlepszy to taki, który minimalizuje pewne ryzyko popełnienia bł˛edu (tzw. bład ˛ klasyfikacji), np. Q(Ψ) = N 1 X I(yn , Ψ(xn )), N n=1 2 gdzie I(yn , Ψ(xn )) = 0, gdy yn = Ψ(xn ), 1, w przeciwnym razie Zatem możemy przejść do pełnego sformułowania problemu: DANE: • Obserwowane cechy x ∈ X . • Klasy j ∈ J . • Ciag ˛ obserwacji SN . • Rodzaj klasyfikatora Ψ. • Kryterium jakości, Q (np. bład ˛ klasyfikacji) SZUKANE: • Klasyfikator Ψ∗ , dla którego ryzyko popełnienia bł˛edu jest najmniejsze, tzn. Q(Ψ∗ ) = min Q(Ψ). Ψ 4 Klasyfikator wykorzystany w zadaniu W zadaniu wykorzystamy tzw. naiwny klasyfikator bayesowski. Jest to klasyfikator, który wykorzystuje prawdopodobieństwa pojawienia si˛e klasy pod warunkiem obserwacji oraz niezależność zmiennych losowych. (Czyli każda cecha jest traktowana jako zmienna losowa xs , podobnie jak klasa, j). Niech Pr{xs = ks }, dla s = 1, 2, 3, 4, oznacza prawdopodobieństwo, że s-ta cecha przyjmie ks -ta˛ wartość. Ponadto, niech Pr{j = i} oznacza prawdopodobieństwo wysta˛ pienia i-tej klasy (tzw. prawdopodobieństwo a priori). Nast˛epnie przez Pr{xs = ks |j = i} oznaczmy prawdopodobieństwo, że s-ta cecha przyjmuje ks -ta˛ wartość pod warunkiem i-tej klasy. Oraz Pr{j = i|xn } oznaczmy prawdopodobieństwo wystapienia ˛ i-tej klasy przy dokonaniu obserwacji (tzw. prawdopodobieństwo a posteriori). Korzystajac ˛ z twierdzenia Bayesa oraz z niezależności cech możemy napisać, że Pr{j = i|xn } ∝ Pr{j = i} · 4 Y s=1 3 Pr{xs = ks(n) |j = i}, gdzie ks(n) oznacza wartość, która została zaobserwowana w n-tej sesji. Wówczas klasyfikacji dokonujemy stosujac ˛ nast˛epujac ˛ a˛ reguł˛e (tzw. reguła a posteriori): Pr{j = l|xn } = max Pr{j = i|xn }. i Czyli klasa dla podanej obserwacji jest taka, dla której prawdpodobieństwo jest najwi˛eksze (inaczej: klasa, która jest najbardziej prawdopodobna przy dokonanej obserwacji). PRZYKŁAD Załóżmy, że x1 ∈ {1, 2, 3} i x2 ∈ {1, 2}, j ∈ {1, 2}. Niech: Pr{j = 1} = 0.4, Pr{j = 2} = 0.6, Pr{x1 = 1|j = 1} = 0.7, Pr{x1 = 1|j = 2} = 0.3 Pr{x1 = 2|j = 1} = 0.5, Pr{x1 = 2|j = 2} = 0.5 Pr{x1 = 3|j = 1} = 0.2, Pr{x1 = 3|j = 2} = 0.8 Pr{x2 = 1|j = 1} = 0.9, Pr{x2 = 1|j = 2} = 0.1 Pr{x2 = 2|j = 1} = 0.4, Pr{x2 = 2|j = 2} = 0.6. Dokonano obserwacji (realizacja zmiennej losowej): xn = [2, 1]. Wówczas: Pr{j = 1|xn } = Pr{j = 1} · Pr{x1 = 2|j = 1} · Pr{x2 = 1|j = 1} = 0.4 · 0.5 · 0.9 = 0.18, Pr{j = 2|xn } = Pr{j = 2} · Pr{x1 = 2|j = 2} · Pr{x2 = 1|j = 2} = 0.6 · 0.5 · 0.1 = 0.03. Zatem, korzystajac ˛ z reguły a posteriori, wybieramy klas˛e 1, ponieważ jest bardziej prawdopodobna od klasy 2. 5 Uwagi do zadania 5.1 Uwagi • Prosz˛e przyjać, ˛ że x1 ∈ {1, 2, . . . , 5}, x2 ∈ {1, 2, . . . , 8}, x3 ∈ {1, 2, . . . , 6}, x4 ∈ {1, 2, . . . , 6}. • Kryterium jakości jest ryzykiem popełnienia bł˛edu (bład ˛ klasyfikacji). • Przy podawaniu bł˛edu klasyfikacji prosz˛e podać liczb˛e wykrytych (poprawnie sklasyfikowanych) włamań do liczby wszystkich włamań. 4 • Przy podawaniu bł˛edu klasyfikacji prosz˛e podać liczb˛e wykrytych (poprawnie sklasyfikowanych) normalnych sesji do liczby wszystkich normalnych sesji. • Szacowanie prawdopodobieństw: P̂r{j = i} = ni , N gdzie ni – liczba obserwacji o klasie i, N – liczba wszystkich obserwacji. (i) n P̂r{xs = ks |j = i} = s,ks , ni (i) gdzie ns,ks – liczba obserwacji s-tej cechy przyjmujacej ˛ ks -ta˛ wartość o klasie i. • Symulacji dokonać na dostarczonych przez prowadzonego zbiorach danych trening.csv (ciag ˛ uczacy) ˛ oraz test1.csv, test2.csv (ciagi ˛ testowe). 5.2 Aspekty techniczne Prosz˛e przyjać, ˛ że każda obserwacja pojawia si˛e w takiej kolejności, jaka jest w pliku (tzn. pierwszy wiersz pojawia si˛e pierwszy, później drugi, itd.). Uczenie klasyfikatora, tj. szacowanie prawdopodobieństw, ma przebiegać w każdym kroku, tzn. po przybyciu nowej obserwacji. Liczba obserwacji w pliku trening.csv N = 200. Testowanie ma si˛e odbywać po nadejściu nowej obserwacji. Od momentu n = 1 do n = 100 klasyfikator testowany jest przy użyciu zbioru testowego test1.csv, natomiast od n = 101 do n = 200 – test2.csv. Każde testowanie ma zwracać bład ˛ klasyfikacji, liczb˛e wykrytych włamań do liczby wszystkich włamań, liczb˛e wykrytych normalnych sesji do liczby wszystkich normalnych sesji. Czyli testów b˛edzie 200. Nast˛epnie prosz˛e wspomniane liczby przedstawić na wykresach (oś X określa czas, oś Y - wartość wskaźnika). 5