www.grise.pl

Sieci > Bezpieczeństwo > Ściany ogniowe > Stosowane technologie

Filtrowanie pakietów  Pośredniczenie  Translacja adresów  Wirtualne sieci prywatne 


3.1 Stosowane technologie

Podrozdział ten omawia najważniejsze technologie wykorzystywane przez ściany ogniowe. Technologie te są istotnym elementem wpływającym na bezpieczeństwo i dlatego należy zwrócić na nie uwagę. Przykładowo samo określenie filtr pakietów, które od razu kojarzy się z firewallami, jest bardzo ogólne. Dlatego też warto sprawdzać jaką technologię naprawdę zastosowano w danym urządzeniu.

3.1.1 Filtrowanie pakietów

Filtrowanie pakietów jest podstawową technologią stosowaną w firewallach. Zabezpieczenie polega na kontrolowaniu tego co może wpłynąć i wypłynąć z wewnętrznej, chronionej podsieci. W zależności od poziomu na którym odbywa się filtrowanie dostępne są różne informacje:
 - warstwa dostępu do sieci (źródłowe i docelowe adresy MAC),
 - warstwa internetowa (adresy IP nadawcy i odbiorcy, rodzaj przenoszonego protokołu),
 - warstwa transportowa (porty źródłowe i docelowe, znaczniki),
 - warstwa aplikacji (protokoły takie jak FTP, HTTP, Telnet).
Filtrowaniem może się zajmować dedykowane urządzenie lub też oprogramowanie uruchamiane na komputerze ogólnego przeznaczenia. Naturalnym miejscem do filtrowania pakietów jest ruter. Zwykły ruter ogląda docelowy adres IP pakietu i podejmuje decyzję o wyborze trasy tak, aby trafił on do miejsca swojego przeznaczenia. Ruter filtrujący rozważa dodatkowo pytanie czy powinien w ogóle przekazywać dany pakiet. Może on też podjąć decyzję o modyfikacji pakietu, podniesieniu alarmu lub też ewentualnej rejestracji zdarzenia. Odpowiedź na to pytanie znajduje w zdefiniowanych regułach filtrowania, a te z kolei powstają na podstawie ustalonej polityki bezpieczeństwa.

Wady i zalety filtrowania pakietów

Wkładając odpowiednio dużo wysiłku można w pełni kontrolować przepływ pakietów. Pewne zadania są jednak łatwiejsze do realizacji w systemach pośredniczących (operacje wymagające dokładnej znajomości protokołu lub długiego pamiętania sekwencji poprzednich zdarzeń). Proste operacje natomiast, które mają być wykonywane szybko i na poziomie pojedynczych pakietów łatwiej jest zrealizować z kolei w systemie filtrującym. Główną zaletą jest centralne zabezpieczanie sieci. Rozważmy na przykład usługę Telnet. Zablokowanie korzystania z Telnetu poprzez filtrowanie zabezpiecza komputery w wewnętrznej sieci niezależnie od tego czy będą miały uruchomiony serwer Telnetu, czy też nie. Filtrowanie pakietów pozwala również wykryć i odrzucić nielegalne pakiety. Wiele ataków blokujących usługi polega na wysyłaniu źle sformatowanych pakietów. Również pakiety pochodzące z zewnątrz podszywające się pod maszyny wewnętrzne stanowią często część ataków. Rutery, które dysponują zwykle bardziej odporną implementacją TCP/IP, znajdujące się na granicy sieci wewnętrznej i zewnętrznej, są dobrym miejscem, aby zapobiegać tego typu atakom. Pomimo wielu zalet filtrowanie pakietów posiada też wady. Reguły filtrowania są często trudne do skonfigurowania i przetestowania. Istnieją też sytuacje, w których problemem jest stworzenie reguł na podstawie polityki bezpieczeństwa. Stosując filtrowanie pakietów nie należy zapominać, że stanowi to znaczne obciążenie dla rutera i może w istotny sposób wpłynąć na jego wydajność [11]. Filtry pakietów, podobnie jak inne produkty, mogą też zawierać błędy.

Proste filtrowanie pakietów

Najprostsze metody filtrowania pozwalają na kontrolowanie pakietów na podstawie przypuszczalnego adresu źródłowego, adresu docelowego oraz numerów portów. Brak analizy przesyłanych danych narzuca znaczne ograniczenia. Możliwe jest więc na przykład zakazanie używania wybranego portu lub też nakazanie odrzucania pakietów pochodzących z określonego komputera. Nie jest natomiast możliwe zabronienie wybranemu użytkownikowi na łączenie się z serwerem Telnetu. Nie można też na przykład nakazać wysyłania tylko poczty elektronicznej do portu SMTP.

Zaawansowane filtrowanie pakietów

Zaawansowane filtry pakietów mają też zwykle możliwość przechowywania stanu. Filtry takie nazywane są dynamicznymi lub stanowymi filtrami pakietów (ang. stateful packet filtering). Zachowanie takich systemów zmienia się w zależności od widzianego wcześniej ruchu sieciowego. Przykładowo można pozwolić na wejście pakietom UDP tylko wtedy, gdy stanowią one odpowiedź na widziane niedawno wychodzące pakiety UDP. Inną możliwością jest wpuszczanie pakietów TCP z ustawionym znacznikiem SYN tylko wtedy, gdy stanowią one część nawiązywanego połączenia.

3.1.2 Usługi pośredniczenia

Systemy pośredniczące to systemy, które mają rzeczywisty dostęp do sieci zewnętrznej i działają jako pośrednicy dla komputerów, które go nie mają. Systemy takie nazywane są też serwerami proxy. Istotne jest dobre zabezpieczenie serwera proxy, ponieważ to właśnie on jest bezpośrednio widoczny na zewnątrz sieci. Z tego powodu systemy pośredniczące często funkcjonują w hostach bastionowych. Istotna jest także oszczędność przestrzeni adresowej, ponieważ serwer proxy jest jedynym, który potrzebuje ważnego adresu IP. Podstawową zaletą systemów pośredniczących jest możliwość inteligentnego filtrowania. Jest ono bardziej zaawansowane niż w przypadku filtrów pakietów, ponieważ systemy pośredniczące mają do czynienia z konkretnymi połączeniami. Aktywne zaangażowanie w połączenie pozwala też przeprowadzać uwierzytelnianie na poziomie użytkownika.

Działanie pośredniczenia

Użytkownicy korzystający z systemów pośredniczących mają wrażenie bezpośredniej komunikacji z serwerami w Internecie. W rzeczywistości program użytkownika porozumiewa się jednak z serwerem proxy zamiast z prawdziwym serwerem zewnętrznym. Serwer proxy ocenia żądanie klienta i jeśli jest ono zgodne z polityką bezpieczeństwa to porozumiewa się on z docelowym serwerem w jego imieniu. Potem pośredniczy w komunikacji pomiędzy klientem a serwerem. Po stronie klienta musi być spełniony jeden z poniżej wymienionych warunków [23], aby pośredniczenie mogło poprawnie funkcjonować.

Specjalne oprogramowanie

Problemem jest to, że nie wszystkie aplikacje potrafią współpracować z usługami pośredniczenia. Obecnie jednak coraz więcej aplikacji posiada takie możliwości. Przykładem mogą być na przykład przeglądarki stron WWW: Internet Explorer, Netscape Navigator, Lynx.

Modyfikacja systemu operacyjnego

W tym przypadku system operacyjny jest modyfikowany w celu obsługi pośredniczenia. Zmiana taka powoduje, że większość aplikacji będzie współdziałać z serwerem proxy. Wyjątkiem mogą być aplikacje, które wykonują niskopoziomowe operacje na połączeniach.

Procedury użytkownika umożliwiające współpracę z serwerem proxy

Jest to metoda najbardziej uciążliwa dla użytkowników. Muszą oni bowiem nauczyć się specjalnych procedur, które umożliwiają wykorzystanie standardowego oprogramowania do łączenia się z serwerem proxy.

Ruter obsługujący pośredniczenie

Jest to rozwiązanie, które łączy w sobie cechy pośredniczenia i filtrowania. Jest ono zupełnie niewidoczne dla użytkownika. Ruter przechwytuje pakiety i kieruje je do serwera proxy. Inną możliwością jest, że serwer proxy przedstawia się jako ruter. Sposób działania tej metody przedstawia rysunek 3.1.

Rysunek 3.1 Przekierowywanie połączeń

Rodzaje serwerów proxy

