Zapory sieciowe (firewalle)


Czym jest firewall?

Zapora sieciowa (firewall) jest urządzeniem zaprojektowanym do zapobiegania niepowołanemu dostępowi do sieci. Urządzeniem tym zazwyczaj jest niezależny komputer, muter lub inny sprzętowy element sieci. Zapora stanowi jedyny punkt wejściowy do sieci lokalnej - jej zadaniem jest kwalifikacja nadchodzących z zewnątrz zgłoszeń według zadanych reguł i ich przetworzenie, co w najprostszym ujęciu sprowadza się do akceptacji, bądź odrzucenia żądania połączenia z danym serwerem usług sieciowych.

W większości przypadków kwalifikacji żądania połączenia dokonuje się bazując na adresie źródłowym pakietu. Jeśli, przykładowo, nie chcemy udostępniać usług naszego serwera użytkownikom z danej domeny, wprowadzamy odpowiednią maskę do reguł sterujących zapory i odtąd próby połączenia z naszym serwerem dla danej grupy użytkowników zakończą się komunikatem "Connection Refused" (połączenia odmówiono) lub podobnym (możliwa jest również sytuacja, gdzie połączenie jest zrywane bez prezentacji żadnego komunikatu).

Inne zadania realizowane przez zapory sieciowe

Zapory sieciowe mogą przeprowadzać analizy nadchodzących pakietów różnych protokołów. W oparciu o taką analizę, zapora sieciowa może podjąć różne działania, zatem możemy zaprogramować firewall do przeprowadzania warunkowego przetwarzania pakietów. ("Jeśli zostanie napotkany pakiet spełniający warunek A, podejmij działanie B").

Takie warunkowe struktury nazywane są regułami. Na ogół, podczas "stawiania" zapory wyposażamy ją w zestaw reguł odzwierciedlający strukturę zależności służbowych w naszej organizacji. Na przykład, załóżmy, że w firmie jest dział sprzedaży i księgowości, a strategia przedsiębiorstwa wymaga, aby tylko dział sprzedaży miał dostęp do zasobów naszego serwera. Aby wymusić realizację tej polityki, wyposażamy nasz firewall w regułę nie przyjmującą zgłoszeń połączenia otrzymywanych z działu księgowości. W takim aspekcie zapory sieciowe są tym dla sieci, czym są przywileje użytkownika dla systemu operacyjnego. Windows NT pozwala na wskazanie użytkowników mających dostęp do danego pliku lub katalogu. Jest to kontrola dostępu na poziomie systemu operacyjnego. Podobnie zapory sieciowe pozwalają na zastosowanie kontroli dostępu do zasobów naszego serwera i stacji roboczych w sieci.

Monitorowanie dostępu jest jednakże tylko częścią tego, do czego można wykorzystać nowoczesne zapory sieciowe - większość komercyjnych firewalli pozwala na kontrolę zawartości pakietów. Można to wykorzystać do odfiltrowywania niepożądanych skryptów JavaScript, VBScript i ActveX oraz plików cookies. Co więcej, mamy możliwość zdefiniowania reguł dyskryminujących poszczególne połączenia na podstawie tzw. sygnatur ataku.

Uwaga

Sygnatury ataków są wzorcami poleceń charakterystycznymi dla danego ataku przypuśćmy, że nasz intruz "telnetuje' się na port 80 i wydaje szereg istotnych z jego punktu widzenia komend. Znając taki proces, możemy "nauczyć" firewall rozpoznawać i blokować podobne ataki na podstawie wzorca zawartego w sygnaturze. Podobne efekty można również uzyskać analizując ruch na poziomie pakietu niektóre programy do zdalnego wykorzystywania luk systemowych generują charakterystyczne pakiety, które można wyodrębnić i podjąć odpowiednie działania.


Z czego składa się zapora sieciowa


Zapora sieciowa w swej istocie jest raczej koncepcją, a nie produktem. Celem istnienia zapór jest przyznanie, bądź odmowa przyznania połączenia danemu użytkownikowi do danej usługi sieciowej. W bardziej ogólnym sensie zapora sieciowa składa się z odpowiedniego oprogramowania i sprzętu. Oprogramowanie może być typu freeware, shareware lub komercyjne. Sprzęt może być jakimkolwiek urządzeniem, na którym pracuje dany program.

Typy zapór sieciowych

Wyróżniamy dwa podstawowe typy zapór sieciowych:

Zapory pracujące na poziomie sieci są zazwyczaj routerami z zawansowanymi możliwościami filtrowania pakietów. Administrator korzystający z takiej zapory ma możliwość przyznania, bądź odmowy dostępu do swego serwem w oparciu o kilka zmiennych. Są to między innymi:

