ZAPORY SIECIOWE
1. Wprowadzenie
Zapora sieciowa (firewall) jest definiowana jako filtr pakietów, który zezwala na przepływ wybranych pakietów z Internetu do naszego serwera. W ten sposób znacznie zwiększa bezpieczeństwo (zarówno zewnętrzne, jak i wewnętrzne) systemu. Firewall to przepustnica, przez którą przepływa cały ruch pomiędzy zabezpieczoną ( Trusted Network – Prywatna Sieć Internetowa ) i niezabezpieczoną ( Untrusted Network – Internet ) siecią. Aby zrozumieć działanie zapory sieciowej, należy pojąć sposób, w jaki dane są przesyłane przez Internet.
2. Transfer danych w Internecie
Za poprawny przepływ danych w Internecie odpowiedzialny jest zestaw protokołów TCP/IP. Protokół możemy zdefiniować jako język lub standard, według którego odbywa się cały ruch w sieci.
Proces transmisji danych rozpoczyna się w momencie uruchomienia przez nas np. programu do obsługi poczty E-mail (klienta E-mail), czy też klienta FTP (File Transfer Protocol – Protokół Transferu Plików). Klient E-mail jest w architekturze TCP/IP częścią warstwy aplikacji odpowiedzialną za dostarczenie danych (wiadomości e-mail) Protokołowi Transmisji Danych ( Transfer Control Protocol = TCP ), który z kolei stanowi warstwę transportową TCP/IP.
TCP rozbija dane na mniejsze kawałki zwane pakietami oraz przekazuje odpowiedzialność za dalszy transfer Protokołowi Internetowemu ( Internet Protocol = IP ), który tworzy tzw. Niewidzialną Warstwę Sieciową. Protokół Internetowy dodaje różne informacje do każdego pakietu, aby upewnić się iż dany pakiet wie do którego komputera powinien trafić, z jakim portem lub aplikacją ma się spotkać oraz skąd przybywa.
Datagram IP ( pakiet ) zawiera następujące informacje:
Nagłówek – źródłowy i docelowy numer IP, TTL ( Time To Live ), rodzaj użytego protokołu – typ usługi, suma kontrolna, itp.
Dane przeznaczone dla zdalnego hosta w sieci
Kiedy dane dopływają do docelowego serwera, Protokół Internetowy ( IP ) przekazuje pakiety ponownie do Protokólu Transmisji Danych ( TCP ) odpowiedzialnego z kolei za ich połączenie. Do pomyślnego dostarczenia datagramów potrzebne są także numery portów, aby pakiety wiedziały do jakich aplikacji muszą dotrzeć.
Podsumowując, do efektownego dostarczenia danych niezbędne są: źródłowy i docelowy numer IP oraz numery portów.
3. Podział zapór sieciowych
Zapory sieciowe można podzielić na 3 podtypy:
Zapory sieciowe filtrujące pakiety ( Packet Filter Firewalls )
Zapory sieciowe pełniące rolę serwerów proxy ( Application Proxy Firewalls )
Zapory sieciowe nadzorujące pakiety ( Packet Inspection Firewalls )
Zapory sieciowe filtrujące pakiety
Są to najstarsze i najbardziej wadliwe firewall’e, które są rzadko spotykane w dzisiejszych czasach. Oparte są zazwyczaj na router’ach ( bramkach ) – urządzeniach łączących dwie sieci ze sobą.
Kiedykolwiek zapora sieciowa otrzymuje pakiet, porównuje informacje zawarte w nagłówku datagramu ( źródłowy i docelowy numer IP, numer portu ) z wcześniej przez nas zdefiniowaną tabelą kontroli dostępu. Jeżeli informacje w nagłówku spełniają wymagane warunki pakiet jest przepuszczany, w innym wypadku pakiet ulega likwidacji.
Zapory sieciowe filtrujące pakiety nie są popularne, ponieważ pozwalają na bezpośredni kontakt pomiędzy siecią zabezpieczoną, a niezabezpieczoną. Tego rodzaju firewall’e są bardzo łatwe do obejścia przez hakerów. Używając techniki “IP Spoofing” ( atak podszywania ) mogą oni zmienić zródłowy adres IP w taki sposób, aby zapora sieciowa rozpoznała pakiet jako datagram pochodzący z zaufanego systemu ( Trusted System ), który posiada dostęp do sieci strzeżonej przez dany firewall.
Zapory sieciowe pełniące funkcję serwera proxy
Problem związany z ogromną wadliwością firewall’i filtrujących pakiety rozwiązano poprzez użycie serwerów proxy pełniących funkcję zapory sieciowej.
Ten rodzaj firewall’a bada informacje w nagłówku zdalnego pakietu dotyczące rodzaju usługi, dla której dany datagram jest przeznaczony (numery portów) oraz sprawdza czy wyszczególnione usługi są dostępne w obrębie zabezpieczonej sieci. Pakiet jest przepuszczany tylko w wypadku, gdy dana usługa jest dostępna (port usługi jest otwarty). W innym wypadku (port usługi zamknięty) pakiet ulega likwidacji.
Po spełnieniu wymaganych warunków zapora sieciowa wydobywa dane, a następnie dostarcza je do określonych aplikacji.
W przypadku opisywanego typu firewall’i nie istnieje bezpośrednie połączenie pomiędzy siecią zabezpieczoną, a niezabezpieczoną. Wynika to z tego iż zapora sieciowa osobiście dostarcza wszystkie dane bezpośrednio do aplikacji. W tym wypadku hakerzy w celu dostania się do wnętrza systemu muszą najpierw złamać zabezpieczenia firewall’a, co jest o wiele trudniejszym zadaniem.
Jedyną wadą tego typu zapór jest spowolnienie przekazywania danych kosztem zwiększenia zabezpieczenia systemu.
Zapory sieciowe nadzorujące pakiety
Tego typu zabezpieczenia są poprawioną wersją zapór sieciowych filtrującyh pakiety. Poza weryfikacją źródłowych i docelowych adresów IP oraz numerów portów, również badają zawartość danych przed ich przepuszczeniem.
Opisywany typ firewall’a weryfikuje dane za pomocą 2 sposobów:
Inspekcja Stała (State Inspection)
Przychodzący pakiet jest przepuszczany jedynie w wypadku, gdy zaufany serwer prosił o to, lub jeśli wysłał zaproszenie do źródłowego hosta.
Filtrowanie w czasie sesji (Session Filtering)
Przypływające dane nie są weryfikowane, jednak czynności w obrębie zabezpieczonej sieci są monitorowane i w momencie kiedy zaufany system kończy sesję, kolejne pakiety odnoszące się do danej sesji nie są przepuszczane. W ten sposób zapory sieciowe danego typu chronią częściowo nasz system przed techniką podszywania.
Firewall’e nadzorujące pakiety mogą być również wcześniej skonfigurowane, aby zachowywały się w sposób zgodny ze zdefiniowanymi zasadami w razie możliwego ataku.
4. Architektura zapór sieciowych
Używając Internetu możemy napotkać na wiele typów zapór sieciowych. Jednak większość z nich instalowana jest używając 2 sposobów:
1) Bramka z dwoma wyjściami (Dual-homed gateway) ; trudne do przetłumaczenia
W tym przypadku pojedynczy firewall posiada 2 połączenia: z siecią zabezpieczoną oraz niezabezpieczoną. Sieć niezabezpieczona jest połączona z hostami w systemie (serwer E-mail, FTP, itp.) poprzez firewall, a z kolei dane systemy są połączone z siecią zabezpieczoną.
Strefa demilitaryzacji (DMZ – dimilitarized zone)
W przypadku DMZ istnieją 2 zapory sieciowe. Pierwsza z nich posiada dwa połączenia, jedno prowadzące do sieci zabezpieczonej, natomiast drugie do hostów w systemie, takich jak serwer E-mail, FTP, itp. Tego typu hosty są udostępnione dla sieci niezabezpieczonej. Z kolei dane hosty połączone są z zabezpieczonym systemem za pomocą drugiej zapory sieciowej. W ten sposób nie istnieje bezpośrednie połączenie sieci zabezpieczonej z niezabezpieczoną. Przestrzeń znajdująca się pomiędzy tymi dwoma zaporami sieciowymi nazywana jest strefą demilitaryzacji.