Sprzętowo wspomagane metody klasyfikacji danych Jakub Botwicz Politechnika Warszawska, Instytut Telekomunikacji
Plan prezentacji 1. Motywacje oraz cele 2. Problemy klasyfikacji danych 3. Weryfikacja integralności plików 4. Architektury sprzętowe 5. Wyniki eksperymentów
Motywacje Duże ilości danych są przetwarzane w formie elektronicznej: załączniki poczty elektronicznej, obieg dokumentów wewnątrz firmy Zwiększenie bezpieczeństwa jest możliwe poprzez podział systemu na części i kontrolę transferu danych za pomocą firewalli, IPS
Motywacje Organizacje powinny ustalać i wdrażać polityki bezpieczeństwa określające jakie akcje można wykonywać na różnych typach plików Potrzebne są systemy wspomagające wdrażanie polityk wymiany danych jednocześnie o dużej przepustowości oraz o niskich kosztach użycia
Zbliżone problemy klasyfikacji Klasyfikacja typów plików na podstawie ich zawartości Wykrywanie złośliwego oprogramowania Identyfikacja stron internetowych zmodyfikowanych przez włamywaczy Wykrywanie niechcianych wiadomości poczty elektronicznej (spam) Identyfikacja języka / tematyki dokumentu tekstowego
Klasyfikacja typów plików Problem: otrzymujemy nieznany plik Odpowiedź: typ pliku (wykonywalny, dokument, grafika) Pomocniczo: rozszerzenie, liczba magiczna Pełna analiza wymaga znajomości formatu oraz jest kosztowna obliczeniowo Rozwiązanie: stosowanie podpisów cyfrowych dla plików oraz PKI
Identyfikacja złośliwego oprogr. Problem: otrzymujemy nieznany plik Odpowiedź: czy plik jest złośliwym oprgr. (wirus, robak, koń trojański) Może dotyczyć fragmentu pliku Obecnie stosowane: wykrywanie znanych wzorców malware u Rozwiązanie: stosowanie podpisów cyfrowych dla plików oraz PKI
Zbliżone problemy klasyfikacji Klasyfikacja typów plików na podstawie ich zawartości Wykrywanie złośliwego oprogramowania Identyfikacja stron internetowych zmodyfikowanych przez włamywaczy Wykrywanie niechcianych wiadomości poczty elektronicznej (spam) Identyfikacja języka / tematyki dokumentu tekstowego
Weryfikacja integralności plików Zgodność najważniejszych elementów pliku: rozszerzenia, nagłówka, liczby magicznej oraz całej jego zawartości Brak wykonywalnego kodu źródłowego wewnątrz plików niewykonywalnych Brak znanych sygnatur malware u wewnątrz Zgodność ze zdefiniowaną polityką wymiany plików (np. załączników pocztowych)
Cechy rozwiązania Plik jest traktowany jako zbiór bloków (próbek) o stałym rozmiarze Analiza za pomocą przesuwnego okna Rozmiar okna oraz krok przesunięcia muszą być dopasowane do oczekiwanego poziomu dokładności klasyfikacji oraz przepustowości
Architektury sprzętowe Procesory ogólnego przeznaczenia GPP struktura układu ustalona przez producenta Specjalizowane układy scalone ASIC struktura układu ustalona na zamówienie Układy reprogramowalne FPGA struktura układu możliwa do zmiany w gotowym układzie na płycie urządzenia
Akceleracja sprzętowa + Zalety: ominięcie ograniczeń procesorów GPP większa skalowalność rozwiązania niskie koszty gotowego systemu w stosunku do uzyskanej przepustowości Wady: zwiększone koszty implementacji, zmian niedojrzałość narzędzi wspomagających
Cele projektu Szkielet modułu sprzętowego który będzie wydajnie wykonywał weryfikację integralności plików Zestaw narzędzi wspomagających proces eksploracji danych od zbioru plików przykładowych do kodu źródłowego modułu
Architektura modułu sprzętowego Bloki danych Atrybuty Źródło danych Ekstrakcja atrybutów Klasyfikacja bloków pamięć dysk interfejs sieciowy częstości znaków wystąpienia n-gramów metryki entropijne drzewa decyzyjne reguły decyzyjne lasy losowe Klasa bloku Wykrywanie wzorców Korelacja wyników Wzorce odpowiednie dla klasy bloku Klasa pliku
Proces generacji modułu Zbiór wstępnie sklasyfikowanych plików Generator atrybutów Parametry procesu eksploracji danych Parametry procesu generacji modułu Atrybut buty Pakiet narzędzi do eksploracji danych Weka Wybrane atrybuty, klasyfikator Generator kodu modułu Kod modułu Pakiet narzędzi do syntezy Altera Quartus II Konfiguracja układu FPGA Przygotowane oprogramowanie w Javie Kod źródłowy w języku opisu sprzętu Verilog
Zbiór danych wejściowych 6000 plików z 11 typów danych: dokumenty: *.pdf, *.rtf, *.html kod wykonywalny: M$ Win *.exe, Linux ELF, Java bytecode skrypty: Perl, PHP, Unix shell pliki graficzne: *.gif, *.jpg pliki kompresowane: *.zip, *.gz
Wnioski z eksperymentów Pliki powinny być podzielone na obszary: nagłówek wnętrze końcówka Różne typy plików mają wewnątrz trudne do odróżnienia rodzaje bloków: x86_executable_code (Linux ELF, M$ EXE) compressed_content (archiwa, grafika, PDF)
Reguły integralności plików ZIP archive: ZIP_head { } n Compressed_content PDF document: PDF_head { Compressed_content } n Windows x86 executable: EXE_head { } n x86_executable_code Linux x86 ELF: ELF_head PDF_content { } n x86_executable_code PDF_tail EXE_tail ELF_tail
Macierz pomyłek dla nagłówków Classification as a b c d e f g h i j k l Class % % % % % % % % % % % % a bytecode_head 100 b elf_head 98 2 c gif_head 100 d gzip_head 97 3 e html_head 97 3 f jpg_head 99 1 g pdf_head 100 h rtf_head 99 1 i shell_head 93 7 j win_exe_head 99 1 k zip_head 100 l other 1 99 Wyniki eksperymentów na zbiorze 6000 plików w 11 klasach Poprawność klasyfikacji: 98.6%
Macierz pomyłek dla próbek Classification as a b c d e f g h Class % % % % % % % % a bytecode_cont_tail 96 1 2 1 b compressed_content 100 c html_cont_tail 94 3 2 d pdf_cont_tail 1 1 1 96 1 e rtf_cont_tail 2 97 1 f shell_cont_tail 2 2 92 2 2 g x86_exe_content 1 99 h other 1 1 98 Wyniki eksperymentów na zbiorze 6000 plików w 11 klasach Poprawność klasyfikacji: 96.3%
Aktualny stan prac Przygotowane: automatyczne generacja atrybutów szkielety modułów sprzętowych ekstrakcji cech, klasyfikacji danych Wstępne oszacowania: przepustowość modułu >1 Gbps zużycie zasobów sprzętowych <10%
Możliwe zastosowania Urządzenia skanujące dane: Systemy przeciwdziałania włamaniom Zapory przeciwogniowe (FTP, SMTP) Bramy skanujące pocztę elektroniczną Komponenty: Specjalizowany układ scalony ASIC IPCore (biblioteka sprzętowa)
Podsumowanie Organizacje powinny ustalać i wdrażać politykę wymiany plików Celem projektu jest przygotowanie efektywnego komponentu weryfikującego integralność plików Uzyskane na tym etapie rezultaty: poprawność klasyfikacji, wydajność, zużycie zasobów są obiecujące