Zapory sieciowe w postaci routerów są popularne ze względu na łatwość ich zastosowania (po prostu podłącza się firewall do sieci i zaopatruje w odpowiednie reguły). Co więcej większość współczesnych routerów ma możliwość translacji/konwersji protokołów (gdzie protokół IP z zewnątrz jest tłumaczony na inne protokoły stosowane w sieci lokalnej). Dodatkową zaletą zastosowania firewalla zbudowanego w oparciu o router, jest fakt, że z racji swej specyfiki urządzenie.takie jest elementem zewnętrznym z punktu widzenia naszej sieci lokalnej. Tak więc jego podłączenie do sieci nie wymaga konieczności konfiguracji dziesiątek maszyn czy usług. I wreszcie, jeśli nasza sieć jest połączona z Internetem łączem stałym, to router i tak jest jej niezbędnym elementem. Zatem stosując firewall w oparciu o router możemy upiec dwie pieczenie na jednym ogniu. Z drugiej strony zapory sieciowe oparte na routerach maja kilka wad. Jedną z nich jest fakt, że wiele routerów jest podatnych na ataki, polegające na fałszowaniu adresu nadawcy pakietu - spoofing (aczkolwiek producenci pracują nad rozwiązaniem tego problemu). Z praktycznego punktu widzenia, istotna jest również efektywność (moc obliczeniowa) routera - jeśli zadamy bardzo szczegółowe kryteria filtrowania, to w przypadku dużego natężenia ruchu przychodzącego możemy się spodziewać spadku jego wydajności. Niektóre routery nie posiadają wystarczająco szczegółowych możliwości zapisu stanu pracy. Oznacza to, że możemy potrzebować zewnętrznego oprogramowania i sprzętu do celów monitorowania pracy routera.

