Firewalle

 

Firewall, czyli ,,ściana ogniowa'' jest terminem wziętym z konstrukcji samochodu. W samochodach firewalle fizycznie oddzielają silnik od pasażerów, zapewniając im bezpieczeństwo w przypadku zapalenia się silnika.

Firewalle to narzędzia służące do do zwiększenia bezpieczeństwa komputerów podłączonych do jakiejś zewnętrznej sieci (np. Internet). Firewall oddziela komputer od Internetu, monitorując pakiety z danymi, zarówno wychodzące, jak i przychodzące, i podejmuje decyzję czy pakiety przepuszczać, czy blokować.

Firewall nadzoruje porty, czyli punkty wyjściowe komputera do komunikacji z siecią. Firewalle sprawdzają, czy pakiety, które przychodzą do komputera spełniają określone warunki zdefiniowane przez użytkownika. Mogą to robić na dwa sposoby:

Pakiety

Informacje przesyłane przez sieć są dzielone na niewielkie pakiety, które mogą docierać do punku docelowego różnymi drogami. Kiedy pakiety dotrą do komputera docelowego, są z powrotem składane w większą całość. Oczywiście trzeba zapewnić, że kolejność pakietów i ich treść zostaną zachowane. Odpowiada za to protokół TCP/IP. Jak to się ma do firewalli? Otóż kiedy TCP/IP dzieli pierwotny komunikat, w nagłówku każdego pakietu umieszcza podstawowe informacje identyfikujące pakiet, m.in. adres źródłowy, adres docelowy oraz numer portu. Firewall odczytuje z nagłówka pakietu odpowiednie informacje, i na tej podstawie podejmuje decyzję o jego odrzuceniu lub przepuszczeniu.

Porty

Porty są punktami, przez które komputer wysyła informacje do innych komputerów i przez które odbiera informacje. Komputery posiadają wiele portów, a każdy z nich odpowiada za konkretną usługę. Numery otwartych portów pozwalają zidentyfikować aplikacje uruchomione na danym komputerze.

Każdy port posiada jednoznaczny numer, i umożliwia komputerom wymianę informacji związanych z pewną konkretną aplikacją. Przykładowo, serwery stron WWW używają portu 80. Informacja o numerze portu znajduje się w nagłówku każdego pakietu. To istotne z punktu widzenia firewalli, bo sprawdzając numer portu zapisany w pakiecie firewall może stwierdzić, dla której aplikacji przeznaczony jest dany pakiet i, jeśli jest odpowiednio skonfigurowany, nie wpuścić tego pakietu do systemu.

Przykładem może być usługa FTP (File Transfer Protocol), używająca portu 21. Jeśli komputer jest tak skonfigurowany, że nie obsługuje zdalnego FTP, wówczas firewall zablokuje port 21 i port ten nie będzie dostępny dla komputerów z zewnątrz.

Usługi i odpowiadające im porty w typowym systemie:

Skanowanie portów

Hackerzy często używają narzędzi zwanych skanerami portów, żeby odnaleźć otwarte porty w zdalnym systemie i dowiedzieć się które usługi są w nim uruchomione. Skaner portów po prostu sekwencyjnie przegląda zadany zakres portów w danym komputerze i próbuje się z nimi połączyć. Dysponując taką wiedzą (i znając oczywiście błędy w aplikacji) włamywacz może użyć konkretnej metody obejścia danej aplikacji i uzyskać niepowołany dostęp do systemu.

Skaner Linuxowy - nmap

Filtrowanie pakietów

Najbardziej powszechną metodą ochrony stosowaną w firewallach jest filtrowanie pakietów. Firewall sprawdza informacje zawarte w nagłówkach przychodzących pakietów i porównuje te dane z danymi w liście kontroli dostępu, żeby stwierdzić czy przepuścić dany pakiet.

W tym celu administrator firewalla musi zdefiniować odpowiedni zestaw reguł, określających czynności, które należy podjąć, gdy zostanie napotkany pakiet o podanym IP lub numerze portu.

Mimo, że filtrowanie pakietów jest metodą szybką, to jest również dość łatwe do obejścia. Jedną z metod stosowanych przy obchodzeniu tego mechanizmu jest tzw. IP spoofing, czyli podszywanie się pod komputer o innym IP, co jest dosyć proste, bo wymaga jedynie zmiany IP w nagłówku pakietu. Drugi problem polega na tym, że firewalle filtrujące pakiety dają możliwość nawiązania bezpośredniego połączenia z komputerem docelowym. W rezultacie, kiedy firewall zaakceptuje próbę połączenia, komputer wymienia informacje z komputerem docelowym bez żadnej dalszej kontroli, co również naraża system na potencjalny atak. 

Stateful packet inspection

Jest to metoda polegająca na sprawdzaniu nie tylko nagłówka pakietu, ale również jego zawartości. Sprawdzanie zawartości ma służyć weryfikacji, czy dany komputer rzeczywiście oczekiwał na wysyłane mu właśnie dane. Poza bardziej rygorystycznym mechanizmem sprawdzania pakietów, firewalle posługujące się tą metodą zamykają również nieużywane porty, do czasu gdy nie napłynie żądanie połączenia z danym portem. To stanowi dodatkowe zabezpieczenie przeciwko skanowaniu portów.

Proxy na poziomie aplikacji

Ten typ firewalla nie tylko sprawdza dla jakiej aplikacji jest przeznaczony dany pakiet, lecz również pełni rolę serwera proxy. O proxy należy myśleć jak o komputerze znajdującym się pomiędzy klientem a serwerem, pełniącym rolę pośrednika w komunikacji między nimi. Proxy poziomu aplikacji przyjmuje wszystkie napływające żądania komunikacyjne, a następnie wykonuje te żądania w imieniu aplikacji, która je zleciła. To pozwala na ukrycie poszczególnych komputerów od świata zewnętrznego, bo komputery zewnętrzne nigdy nie nawiązują bezpośredniego połączenia z komputerami wewnątrz sieci - cała komunikacja odbywa się pośrednio przez proxy.

NAT (Network Address Translation)

NAT działa podobnie do firewalla - ukrywa adresy poszczególnych komputerów od świata zewnętrznego. Podobnie jak proxy, NAT pośredniczy przy wszystkich połączeniach z siecią zewnętrzną. NAT umożliwia grupie komputerów używanie jednego wspólnego IP na zewnątrz sieci lokalnej, konwertując lokalny IP komputerów na IP widoczny na zewnątrz i na odwrót. W konsekwencji osoby szukające potencjalnych celów ataku nie są w stanie dotrzeć do chronionych w ten sposób komputerów sieci.

 




dalej