5. TECHNIKI ZABEZPIECZANIA ZASOBÓW SIECI LOKALNEJ Podstawowe pojęcia i koncepcje zabezpieczeń Różne rodzaje zasobów wymagają różnych rodzajów zabezpieczeń. Zabezpieczenia zależą od takich czynników, jak wartość chronionych zasobów, stopień ich narażenia na ataki i rodzaje najbardziej prawdopodobnych ataków. Dwie podstawowe polityki zabezpieczeń to: a) zabezpieczenie każdego komputera w sieci oddzielnie; b) zabezpieczenie sieci lokalnej jako całości. Druga z tych polityk zazwyczaj uważana jest za korzystniejszą od pierwszej (z powodów organizacyjnych i finansowych). W praktyce obie te polityki często stosowane są łącznie, przy czym szczegóły zastosowanego rozwiązania zależą od topologii sieci, sposobu wykorzystywania sieci, rozmieszczenia zasobów oraz rodzajów usług udostępnianych na zewnątrz. W dalszym ciągu będziemy rozważali głównie zabezpieczenia sieci przed (anonimowymi) atakami z zewnątrz (przy założeniu pewnego poziomu zaufania do użytkowników zarejestrowanych w sieci).
Zapora sieciowa (firewall – dosłownie „ściana ogniowa” w sensie „ściana ognioodporna”) jest to pojęcie logiczne, obejmujące całość sprzętu i oprogramowania zastosowanego w danej sieci lokalnej do analizowania i wybiórczego przepuszczania ruchu na poziomie protokołu sieciowego. Zazwyczaj służy do oddzielania sieci lokalnej od sieci zewnętrznej (Internetu), pozwalając jedynie na wybrane rodzaje komunikacji (i/lub z wybranymi hostami na zewnątrz). W dalszym ciągu będziemy prowadzili rozważania przy założeniu, że sieć lokalna ma tylko jedno połączenie z Internetem (stub network), i że tylko to „wąskie gardło” podlega zabezpieczaniu. Często zdarza się, że firma, której byt w dużym stopniu zależy od ciągłości i niezawodności dostępu do Internetu, posiada również zapasowe połączenie z alternatywnym dostawcą usług internetowych. W takim przypadku należy pamiętać, aby to alternatywne połączenie nie stało się słabym punktem całej ochrony sieci – najlepiej jest, jeśli jest ono domyślnie wyłączone, a administrator włącza je tylko w przypadku awarii łącza podstawowego, dbając jednocześnie, aby w czasie swojego działania nie było gorzej zabezpieczone, niż łącze podstawowe.
Technologie stosowane w firewallach 1) Filtrowanie pakietów Polega na analizowaniu zawartości każdego otrzymanego pakietu i dynamicznym podejmowaniu decyzji, czy przepuścić go dalej. Zwykle odbywa się w ruterze, ale może też być wykonywane przez niektóre mosty oraz przez hosty docelowe. Jest przezroczyste dla oprogramowania użytkowego wykorzystującego sieć (nie wymaga od niego żadnych dodatkowych funkcji, na przykład uwierzytelniania się). W najprostszym przypadku kryteria filtrowania są związane z zawartościami pól w nagłówku: - adres IP nadawcy; - adres IP odbiorcy; - rodzaj protokołu nadrzędnego (TCP, UDP, ICMP); - port nadawcy (TCP lub UDP); - port odbiorcy (TCP lub UDP); - typ komunikatu ICMP; - rozmiar pakietu.
Dodatkowo „inteligentny” filtr może sprawdzać także: - poprawność pakietu (poprawność nagłówka, zgodność nagłówka z zawartością pakietu); - poprawność nagłówka protokołu nadrzędnego; - poprawność zawartych w pakiecie żądań kierowanych do portów udostępniających usługi standardowe. Poza zawartością pakietu filtr może brać pod uwagę: - do którego interfejsu wpłynął dany pakiet; - który interfejs powinien go wysłać dalej. Wszystkie powyższe kryteria mają tę wspólną cechę, że dotyczą jedynie aktualnie rozpatrywanego pakietu, a nie biorą pod uwagę żadnych faktów, które miały miejsce w przeszłości. Filtry stosujące jedynie tego rodzaju kryteria nazywane są bezstanowymi (stateless) lub bezpamięciowymi. Filtry, które uwzględniają w swoim działaniu również historię, nazywane są stanowymi (stateful) lub dynamicznymi filtrami pakietów.
Przykłady reguł filtrowania dla bezstanowego filtru pakietów: - wpuszczaj z interfejsu zewnętrznego pakiety skierowane do portu TCP 80; - nie wpuszczaj z interfejsu zewnętrznego żadnego pakietu z adresem nadawcy z puli adresów prywatnych; - nie wpuszczaj z interfejsu zewnętrznego żadnego pakietu z rozgłoszeniowym adresem odbiorcy; - nie wpuszczaj z interfejsu wewnętrznego żadnego pakietu z adresem nadawcy spoza puli używanej w danej sieci lokalnej; - wpuszczaj z interfejsu wewnętrznego wszystkie pakiety zawierające segmenty TCP; - nie wpuszczaj z interfejsu wewnętrznego żadnego pakietu z adresem odbiorcy ; - nie wpuszczaj z interfejsu zewnętrznego żadnego pakietu ICMP z komunikatem typu echo_request.
Przykłady reguł filtrowania dla stanowego filtru pakietów: - wpuszczaj z interfejsu zewnętrznego pakiety UDP z adresem nadawcy równym adresowi odbiorcy w którymkolwiek z wychodzących z sieci w ciągu ostatnich 5 minut pakietów UDP; - wpuszczaj z interfejsu zewnętrznego pakiety stanowiące fragmenty większego datagramu, którego nagłówek już został wcześniej zweryfikowany; - nie wpuszczaj z interfejsu zewnętrznego pakietów z adresem nadawcy, spod którego w ciągu ostatnich 10 minut przyszło więcej, niż 1000 pakietów; - nie wpuszczaj z interfejsu zewnętrznego pakietów zawierających segmenty TCP z ustawioną flagą SYN, jeśli pod adres będący adresem nadawcy nie został w ciągu ostatniej minuty wysłany żaden pakiet z sieci wewnętrznej.
Uwaga: 1) Składnia zapisu reguł oraz możliwe czynniki uwzględniane w regułach zależą od konkretnego zastosowanego systemu (ipchains w Linuksie, ACL w systemach Cisco, firewalle w serwerach Windows i in.). Reguły określają: a) co jest dozwolone; b) co jest zabronione; 2) Kolejność brania pod uwagę reguł umieszczonych na liście ma zasadnicze znaczenie. Najczęściej reguły są uwzględniane w takiej kolejności, w jakiej są umieszczone na liście, a zatem lista powinna zaczynać się od reguł najbardziej szczegółowych, a kończyć na najogólniejszych; 3) Ostatnią regułą zawsze powinna być reguła „wszystko poza tym jest zabronione” (rutery mogą umieszczać ją na końcu domyślnie); 4) W praktyce listy reguł mogą być bardzo długie i skomplikowane (kilkadziesiąt, a nawet kilkaset pozycji). W takich przypadkach sprawdzanie ich właściwego ustawienia i testowanie działania może być bardzo trudne – zalecane są matematyczne metody weryfikacji; 5) Jest zalecane, aby było możliwe tworzenie list reguł dla każdego interfejsu rutera oddzielnie; 6) Niektóre filtry samorzutnie zmieniają kolejność stosowania reguł na listach w celu optymalizacji (skrócenia czasu ich stosowania). Jeśli algorytm tych zmian nie wynika jasno z dokumentacji lub nie odpowiada naszym zamierzeniom, należy zrezygnować z zakupu tych filtrów [E. Zwicky i in.].
Przykład [E. Zwicky i in.] Administrator sieci firmowej o adresie /16 organizuje współpracę z (bezpośrednio połączoną) siecią uniwersytecką o adresie /8. W sieci firmowej wyróżniona jest podsieć wspólnego projektu o adresie /24, do której dostęp powinien mieć cały uniwersytet. Podsieć uniwersytecka /24 jest mniej godna zaufania, gdyż od czasu do czasu przychodzą z niej szkodliwe pakiety, i dlatego nie powinna mieć dostępu nigdzie poza podsiecią wspólnego projektu. Zostały przyjęte następujące reguły filtrowania ruchu przychodzącego na styku obu sieci: a) pozwól na dowolne połączenia z sieci /8 do sieci /24 b) zabroń jakichkolwiek połączeń z sieci /24 do sieci /16 c) zabroń jakichkolwiek innych połączeń Wnioski: 1)stosowanie reguł w kolejności a), b), c) da pożądane rezultaty; 2)stosowanie reguł w kolejności b), a), c) nie da pożądanych rezultatów; 3)reguła b) jest zbędna (same reguły a) i c) zapewniłyby właściwy rezultat).
Możliwe reakcje filtru pakietów na otrzymany pakiet: - przepuszczenie pakietu bez zmian; - odrzucenie (zniszczenie) pakietu i powiadomienie nadawcy o błędzie; - odrzucenie pakietu bez powiadomienia nadawcy; - odrzucenie pakietu i zarejestrowanie informacji o tym incydencie; - odrzucenie pakietu i natychmiastowe zaalarmowanie (np. administratora lub niedoszłego odbiorcy). Dodatkowo inteligentne filtry pakietów mogą wykonać takie czynności, jak: - przekierowanie pakietu pod inny adres docelowy; - modyfikacja reguł filtrowania (na przykład żeby odrzucać wszystkie dalsze pakiety przychodzące spod tego samego adresu). Uwaga: Może być przedmiotem dyskusji, w jakich przypadkach powiadamiać nadawcę o błędzie, a w jakich nie. Na ogół jest przyjmowane, że nadawcę w sieci wewnętrznej należy powiadamiać (przyspieszy to jego pracę), natomiast nadawcę spoza sieci wewnętrznej – nie (utrudni to działanie ewentualnym włamywaczom).
Zalety filtrowania pakietów: - możliwość ochrony całej sieci lokalnej przy użyciu pojedynczego urządzenia; - duża wydajność (w przypadku prostych reguł i niedługich list); - szeroka dostępność wyspecjalizowanego sprzętu oraz oprogramowania do filtrowania. Wady filtrowania pakietów: - długie listy skomplikowanych reguł wyraźnie zmniejszają wydajność przekazywania pakietów; - składnia poleceń tworzących reguły i listy reguł bywa dość skomplikowana; - język tworzenia reguł filtrowania nie zawsze jest w stanie zaspokoić wszystkie potrzeby użytkowników (nie wszystko da się w nim wyrazić).