Zapory sieciowe realizowane w oparciu o aplikacje bramy Innym rodzajem zapory sieciowej jest firewall wykorzystujący aplikacje pośredniczące w standardowej komunikacji typu klient-serwer. Zapora taka zwana jest również bramą proxy, bądź bramą programową (application gateway). Żądanie połączenia z daną usługą sieciową wysłane przez zdalnego użytkownika jest obsługiwane nie bezpośrednio przez odpowiedni serwer usług, lecz podawane do niego poprzez bramę proxy. Zatem, w odróżnieniu od firewalla - filtra pakietów, nadchodzące pakiety IP nie są po przetworzeniu przesyłane do sieci lokalnej, zamiast tego brama przeprowadza swego rodzaju translację pośrednicząc pomiędzy klientem a serwerem. Zaletą stosowania bramkowania usług jest fakt zapobiegania dostaniu się pakietów IP do naszej sieci (tunelowania pakietów). Wadą jest konieczność konfiguracji odpowiedniej bramy dla każdej usługi sieciowej, w tym FTP, Telnet, HTTP, e-mail itd. Dodatkowo użytkownicy muszą wykorzystywać programy klienckie pozwalające na stosowanie bramkowania usług (w przeciwnym wypadku, użytkownicy będą musieli nauczyć się "ręcznie" obsługiwać bramę (co może być czasochłonne, uciążliwe, bądź w ogóle niemożliwe, zależnie od stopnia skomplikowania procedur). Przykładowo - w przypadku bramkowania popularnej usługi Telnet nie jest wymagana obecność po stronie użytkownika klienta świadomego istnienia bramy proxy; w takiej sytuacji jednak wymusi to na użytkowniku konieczność połączenia się (lecz nie zalogowania) z bramą - firewallem dla danej usługi - a nie bezpośrednio z serwerem Telneta. Zastosowanie klienta wspierającego procedury bramkowania uczyni bramę transparentną z punktu widzenia użytkownika. Zapora sieciowa służy jako wejście do systemu docelowego - przechwytuje żądania połączenia i podejmuje dalsze, uprzednio zdefiniowane, kroki, np. zapytanie o jednorazowe hasło. Zachowanie użytkownika pozostaje takie samo, pod warunkiem stosowania odpowiednio zmodyfikowanych i skonfigurowanych klientów i usług.


Konstrukcja zapory sieciowej


Przy "stawianiu" zapory sieciowej istotne jest przeprowadzenie poniższych czynności:

Rozpoznanie topologii sieci oraz potrzeb w zakresie aplikacji i protokołów

To zagadnienie jest dużo trudniejsze niż mogłoby się wydawać, zależy ono od struktury i rozmiarów danej sieci. Jeśli administrujemy siecią jednorodną (co jednak zdarza się dość rzadko), zadanie jest proste - będziemy mieć do czynienia z jednym systemem operacyjnym i przypuszczalnie takim samym zestawem aplikacji obecnym na każdej ze stacji.

Większość sieci, to sieci heterogeniczne, co zmusza administratora do identyfikacji każdego systemu operacyjnego i wszystkich zestawów aplikacji używanych w sieci. To z kolei wymagać może konieczności korzystania z usług ekspertów w dziedzinie bezpieczeństwa poszczególnych aplikacji.

Analiza zależności służbowych

Ten krok może wymagać od administratora rozpoznania potrzeb i uzgodnienia działań z poszczególnymi działami firmy podłączonymi do sieci. Musimy uniknąć sytuacji, kiedy ze względu na fizyczną odległość między poszczególnymi segmentami sieci ruch wewnętrzny będzie się odbywał poprzez którąś z naszych bram programowych. Zatem przed dokonywaniem zmian w strukturze sieci należy dokładnie przeanalizować te zależności. Cały ten proces wymaga dużego taktu. Można spotkać się z użytkownikami lub menedżerami, którzy będą sprzeciwiać się zmianom (skoro od 10 lat sieć chodzi, to po co cokolwiek zmieniać?). Konieczna jest bliska współpraca z użytkownikami i uzasadnienie im konieczności przeprowadzenia zmian. Ostatnią rzeczą jaką byśmy sobie życzyli, to rzesza niezadowolonych lokalnych użytkowników - to od nich w przyszłości będzie zależeć bez pieczeństwo sieci, to nasi użytkownicy przestrzegając (lub nie) zasad korzystania z systemów będą mieli decydujący wpływ jej bezpieczeństwo. Jeśli staraliśmy się rzeczowo (i przystępnie) uzasadnić konieczność przedsięwzięcia odpowiednich środków - nie mamy się czego obawiać; jeśli zaś wprowadziliśmy drakońskie reguły korzystania z sieci bez słowa wyjaśnienia, możemy się spodziewać oporu materii ludzkiej na każdym możliwym kroku.

Zastosowanie i testowanie zapory sieciowej

Po zakupie zapory sieciowej powinniśmy przeprowadzić intensywne testy w dwóch fazach:

Pierwsza faza może być przeprowadzona w dowolnym czasie - nawet gdy użytkownicy danej sieci są nieobecni (weekend, godziny wieczornonocne, etc.).

Druga faza jest bardziej skomplikowana. Należy się spodziewać wielu problemów, a nawet przejściowego zaniku funkcjonalności sieci (trzeba być przygotowanym na reakcję zdenerwowanych użytkowników). Jest wyjątkowo mało prawdopodobne, że fazę tę przejdzie się gładko już za pierwszym razem - chyba, że sieć jest całkowicie jednorodna i mamy do czynienia z tym samym zestawem aplikacji na każdej z maszyn.

Czy zapory sieciowe są niezawodne?

Odpowiedź brzmi - nie. Wiele serwerów, na których zastosowano zapory sieciowe, zostało pokonanych przez krakerów. Wynika to nie tyle z właściwości zapory sieciowej jako takiej, a raczej z zawodności tzw. czynnika ludzkiego. Najczęstszą przyczyną wadliwości zabezpieczeń firewalla są administratorskie błędy w jego implementacji. Nie znaczy to, że niektóre zapory sieciowe nie mają słabych punktów. Owszem mają - aczkolwiek w większości przypadków luki te nie mają zbyt wielkiego znaczenia dla bezpieczeństwa sieci.


Komercyjne zapory sieciowe


Poniżej zostanie przedstawiona lista zapór sieciowych dostępnych na rynku, wraz z ich krótką charakterystyką.

AltaVista Firewall 98
Typ zapory sieciowej:programowa - brama proxy
Producent:Digital Equipment Corp.
Przeznaczona dla platform:DEC UNIX, Windows NT
Dodatkowe informacje:www.altavista.softwere.digital.com/firewall/products/overview/index.asp

AltaVista Firewall 98 zawiera bramy dla usług: FTP, Telnet, HTTP, Mail, News, SQL*Net, RealAudio i finger. Dla usług FTP i Telnet mamy możliwość wymuszenia stosowania jednorazowych haseł. Produkt ten pracuje zarówno na platformach sprzętowych opartych o procesory Intel, jak i Alpha.

BorderMenager
Typ zapory sieciowej:programowa
Producent:Novell Inc.
Przeznaczona dla platform:Novell NetWare
Dodatkowe informacje:www.novell.com/text/bordermanager/index.html

BorderManager jest programem przeznaczonym dla sieci Novell, ale ochrania również sieci pracujące w oparciu o systemy UNIX oraz NT. Produkt ten pozwala na centralizację zarządzania siecią, szczegółowe filtrowanie oraz szybką i dokonywaną w czasie rzeczywistym analizę ruchu w sieci. BorderManager pozwala także na tworzenie "minizapór sieciowych", zabezpieczających chronioną sieć także przed atakami z sieci lokalnych.

CSM Proxy/Enterprise Edition
Typ zapory sieciowej:programowa - brama proxy
Producent:CSM-USA Inc.
Przeznaczona dla platform:Linux, Solaris i Windows NT
Dodatkowe informacje:www.csm-usa.com/proxy/index.html

CSM Proxy jest kompleksowym rozwiązaniem służącym serwerom sieciowym do filtrowania skryptów ActiveX i Java, plików cookies, poczty konferencyjnej i prywatnej. CSM Proxy wspierane jest przez Windows 95.