Serwery proxy dzieli się na działające na poziomie aplikacji i na poziomie obwodu. Serwery aplikacyjne znają aplikację na rzecz której pośredniczą, rozumieją i interpretują polecenia w protokole. Inaczej działają serwery obwodowe. Otrzymują one dane i przesyłają je do miejsca przeznaczenia bez interpretowania protokołu aplikacji. Jest też inny podział systemów pośredniczących. Serwery proxy są też bowiem dzielone na uniwersalne i wyspecjalizowane. Uniwersalne potrafią obsługiwać wiele protokołów, a wyspecjalizowane jeden. W praktyce okazuje się jednak, że wyspecjalizowane serwery proxy działają na poziomie aplikacji, a uniwersalne na poziomie obwodu. Poza przedstawionymi powyżej podziałami należy wyróżnić jeszcze jeden rodzaj serwerów proxy. Mogą one bowiem nie tylko przekazywać żądania. Systemy pośredniczące mogą na przykład dodatkowo buforować dane, co w pewnych sytuacjach znacznie zwiększa wydajność. Inne możliwości to dokładna rejestracja zdarzeń lub też zaawansowana kontrola dostępu. Takie serwery proxy nazywane są inteligentnymi. Zauważyć należy, że zwłaszcza aplikacyjne, wyspecjalizowane serwery proxy dysponują dużymi potencjalnymi możliwościami. Pakiet SOCKS jest standardowym pakietem pośredniczącym w Internecie. Jest on bardzo dokładnie udokumentowany [15]. SOCKS jest pakietem uniwersalnym, który nie kontroluje i rejestruje zdarzeń specyficznych dla poszczególnych protokołów. Umożliwia kontrolę dostępu według użytkownika, adresu oraz portu źródłowego i docelowego. Wersja SOCKS5 poza protokołem TCP obsługuje również protokoły UDP i ICMP. Zupełnie inne podejście niż SOCKS proponuje natomiast zestaw narzędziowy TIS FWTK. Zawiera on wiele oddzielnych, wyspecjalizowanych serwerów proxy ze wspólnym plikiem konfiguracyjnym. Wspomnieć należy również o Microsoft Proxy Server. Pakiet ten obsługuje trzy typy pośredniczenia: HTTP, SOCKS oraz Winsock. Pośredniczenie typu SOCKS jest implementacją wersji 4.3a, która obsługuje tylko protokół TCP. Dodatkowo zapewniono obsługę usługi nazewniczej. Winsock to z kolei wyspecjalizowany serwer dla Windows, który modyfikuje środowisko operacyjne po stronie klienta.

3.1.3 Translacja adresów sieciowych

Translacja adresów sieciowych (ang. Network Address Translation - NAT) pozwala na używanie innych adresów sieciowych wewnątrz oraz na zewnątrz sieci. Modyfikowane są wówczas adresy w nagłówkach przechodzących pakietów. System translacji adresów może jednocześnie modyfikować również numery źródłowych i docelowych portów. Nosi to nazwę translacji portów i adresów sieciowych (ang. Port and Address Translation - PAT). Przykład działania przedstawia rysunek 3.2.

Rysunek 3.2 Translacja adresów i portów

Różne sposoby tłumaczenia adresów:
 - statyczna translacja adresów (do każdego adresu wewnętrznego jest na stałe przydzielony jeden adres zewnętrzny),
 - dynamiczna translacja adresów (adresy zewnętrzne przydzielane są z ustalonej puli podczas nawiązywania połączenia przez hosty z sieci wewnętrznej),
 - dynamiczna translacja adresów i portów (poza adresami również porty przydzielane są dynamicznie podczas nawiązywania połączenia).

Najczęściej stosowana jest dynamiczna translacja adresów i portów sieciowych, ponieważ najefektywniej wykorzystuje ona przestrzeń adresową. Dodatkowo ukrywa wewnętrzny układ sieci i pozwala wymusić kontrolę nad wychodzącymi połączeniami w jednym punkcie. Wymuszanie kontroli realizuje się nadając komputerom w sieci wewnętrznej adresy, które nie działają w sieci zewnętrznej. Uniemożliwia to nawiązywanie połączeń z pominięciem systemu translacji adresów. Translacja adresów nie jest oczywiście rozwiązaniem pozbawionym wad. Problemy mogą wystąpić z bezpołączeniowym protokołem UDP. Nie można bowiem stwierdzić na podstawie nagłówka czy dany pakiet UDP stanowi część konwersacji, czy też jest oddzielnym zdarzeniem [12]. Innym problemem są ukryte adresy IP. W przypadku niektórych protokołów system translacji adresów musi na tyle dobrze rozumieć ten protokół, aby znaleźć i zmodyfikować ukryte adresy IP. Należy zaznaczyć też, że systemy translacji adresów nie zawsze dobrze współpracują z systemami szyfrowania i uwierzytelniania. Modyfikacja zabezpieczonych danych powoduje naruszenie integralności i zerwanie połączenia. Przykładem może być IPSec, który może zabezpieczać całe pakiety łącznie z nagłówkami.

3.1.4 Wirtualne sieci prywatne

Omawiając technologie stosowane w firewallach należy wspomnieć o wirtualnych sieciach prywatnych (ang. Virtual Private Network - VPN). Wykorzystują one mechanizmy kryptograficzne, aby korzystać z publicznych sieci tak, jakby były one sieciami prywatnymi. Pozwala to osiągnąć porównywalny poziom bezpieczeństwa przy niższych kosztach [11]. Istotna jest również powszechna dostępność. Korzystanie z VPN, kiedy firewall nie potrafi kontrolować tego ruchu nie jest dobrym rozwiązaniem. Zalecane jest dodawanie usług VPN do innych możliwości ścian ogniowych. Przykładem takiego rozwiązania mogą być produkty firmy Cisco. Istotne jest także, aby wirtualna sieć prywatna nie stawała się automatycznie częścią sieci wewnętrznej. Jej zdalne końce również powinny być prawidłowo zabezpieczone.



Wstecz  Spis treści  Dalej