Efektywne wyszukiwanie wzorców w systemach automatycznej generacji sygnatur ataków sieciowych Tomasz Joran Kruk NASK Dział Naukowy Cezary Rzewuski Politechnika Warszawska NASK/ PW Konferencja SECURE 2006, 17-18 paźziernika 2006 r. 1
Agena 1. Sygnatury w systemach IDS 2. Architektura systemu automatycznej generacji sygnatur 3. Generacja sygnatur prolemy algorytmiczne 4. Bilioteka lilcs NASK/ PW Konferencja SECURE 2006, 17-18 paźziernika 2006 r. 2
Definiowanie nowych ataków 1. klasyfikacja analizowanego ruchu sieciowego, ruch poprawny czy anomalia, 2. porównanie z własnymi i zewnętrznymi azami wiezy, czy ruch zientyfikowany jako już znane zagrożenie, 3. la ruchu nieznanego - próa generacji sygnatury ataku sieciowego, 4. weryfikacja wytworzonej sygnatury wzglęem próek ruchu sieciowego - miara jakości sygnatury, 5. klasyfikacja sygnatury na postawie analizy pooieństwa z uprzenio wytworzonymi sygnaturami. NASK/ PW Konferencja SECURE 2006, 17-18 paźziernika 2006 r. 3
Sygnatury la systemów IDS Sygnatura - zespół cech charakterystycznych la anego zagrożenia. xjesrkfiupkvlcm.exexyzzseralortu połączenie na port 110 protokołu TCP TCP 110 cm.exe Elementy sygnatury ataku sieciowego: rozaj usługi (port przeznaczenia), charakterystyczny ciąg ajtów, specyficzne ustawienia w nagłówkach protokołu. NASK/ PW Konferencja SECURE 2006, 17-18 paźziernika 2006 r. 4
Cechy orej sygnatury ataku Dora sygnatura ataku sieciowego powinna: wykrywać jak największy procent rzeczywistych ataków (prolem false negative), nie pasować o prawiłowego ruchu sieciowego (prolem false positive). Sygnatura oparta o łaunek (ang. payloa) wykorzystująca koncepcję najłuższego wspólnego pociągu (ang. LCS) jaka jest jakość sygnatury z minionego przykłau (cm.exe)? co roić w przypaku krótkich wspólnych pociągów? NASK/ PW Konferencja SECURE 2006, 17-18 paźziernika 2006 r. 5
Śroowisko pracy - systemy honeypot Systemy honeypot/ honeynet: wykorzystanie nieużywanych aresów IP w celu emulacji hostów z uruchomionymi popularnymi usługami, Dwie kategorie połączeń o systemów honeypot: niegroźne połączenia zainicjowane pomyłkowo (rzakość), połączenia o roaków skanujących sieć w poszukiwaniu nowych ofiar (uże prawopooieństwo). Połączenia o systemów honeypot z założenia nie są ruchem poprawnym - ore śroowisko pracy la systemów generacji sygnatur. NASK/ PW Konferencja SECURE 2006, 17-18 paźziernika 2006 r. 6
Honeycom prekursor generacji Honeycom prekursor generacji sygnatur ataków sieciowych: system automatycznej generacji sygnatur ataków sieciowych, prowizorycznie rozszerzona wersja systemu honeypot honey, wykorzystanie koncepcji LCS (ang. longest common susequence), realizacja wyszukiwania LCS z wykorzystaniem tzw. rzew sufiksowych zaimplementowanych w postaci zewnętrznej ilioteki listree. NASK/ PW Konferencja SECURE 2006, 17-18 paźziernika 2006 r. 7
Architektura systemu generacji sygnatur Propozycja własnej alternatywnej architektury: honeypot emulacja serwisów TCP, interakcja z intruzem. is + rozszerzenia skłaanie strumieni połączeń TCP, generacja sygnatur. arp spoof osługa zapytań arp. NASK/ PW Konferencja SECURE 2006, 17-18 paźziernika 2006 r. 8
Automatyczna generacja sygnatur Elementy systemu automatycznej generacji sygnatur is (Snort + SigSearch) honeypot (honey) połączenia TCP zapytanie arp arp spoof (arp) NASK/ PW Konferencja SECURE 2006, 17-18 paźziernika 2006 r. 9
LCS a zaganienia wyajności wielomianowa złożoność prostych algorytmów wyznaczania LCS la wóch ciągów ajtów, wymóg liniowego czasu przetwarzania anych wejściowych w celu generacji sygnatur w tryie on-line, reprezentacja jenego z łańcuchów w postaci rzewa sufiksowego możliwością wyznaczenia LCS z liniową złożonością oliczeniową, NASK/ PW Konferencja SECURE 2006, 17-18 paźziernika 2006 r. 10
Koncepcja rzewa sufiksowego n-ty prefiks prefiks skłaający się z n pierwszych znaków, n-ty sufiks sufiks rozpoczynający się na pozycji n, (trzeci sufiks California to ciąg lifornia). Drzewo sufiksowe graf reprezentujący ciąg znaków w postaci opowieniej konkatenacji jego sufiksów. NASK/ PW Konferencja SECURE 2006, 17-18 paźziernika 2006 r. 11
Struktura rzewa sufiksowego 1 a c 4 a 5 c 6 a c a 2 3 ciąg a c a licza liści równa ługości ciągu, każemu sufiksowi opowiaa jena ścieżka o korzenia o liścia. NASK/ PW Konferencja SECURE 2006, 17-18 paźziernika 2006 r. 12
Wstęp wyszukiwanie wzorca w ciągu Drzewa sufiksowe jako reprezentacja anych umożliwiająca realizację okłanego opasowania (ang. exact string matching): niech P, ciąg krótszy (wzorzec), a S, ciąg łuższy, zaanie: wskazanie pozycji w ciągu S, na których występuje wzorzec P, uowa rzewa sufiksowego T ciągu S, opasowywanie znaków począwszy o korzenia, opasowywanie zakończone, gy wykorzystano wszystkie znaki wzorca P alo niemożliwe jest alsze opasowywanie, złożoność wyszukiwania: O( S + P ). NASK/ PW Konferencja SECURE 2006, 17-18 paźziernika 2006 r. 13
Algorytm wyznaczenia wspólnego pociągu wóch łańcuchów 1. Buowa rzewa sufiksowego pierwszego łańcucha, 2. Znalezienie jak najłuższego opasowania sufiksów rugiego łańcucha na zuowanym rzewie, 3. Zwrot pasującego fragmentu sufiksu rugiego ciągu, którego opasowanie yło najłuższe. NASK/ PW Konferencja SECURE 2006, 17-18 paźziernika 2006 r. 14
Wyznaczenie wspólnego pociągu - przykła a c a c a c a Talica trafień: a c 3 2 1 1 opasowanie pierwszego sufiksu rozpoczyna się w korzeniu rzewa, o przejść pomięzy kolejnymi operacjami opasowania wykorzystywane są łączniki sufiksowe. NASK/ PW Konferencja SECURE 2006, 17-18 paźziernika 2006 r. 15
Wyznaczanie wspólnego pociągu - wyajność Na złożoność oliczeniową wyznaczania wspólnego pociągu wpływ mają wa elementy: złożoność oliczeniowa stworzenia rzewa sufiksowego, złożoność oliczeniowa wyszukiwania wspólnego pociągu. W przypaku algorytmów naiwnych: stworzenie rzewa - O(n 2 ), wyszukiwanie wspólnego pociągu - O(n). Do przetwarzania on-line niezęna złożoność liniowa. NASK/ PW Konferencja SECURE 2006, 17-18 paźziernika 2006 r. 16
Algorytm naiwny (uowa rzewa sufiksowego) a c a c a c a a c a czas wykonania O(n 2 ), nowy sufiks oawany n razy, oanie sufiksu wymaga co najwyżej n porównań, NASK/ PW Konferencja SECURE 2006, 17-18 paźziernika 2006 r. 17
Łącznik sufiksowy Niech xa to pewien ciąg, gzie x oznacza jeen znak, a a pociąg o nieokreślonej ługości (w tym pusty). Jeżeli xa jest ścieżką o korzenia o węzła wewnętrznego v i istnieje innych węzeł s(v) o ścieżce a, to s(v) jest la v łącznikiem sufiksowym. Przy wyznaczaniu wspólnych pociągów łańcuchów: zamiast okonywać kosztownego przejścia o korzenia o każego pociągu, nożna przechozić o kolejnej gałęzi poprzez łączniki sufiksowe, poprzez wykorzystanie łączników złożoność wyznaczania wspólnych pociągów zreukowana o O(n). NASK/ PW Konferencja SECURE 2006, 17-18 paźziernika 2006 r. 18
Algorytm Ukkonen'a (uowa rzewa sufiksowego) a c a c a c a a c a uowa rzewa w czasie liniowym, jeno przejście ciągu wejściowego w trakcie przeiegu algorytmu, o rzewa oawane łączniki sufiksowe, łączące węzły o ścieżkach xα i α NASK/ PW Konferencja SECURE 2006, 17-18 paźziernika 2006 r. 19
Bilioteka listree szeroko stosowana implementacja algorytmu Ukkonen'a, ostępna na licencji BSD, wykorzystywana w ioinformatyce, wykorzystywana przez honeycom, elementami rzewa mogą yć owolne struktury anych (przykła: poszukiwanie wspólnych fragmentów orazów, uzywając wartości RGB jako elementów łańcucha), ograniczone możliwości optymalizacji, elastyczność kosztem wyajności. NASK/ PW Konferencja SECURE 2006, 17-18 paźziernika 2006 r. 20
Bilioteka lilcs uowa rzewa sufiksowego algorytmem Ukkonen a, arzo wyajny mechanizm wyznaczania LCS przy porównywaniu jenego ciągu z wieloma innymi wystarczy uowa jenego rzewa, zoptymalizowana po kątem pracy z ciągami struktur jenoajtowych. NASK/ PW Konferencja SECURE 2006, 17-18 paźziernika 2006 r. 21
Bilioteki listree i lilcs - porównanie listree lilcs uowa rzewa algorytmem Ukkonen a, anymi wejściowymi mogą yć łańcuchy owolnych struktur anych, wspólny pociąg wyznaczany za pomocą uogólnionego rzewa sufiksowego, możliwość wyznaczenia LCS wielu ciągów jenocześnie. uowa rzewa algorytmem Ukkonen a anymi wejściowymi mogą yć tylko łańcuchy ajtów wspólny pociąg wyznaczany za pomocą talicy trafień wyznacza LCS wóch łańcuchów NASK/ PW Konferencja SECURE 2006, 17-18 paźziernika 2006 r. 22
lilcs, listree porównanie wyajności Długość ciągu wejściowego 10000 10000 1000000 1000000 lilcs 10000 20000 7,1 mln 7,9 mln listree 390000 400000 86,5 mln 96,7 mln la ciągów ajtów ługości 10000 znaków lilcs wyznacza LCS 20 o 40 razy szyciej, przy ługościach rzęu 1000000 lilcs zwraca wynik 12 o 14 razy szyciej. NASK/ PW Konferencja SECURE 2006, 17-18 paźziernika 2006 r. 23
Posumowanie sygnatury generowane są na postawie wspólnych pociągów strumieni połączeń, wyznaczanie sygnatur połączeń wymaga algorytmów o złożoności O(n), znalezienie LCS w czasie liniowym możliwe zięki przekształceniu jenego argumentu o postaci rzewa sufiksowego, ilioteka lilcs pozwala na efektywne wyznaczanie wzorców wóch ciągów ajtów. NASK/ PW Konferencja SECURE 2006, 17-18 paźziernika 2006 r. 24