„Projekt i implementacja filtra pakietów dla urządzeń Pocket PC”
Transkrypt
„Projekt i implementacja filtra pakietów dla urządzeń Pocket PC”
„Projekt i implementacja filtra pakietów dla urządzeń Pocket PC” Jakub Grabowski opiekun pracy: prof. dr hab. Zbigniew Kotulski 2005-10-25 Zagrożenia Ataki sieciowe Problemy z bezpieczeństwem sieci WLAN Złośliwe oprogramowanie Motywacja Chęć rozwiązania rzeczywistego problemu z bezpieczeństwem – niekontrolowanego przepływu pakietów pomiędzy urządzeniem, a siecią Brak darmowego oprogramowania typu „personal firewall” dla Pocket PC Tylko dwa komercyjne rozwiązania (nie pozbawione wad) Chęć poznania możliwości posiadanego urządzenia PocketPC Cechy „idealnego” firewalla na Pocket PC Monitorowanie i filtrowanie ruchu przychodzącego i wychodzącego dla stosu TCP/IP Obsługa interfejsów LAN i WAN Szybkość działania Przezroczystość działania Rozpoczęcie działania przy starcie systemu Łatwość konfiguracji Ochrona przed atakami DoS Podgląd stanu połączeń i otwartych portów w systemie Obsługa zaufanych stref Wybrana architektura Analiza nagłówków Ethernet IP TCP/UDP Cel pracy Stworzenie filtra pakietów, działającego na rzeczywistym urządzeniu PocketPC Opracowanie uniwersalnej architektury, która może zostać wykorzystana w innych aplikacjach wymagających dostępu do pakietów Problemy wpływające na kształt projektu Brak interfejsów programistycznych do przechwytywania i filtrowania pakietów w systemie Windows Mobile for Pocket PC – konieczność stworzenia własnego sterownika Uboga dokumentacja interfejsu NDIS (Network Driver Interface Specification) – konieczność wykonania wielu eksperymentów Wysoki koszt komercyjnego oprogramowania do tworzenia sterowników – konieczność konfiguracji darmowych narzędzi tak, aby możliwe było tworzenie sterowników NDIS Architektura komunikacyjna Windows CE Struktura systemu – pomysł na filtrowanie pakietów Struktura systemu – dekompozycja zadań Moduły systemu: Sterownik pośredni Filtr pakietów Parser pakietów Moduł decyzyjny z łańcuchem reguł Zagadnienia implementacyjne – rozwiązane problemy Konfiguracja darmowego środowiska Embedded Visual C++ tak, aby możliwe było stworzenie w nim sterownika NDIS. Zbudowanie sterownika pośredniego i odpowiednia jego konfiguracja tak, aby przepływał przez niego cały ruch TCP/IP. Opracowanie parsera pakietów. Opracowanie dynamicznej struktury danych realizującej łańcuch reguł dla firewalla. Implementacja mechanizmu odrzucania zablokowanych pakietów wewnątrz sterownika pośredniego NDIS. Porównanie z systemami komercyjnymi JG Packet Filter Airscanner Mobile Firewall Bluefire Firewall Filtrowanie ruchu LAN TAK TAK TAK Filtrowanie ruchu WAN NIE NIE TAK Rozpoczęcie działania przy starcie systemu TAK TAK TAK Graficzny interfejs użytkownika NIE TAK TAK Filtrowanie ze względu na adres IP TAK TAK NIE Filtrowanie ze względu na stan połączeń TCP TAK NIE NIE Ochrona przed najpopularniejszymi atakami DoS NIE TAK TAK Podgląd stanu połączeń i otwartych portów w systemie NIE TAK NIE Logowanie zdarzeń TAK TAK TAK Ocena rozwiązania funkcjonalność Mocne strony Filtrowanie ze względu na adres IP Filtrowanie ze względu na stan połączenia TCP Słabe strony Brak graficznego interfejsu użytkownika Brak ochrony przed atakami DoS Brak filtrowania ruchu WAN Ocena rozwiązania – poprawność działania Do testów wykorzystane zostały narzędzia: Telnet Netcat Nmap Ethereal Plany testów przygotowane w oparciu o literaturę i podręczniki ww. narzędzi. Ocena rozwiązania – testy wydajnościowe Plan testu: pomiar opóźnienia wprowadzanego przez filtr przy pobieraniu dużego pliku binarnego Wyniki: Bardzo dobra wydajność modułu decyzyjnego – znikomy wpływ długości łańcucha reguł na opóźnienie w przetwarzaniu pakietu Wprowadzane opóźnienie aż 20 razy krótsze niż maksymalne zalecane przez Microsoft Bardzo dobra wydajność w porównaniu z konkurencyjnym Airscanner Mobile Firewall (ok. 4% opóźnienia dla typowych przypadków, w Airscanner ok. 37% dla najprostszego) Podsumowanie Osiągnięcia: Stworzenie wydajnego, w pełni funkcjonalnego i działającego na rzeczywistym urządzeniu filtra pakietów Opracowanie uniwersalnej architektury, umożliwiającej dostęp do pakietów sieciowch i implementacje bardziej zaawansowanych typów firewalli Stworzenie środowiska programowania sterowników NDIS z darmowych komponentów