Opis zadania

Komentarze

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