« poprzedni punkt | następny punkt » |
Filtrowanie pakietów oparte jest na pomyśle aby badać nagłówki pakietów i odrzucać te pakiety, które nie odpowiadają określonej specyfikacji. Istnieją dwa podstawowe typy filtrów pakietów:
Teoretycznie w takich filtrach decyzja o akceptacji lub odrzuceniu pakietu mogłaby brać pod uwagę każdy element składowy nagłówka określonego protokołu. Najczęściej jednak filtrowanie oparte jest na takich polach jak:
Filtrowanie adresów IP może mieć sens, jeżeli dopuścimy tylko połączenia z zaufanych hostów. Może to być lista komputerów własnych, komputerów klientów i pracowników zdalnych. Zwykle nie jest możliwe powiązanie listy adresów IP z listą portów (protokołów) - a byłoby to bardzo dobre rozwiązanie. Taki filtr ogranicza ruch na podstawie pola adresowego. Jednak podany w nagłówku adres nie musi być prawdziwy (mógł zostać sfałszowany). Taka sytuacja może wystąpić podczas ataku, gdy nie jest potrzebna informacja zwrotna, np. atak typu DoS. Informacja zwrotna nie jest potrzebna również wtedy, gdy adres zwrotny jest zawarty dodatkowo w polu danych (np. w FTP).
Filtrowanie portów nazywane jest również filtrowaniem protokołów wyższych warstw. Do najważniejszych protokołów, które należy zablokować należą:
Inne porty (np. DNS mogą być wykorzystane do uszkodzenia pewnej informacji, ale nie mogą służyć do przejęcia pełnej kontroli nad komputerem). Blokować się również powinno porty obsługujące każde oprogramowanie pozwalające na zdalny dostęp lub zdalne nadzorowanie sieci (np. PC Anywhere). Występują problemy z określeniem ruchu do zwrotnych portów połączeń nawiązanych z wnętrza sieci.
Routing źródłowy (source routing) - opcja ta umożliwia określenie przez nadawcę trasy pakietu, czyli wykazu hostów, które powinny kolejno uczestniczyć w przekazywaniu pakietu. Pierwotnie była wykorzystywana do testowania i usuwania usterek. Są dwa sposoby wyboru trasy przez nadawcę:
W tej chwili nie istnieje żaden protokół wymagający ustawienia tej opcji. Czyli można ją zablokować.
Fragmentacja - umożliwia przesyłanie dużych pakietów IP (przekraczających dozwolone wymiary ramek). Pakiet jest dzielony i przesyłany po kawałku. System odbierający składa je w całość. Najbardziej użyteczne do filtrowania dane (numery portów TCP/UDP) są na początku - we fragmencie zerowym. Z tego powodu dalsze fragmenty nie mogą być filtrowane w oparciu o numery portów i przechodzą przez filtry mimo, że fragment zerowy został odrzucony. Niektóre błędne implementacje TCP/IP składają te fragmenty zamiast je odrzucić. Oznacza to, że jeżeli wysyłane fragmenty będą numerowane od 1, a nie od 0, to filtrowanie takie zostanie oszukane.
Większość współczesnych systemów operacyjnych udostępnia funkcje filtrowania. Technika taka nazywana jest filtrowaniem pakietów w systemie końcowym, ponieważ ostatni komputer na trasie pakietu wykonuje filtrowanie. Włączając pomocnicze filtrowanie bezpośrednio na serwerach, zapewniamy dodatkową ochronę, przydatną w przypadku, gdy awarii ulegnie graniczny punkt kontroli lub atak przyjdzie z wnętrza sieci.
Problemy filtrowania bezstanowego:
Brak możliwości dokładnego sprawdzania ładunków danych. Decyzja jest podejmowana jedynie na podstawie zawartości nagłówka. Wobec tego nie ma możliwości wykrycia np. koni trojańskich umieszczonych w kontrolkach ActiveX, niewłaściwego sformatowania danych dla serwera pocztowego.
Brak pamiętania stanu połączenia. Istnieje wobec tego problem określenia ruchu zwrotnego do portów, z których nawiązywano połączenie. Faktycznie nie istnieje możliwość filtrowania ruchu do portów wysokich (powyżej 1024).
Filtry z badaniem stanu
Przechowują informację o stanie całego ruchu przechodzącego przez filtr. Wykorzystują ją do określania czy pojedynczy pakiet powinien być odrzucony. Filtry takie działają na poziomie warstwy sieciowej oraz sesji. Informacja jest pobierana z pakietów przepływających podczas nawiązywania sesji. Gdy host wewnętrzny łączy się z hostem zewnętrznym, w pakiecie inicjującym umieszczony jest adres gniazda zwrotnego (adres IP i numer portu) na którym oczekuje na odpowiedź. Informacje te są zapamiętywane przez filtr. Umożliwiają potem odróżnienie poprawnych pakietów zwrotnych od niepoprawnych prób połączeń lub włamań. Kiedy przychodzi odpowiedź, sprawdzane są zapisy w tablicy filtra w celu sprawdzenia, czy pakiet ma zostać przepuszczony. Jeżeli z zewnątrz przychodzi pakiet, który nie ma pozycji w tablicy stanów , to jest odrzucany. Zapisy w tablicy stanów są usuwane gdy przesyłane są pakiety związane z zamknięciem sesji lub po upływie określonego czasu. Wyjątki określają pakiety:
Filtry z badaniem stanu nadal nie rozwiązują problemu wewnętrznej analizy protokołów wyższych warstw. Ideę funkcjonowania tego typu filtra przedstawia rys. 1.
Rys. 1 Idea funkcjonowania filtra z badaniem stanu
« poprzedni punkt | następny punkt » |