Nazwa firewall - ,,ściana ogniowa'' została zapożyczona z motoryzacji. W samochodach takie ściany fizycznie oddzielają silnik od pasażerów, chroniąc pasażerów, w wypadku gdy zapali się silnik.
Firewalle to jeden z wielu sposobów zabezpieczenia komputera (lub sieci komputerów) przed osobami niepowołanymi. Występują w postaci oprogramowania lub sprzętowej. Blokują dostęp intruzów do chronionej sieci lub komputera. Zwykle ustawia się zapory ogniowe na styku sieci komputerowej i na ważnych serwerach.
Aby zrozumieć mechanizmy na jakich opierają się zapory sieciowe, należy wiedzieć na jakiej zasadzie działa protokół TCP/IP, obsługujący połączenia sieciowe w internecie. Jest to połączenie dwóch protokołów, TCP Transmission Control Protocol to protokół odpowiedzialny za transport pakietów (czyli danych) poprzez protokół IP Internet Protocol. Udostępnia on interfejs do tworzenia połączeń sieciowych między różnymi platformami. Wiadomości przesyłane przez internet są dzielone na małe porcje, zwane pakietami, które niekoniecznie tym samym szlakiem trafiają do miejsca przeznaczenia. Po trafieniu do celu, pakiety są z powrotem spajane w całość. TCP zapewnia, że otrzymana przez internet wiadomość jest odebrana we właściwym formacie.
I tu pojawia się pole do działania dla firewalli: Każdy komputer w sieci jest reprezentowany przez czterobajtowy adres IP. Numer ten można znaleźć w nagłówkach przesyłanych pakietów. Na jego podstawie zapora sieciowa może zdecydować czy należy tą wiadomość przyjąć czy odrzucić.
Zapory ogniowe strzegą punktów wejść do systemów komputerowych. Punkty te nazywa się portami. Komputery osobiste korzystają z portów TCP/IP do komunikacji z innymi sieciami i komputerami. Porty mogą być róznego typu, każdy odpowiada za jakąś określoną usługę sieciową.
Każdy port ma przypisany określony numer. Numery otwartych portów informują o tym, które aplikacje czy usługi działają na danej maszynie. Przykładowe numery portów to:
USŁUGA | NUMER PORTU | OPIS |
ECHO | 7 | Echo of input |
NETSTAT | 15 | Network Static Service |
FTP | 21 | File Transfer Protocol |
TELNET | 23 | Network Terminal Protocol |
SMTP | 25 | Simple Mail Transfer Protocol |
Login | 49 | Login Host Protocol |
FINGER | 79 | Finger Service |
HTTP | 80 | HyperText Transfer Protocol |
Auth | 113 | Authentication Service |
Audionews | 114 | Audio news multistream |
Weźmy port FTP. Jeśli komputer z którym chcemy się skomunikować przez ten port ma otwarty swój port 21, będzie akceptował pakiety FTP. Jeśli nie, nie będzie możliwe skorzystanie z usługi FTP. Zatem zapora sieciowa powinna być tak skonfigurowana, żeby nie pozwalać na kontakt z portami do których chcemy zabronić dostępu.
Hakerzy często korzystają z oprogramowania zwanego skanerami portów. Operują one na wyżej opisanych portach komputera. Ich działanie polega na poszukiwaniu uruchomionych usług na komputerze, a następnie, jeśli takie usługi są sprawdzeniu które z nich będą podatne na dalszy atak, który może oznaczać zablokowanie usług sieciowych przez wykasowanie kluczowych plików lub wykradzenie informacji przechowywanych na komputerze. Na typowym komputerze osobistym znajduje się 65,535 wirtualnych portów, przez które można się dostać do komputera. Zapory sieciowe mają bronić dostępu przed niepowołanymi osobami do wszystkich spośród nich.
Rozróżniamy następujące typy zapór sieciowych:
Najpopularniejszym środkiem stosowanym przez zapory ogniowe jest filtrowanie pakietów. Działanie jest następujące: gdy firewall otrzyma pakiet z internetu, sprawdza adres IP w nagłówku pakietu, porównuje go z tabelą reguł kontroli dostępu aby określić czy dany pakiet może być dostarczony do adresata.
W tym przypadku możemy określić pewien zestaw zachowań, które zostaną podjęte po zidentyfikowaniu odpowiedniego adresu IP nadawcy bądź odbiorcy lub portu. Na przykład dostęp do strony pornograficznej może być blokowany poprzez oznaczenie jej adresu IP jako niedozwolonego. Gdy więc zapora ogniowa z filtrowaniem pakietów napotka pakiet z tej strony, dowie się że adres IP zawarty w nagłówku pakietu jest niedozwolona i nie pozwoli na nawiązanie połączenia.
Drugim środkiem używanym przez zapor jest stateful packet inspection. Jest to forma ulepszonego filtrowania pakietów, która oprócz przeglądania nagłówków pakietów sprawdza także ich treść. Metoda nazwana jest 'stateful', ponieważ sprawdza w jakim stanie ('state') znajduje się komunikacja. Za pomocą tego mechanizmu można się upewnić, że wszelka komunikacja została zainicjowana przez użytkownika i ma miejsce pomiędzy znanymi nadawcą i odbiorcą. W dodatku, by zapewnić większą dokładność w inspekcji pakietów, ta metoda zamyka wszystkie porty zanim będą mogły do nich zostać nawiązane połączenia, co dodaje ochrony przeciwko skanowaniu portów.
Firewalle tego typu mają jeszcze mocniejsze mechanizmy. Interesują je nie tylko informacje zawarte w pakietach, lecz także to, czy połączenie ze wskazaną aplikacją jest dozwolone. Za pomocą tej technologii można ograniczyć dostępność do usług sieciowych, np. zezwolić tylko na korzystanie z dostępu do Internetu i e-maili. W ten sposób likwiduje się możliwość przeprowadzenia ataku na komputer za pomocą usługi Telnet, wystarczy programowo zatrzymywać wszystkie pakiety skierowane na port 23 standardowo port Telnetu. Od tej pory żadna próba ataku przeprowadzona na ten port na komputerze użytkownika nie powiedzie się.
Nazwa proxy poziomu aplikacji bierze się stąd, że oprócz sprawdzania, jakiego typu aplikacja sieciowa nawiązuje z nami połączenie, omawiane rozwiązanie służy także za serwer proxy który można opisać jako serwer na granicy między komputerem, a serwerem odpowiedzialnym za dostęp do Internetu. Jego zadaniem jest skryć wszystkie komputery w sieci za zaporą sieciową. Komputery wewnątrz sieci są chronione od zagrożeń z zewnątrz, ponieważ nie można nawiązać bezpośredniego połączenia spoza sieci komunikacja wiedzie poprzez serwer proxy.
Translacja adresów sieciowych służy jako firewall, maskując adresy IP komputerów wewnątrz sieci. Podobnie do serwera proxy, NAT działa jako bariera pomiędzy grupą komputerów i Internetem. Pozwala całej organizacji prezentować się na zewnątrz pod jednym adresem. NAT przekształca adresy LAN w jeden adres IP i w drugą stronę. W rezultacie, przeszukując Internet nie można zidentyfikować komputerów w sieci ani wielu szczegółów, np. oczywiście adresów IP, dodając kolejną warstwę bezpieczeństwa do systemu.
Pomimo wielu zalet korzystania z zapór sieciowych, istnieją ataki, którym nie można zapobiec przy użyciu tej technologii, takie jak nasłuchiwanie ruchu sieciowego (eavesdropping) czy przechwytywanie e-maili. Firewalli nie należy używać jako jedynego zabezpieczenia sieci wówczas gdy atakujący pokona zaporę, będzie mógł uzyskać pełny dostęp do systemu. Należy równą uwagę skierować na odpowiednią politykę kadrową i właściwe szkolenia aby uniknąć ryzyka ataku z wewnątrz sieci, szczególnie przeprowadzonych przez lub przy pomocy pracowników organizacji.
Zapory sieciowe mają problemy z atakami typu IP Spoofing czyli podszywaniem się pod komputer z innym adresem IP, akceptowanym przez odbiorcę, bądź z atakami w wyższej warstwie logicznej na poziomie działających aplikacji (np. poprzez błędy w językach skryptowych). W optymalnym przypadku użycie zapór ogniowych powinno być uzupełnione przez systemy antywirusowe oraz systemy szyfrowania, jak również politykę bezpieczeństwa, obejmującą nie tylko systemy teleinformatyczne.
Zapory sieciowe różnią się poziomem złożoności i ceną. Dla użytkowników o niedużych wymaganiach najrozsądniejszym rozwiązaniem jest program instalowany na komputerze, dla dużych instytucji o większych wymaganiach lepszym rozwiązaniem jest zapora sprzętowa.
Wybierając firewall należy się skupić na poniższych zagadnieniach: