Podcast o Bezpieczeństwo sieci: Firewalle, Serwery proxy i Bramy

Bezpieczeństwo Sieci: Firewalle, Proxy i Bramy – Szczegółowa Analiza

Podcast

Bezpieczeństwo sieci: Firewalle, Serwery proxy i Bramy0:00 / 18:57
0:001:00 pozostało
JakubWiecie, co jest tą jedną rzeczą, która na egzaminie z firewalli myli prawie każdego? Wszyscy myślą, że firewall to tylko jakaś lista zasad — „zezwalaj na to, blokuj tamto”. Jak bramkarz z kartką w ręku. Ale to tylko połowa prawdy. Większość dzisiejszych firewalli działa zupełnie inaczej. A kiedy zrozumiecie tę kluczową różnicę, już nigdy się w tym nie pomylicie.
AdélaTo brzmi jak obietnica. To jest Studyfi Podcast.

Bezpieczeństwo sieci: Firewalle, Serwery proxy i Bramy

Délka: 18 minut

Přepis

Jakub: Wiecie, co jest tą jedną rzeczą, która na egzaminie z firewalli myli prawie każdego? Wszyscy myślą, że firewall to tylko jakaś lista zasad — „zezwalaj na to, blokuj tamto”. Jak bramkarz z kartką w ręku. Ale to tylko połowa prawdy. Większość dzisiejszych firewalli działa zupełnie inaczej. A kiedy zrozumiecie tę kluczową różnicę, już nigdy się w tym nie pomylicie.

Adéla: To brzmi jak obietnica. To jest Studyfi Podcast.

Adéla: Dobrze Jakubie, no to zaczynamy. Mówisz o firewallu, ale podstawą jest chyba filtrowanie, prawda? Co to dokładnie znaczy?

Jakub: Dokładnie tak. Filtrowanie to absolutna podstawa. Wyobraź sobie to jako kontrolę na granicy. Aktywny element, na przykład router albo bezpośrednio firewall, patrzy na przechodzące dane i decyduje: „Ciebie przepuszczę, ciebie nie.”

Adéla: Czyli tylko sortuje ruch, nie zmienia go?

Jakub: Dokładnie. Nic nie zmienia, tylko przepuszcza albo odrzuca. Tym różni się na przykład od serwera proxy, o którym porozmawiamy innym razem. A przy filtrowaniu mamy dwa główne podejścia.

Adéla: Czarna i biała lista, prawda?

Jakub: Jasne. Czarna lista to tak, jakbyś miał na imprezie listę niechcianych gości. Wszyscy inni mogą wejść. Czyli „co nie jest zabronione, jest dozwolone”. Jest to bardziej otwarte, ale mniej bezpieczne.

Adéla: A biała lista to odwrotność. Lista zaproszonych, i nikt inny nie wejdzie do środka.

Jakub: Dokładnie! „Co nie jest wyraźnie dozwolone, jest zabronione”. To jest znacznie bezpieczniejsze, ale też bardziej pracochłonne w zarządzaniu. W praktyce często się to łączy. Na granicy firmy masz rygorystyczną białą listę, ale na swoim laptopie raczej bardziej liberalną czarną listę.

Adéla: A gdzie wszędzie takie filtrowanie się odbywa? Tylko w jednym miejscu?

Jakub: Ależ skąd, to jest obrona warstwowa. Filtruje się na switchach, na routerach, na specjalistycznym sprzęcie, przez który przepływa cały ruch, a także bezpośrednio na twoim komputerze, na przykład za pomocą Windows Firewall. Kiedy jedna warstwa zawiedzie, jest szansa, że wyłapie to kolejna.

Adéla: Dobrze, podstawy mamy. Przejdźmy o poziom wyżej. Co możemy kontrolować na poziomie sieci, czyli według protokołu IP?

Jakub: Tutaj już zaczyna być ciekawie. Firewall zagląda do nagłówka każdego pakietu i pyta: „Kim jesteś i dokąd idziesz?” Czyli kontroluje źródłowy i docelowy adres IP. Może w ten sposób zezwalać lub blokować komunikację między konkretnymi komputerami lub całymi sieciami.

Adéla: Czyli mogę powiedzieć: „Komputer A może rozmawiać z komputerem B, ale nie z C”?

Jakub: Dokładnie. I nie tylko to. Może filtrować też według tego, jaki protokół jest transportowany w środku — czy to TCP, UDP, czy na przykład ICMP, czyli te komunikaty kontrolne, które komputery sobie wysyłają.

Adéla: Tylko że to samo w sobie brzmi… no, trochę bezzębně. Nie powie, *co* te komputery robią. Czy przeglądają internet, czy ktoś próbuje mi się włamać na serwer.

Jakub: Trafione. Sama filtracja IP to podstawa, ale nie wystarcza. Dlatego nadchodzi kolej na największą gwiazdę nowoczesnych firewalli… filtr refleksyjny!

Adéla: Filtr refleksyjny? To brzmi jak coś z psychologii.

Jakub: Prawie. Nazywa się go też firewallem stanowym, czyli stateful. I teraz dochodzimy do tego, co myli tych studentów. Stary, „bezstanowy” firewall patrzy na każdy pakiet oddzielnie. Ma swoje zasady i nic więcej go nie interesuje. Przychodzi pakiet, sprawdza zasady, przepuszcza albo odrzuca. Koniec.

Adéla: A ten stanowy… pamięta kontekst?

Jakub: Dokładnie! On pamięta nawiązane połączenia. Działa jak inteligentna recepcjonistka. Kiedy ktoś z twojej firmy zadzwoni na zewnątrz, recepcjonistka zapamiętuje: „Aha, Ania dzwoni do pana Nowaka.” A kiedy potem pan Nowak dzwoni z powrotem, recepcjonistka wie: „Jasne, to ta rozmowa dla Ani, przełączę.”

Adéla: Czyli kiedy mój komputer zapyta Google, firewall to zapamięta i przepuści do środka odpowiedź od Google, nawet jeśli nie mam na to specjalnej reguły?

Jakub: Dokładnie tak! Przepuści na zewnątrz pakiet wychodzący, a potem do środka przepuści tylko dane, które są z nim związane. Jest to dynamiczne i znacznie bezpieczniejsze, ponieważ nie musisz mieć otwartych drzwi dla przychodzącej komunikacji, której nikt od wewnątrz nie zainicjował.

Adéla: To ma sens. Ale co jeśli ktoś spróbuje oszukać firewall? Na przykład będzie podawać się za kogoś z wewnątrz?

Jakub: Świetne pytanie. To klasyczny atak zwany „address spoofing”. Atakujący wysyła pakiet z internetu, ale jako adres źródłowy ustawia sobie adres IP z twojej wewnętrznej sieci.

Adéla: A głupi, bezstanowy firewall mógłby pomyśleć, że ten pakiet pochodzi z wewnątrz, i przepuścić go dalej?

Jakub: Dokładnie. To tak, jakby wysłać list z fałszywym adresem zwrotnym. Odpowiedź co prawda nie dotrze do atakującego, bo router wyśle ją na ten fałszywy, prawdziwy adres wewnątrz sieci…

Adéla: Ale ten szkodliwy pakiet dostał się do środka. A to może wystarczyć, prawda?

Jakub: Dokładnie. W ten sposób można dostarczyć na przykład fałszywą odpowiedź DNS i przekierować ofiarę na fałszywą stronę internetową. Na szczęście istnieje obrona. Nazywa się ją „ingress filtering”.

Adéla: Co to znaczy?

Jakub: To prosta zasada na routerze brzegowym: „Jeśli z zewnątrz przychodzi pakiet, który twierdzi, że jest z wewnątrz, to bzdura. Odrzuć go.” To taka podstawowa higiena cyfrowa.

Adéla: Dobrze, adresy IP mamy. Ale mówiłeś, że to nie wystarcza do rozróżnienia usług. Do tego potrzebujemy portów, czyli filtrowania na poziomie TCP lub UDP, zgadza się?

Jakub: Dokładnie tak. Tutaj już dochodzimy do tego, że możemy zezwalać lub blokować konkretne aplikacje. Każda usługa działa na jakimś porcie – web na porcie 80 lub 443, SSH na 22 i tak dalej. Czyli możemy powiedzieć: „Ten serwer może komunikować się ze światem tylko przez port webowy 443 i nic więcej.”

Adéla: Tutaj znowu wkracza do akcji ten stateful firewall, prawda? Śledzi nawiązywanie połączeń?

Jakub: Absolutnie kluczowo. W TCP patrzy głównie na pakiety z flagą SYN, co jest żądaniem nawiązania połączenia. Gdy tylko połączenie powstanie, firewall zapisuje je do swojej tabeli i tymczasowo zezwala na dwukierunkowy ruch w ramach tej jednej sesji.

Adéla: Czyli kontroluje, czy zgadzają się adresy IP, porty, a nawet numery sekwencyjne pakietów?

Jakub: Tak, dokładnie tak. Śledzi całą konwersację. A to jest ważne, bo niektóre protokoły są dość podstępne. Na przykład stare FTP.

Adéla: W czym FTP jest podstępne?

Jakub: W swoim trybie aktywnym. Ty łączysz się z serwerem na porcie 21, żeby wydać mu polecenia. Ale kiedy chcesz pobrać plik, serwer próbuje nawiązać połączenie z powrotem do ciebie na zupełnie innym porcie, żeby wysłać dane. A to każdy normalny firewall natychmiast by zablokował!

Adéla: Ponieważ jest to niepożądane połączenie z zewnątrz do wewnątrz?

Jakub: Dokładnie! Czyli sprytny, stanowy firewall musi rozumieć protokół FTP. Musi wiedzieć: „Aha, teraz umówili się na połączenie danych, na chwilę muszę zezwolić na przychodzące połączenie na ten konkretny port.” Bez tego by to nie działało.

Adéla: A co z fragmentacją? Wiem, że duże pakiety mogą się po drodze podzielić na mniejsze kawałki. To musi być koszmar dla firewalla.

Jakub: To problem. Ponieważ nagłówek TCP z informacją o portach jest tylko w pierwszym fragmencie. Pozostałe już go nie mają. Więc prosty filtr zablokowałby pierwszy kawałek, ale reszta by przeszła.

Adéla: A docelowy komputer próbowałby to złożyć, nie udałoby mu się i wysłałby komunikat o błędzie. Co jest zbędnym ruchem.

Jakub: Dokładnie. Bardziej solidne, ale też bardziej wymagające pod względem wydajności rozwiązanie polega na tym, że firewall czeka, aż zbiorą się wszystkie fragmenty, składa z nich cały segment, sprawdza go, a potem albo wszystkie przepuszcza, albo wszystkie odrzuca.

Adéla: Czyli, jeśli to wszystko podsumujemy… czym właściwie jest firewall w dzisiejszych czasach?

Jakub: Firewall to aplikacja lub częściej specjalistyczny sprzęt, który wykonuje całe to sprytne filtrowanie, a do tego jeszcze wszystko loguje. Rejestruje, co próbowało przejść, co zostało dozwolone, co zostało odrzucone. To kluczowe dla późniejszej analizy, gdy coś się wydarzy.

Adéla: Mówisz o specjalistycznym sprzęcie. To znaczy, że to muszą być dość wydajne maszyny?

Jakub: Dla dużego ruchu zdecydowanie. Potrzebujesz porządnego procesora, dużo pamięci na tę tabelę stanów i wysokiej jakości karty sieciowe. Dzisiejsze firewalle potrafią też tak zwaną „deep packet inspection”, czyli głęboką inspekcję pakietów. Nie wystarczają im tylko nagłówki, ale zaglądają też do samych danych.

Adéla: Czyli rozumieją protokoły aplikacyjne, takie jak HTTP? I mogą w nim czegoś szukać?

Jakub: Dokładnie. A te najbardziej zaawansowane idą jeszcze dalej. Potrafią też inspekcję zaszyfrowanego ruchu SSL/TLS.

Adéla: Czekaj, jak mogą kontrolować zaszyfrowany ruch? Przecież się nie da, od tego jest to szyfrowanie.

Jakub: Da się, ale jest to trochę kontrowersyjne. Ten firewall w zasadzie zachowuje się jak atakujący typu „Man-in-the-Middle”. Odszyfrowuje ruch od ciebie, sprawdza go, a potem ponownie zaszyfrowuje i wysyła dalej. Żeby to działało, twój komputer musi w pełni ufać temu firewallowi. W firmach rozwiązuje się to tak, że na urządzeniach firmowych instaluje się certyfikat firmowego firewalla.

Adéla: To trochę narusza ideę prywatności i szyfrowania end-to-end, prawda?

Jakub: Narusza. To kompromis między bezpieczeństwem a prywatnością. Umożliwia wykrycie złośliwego oprogramowania ukrytego w HTTPS, ale kosztem przełamania zaufania. Dlatego używa się tego głównie w środowisku firmowym. Więc podsumowując — dzisiejszy firewall to nie tylko tępy bramkarz z listą. To sprytny detektyw, który pamięta kontekst, rozumie różne języki, a czasem nawet weźmie lupę, żeby zobaczyć, co jest transportowane wewnątrz pakietu.

Adéla: Czyli mapowanie sieci to podstawa. Ale jak dokładnie dowiem się, co właściwie działa na tych urządzeniach?

Jakub: Dokładnie tak. I tutaj na scenę wkracza technika, którą nazywamy skanowaniem portów. To jeden z najczęstszych pierwszych kroków.

Adéla: Dobrze, skanowanie portów. Co mam sobie pod tym wyobrazić? Jakieś przeszukiwanie portów morskich?

Jakub: Prawie. Wyobraź sobie każde urządzenie w sieci jako dom. Porty są jak drzwi i okna do tego domu. A skanowanie portów to w zasadzie sprawdzanie, czy któreś z nich są otwarte.

Adéla: Czyli właściwie… sprawdzam klamkę u każdych drzwi?

Jakub: Dokładnie! Wysyłamy mały pakiet danych na konkretny port i czekamy na odpowiedź. Kiedy przyjdzie sensowna odpowiedź, wiemy, że na danym porcie coś nasłuchuje. Jakaś usługa.

Adéla: A do czego to jest dobre? Czyli oprócz tego, że brzmi jak przygotowanie do włamania.

Jakub: No, ma to dwie strony. Administratorzy używają tego legalnie. Na przykład, gdy potrzebują sprawdzić, czy działa im serwer webowy albo czy nie blokuje go firewall. Ale atakujący oczywiście używają tego do szukania podatnych na ataki aplikacji.

Adéla: Czyli istnieją różne sposoby, żeby zapukać do tych drzwi?

Jakub: Tak, mnóstwo. Najbardziej podstawowy to tak zwany TCP connect scan. Ten jest uprzejmy – puka, czeka na otwarcie i przedstawia się. Kończy cały trójstopniowy handshake. Ale jest wolny i co najważniejsze… zostawia ślady. Aplikacja zapisze, że przyszedłeś.

Adéla: A ten mniej uprzejmy sposób?

Jakub: To nazywa się SYN scan, czyli „stealth scan”. To tak jak zadzwonić i uciec. Wysyłasz tylko pierwszy pakiet SYN, a kiedy cel odpowie SYN-ACK, wiesz, że jest otwarte. Ale ty już trzeciego kroku, czyli ACK, nie wysyłasz. Połączenie nigdy nie zostanie w pełni nawiązane.

Adéla: Czyli cel nie wie, że tam byłem?

Jakub: Dokładnie tak, aplikacja zazwyczaj tego nie zaloguje. Ale uwaga! Nowoczesne firewalle i systemy wykrywania intruzji to widzą. A masowe skanowanie może być przez dostawcę internetu uznane za atak i spokojnie cię odłączyć.

Adéla: Rozumiem. Czyli to potężne narzędzie, ale musimy wiedzieć, co robimy. Co więc zrobić z informacjami, które w ten sposób zdobędziemy?

Adéla: Czyli firewalle mamy za sobą i jest jasne, że są podstawą bezpieczeństwa. Ale co jeśli potrzebujemy czegoś… sprytniejszego, co widzi do wnętrza ruchu?

Jakub: Dokładnie tak, Adelo. I tym samym dochodzimy do naszego ostatniego dużego tematu. Serwery proxy.

Adéla: Proxy… to brzmi jak jakiś pośrednik albo przedstawiciel.

Jakub: To absolutnie celne trafienie! Wyobraź sobie proxy jako osobistego asystenta dla twojego komputera. Ty mu mówisz, co chcesz z internetu, a on to załatwia za ciebie.

Adéla: Czyli ja nie komunikuję się bezpośrednio z serwerem docelowym?

Jakub: Dokładnie. Komunikujesz się z proxy, a proxy komunikuje się z serwerem. To są dwa oddzielne połączenia. Z zewnątrz wygląda to tak, że żądanie przyszło od proxy, a nie od ciebie.

Adéla: A do czego to jest dobre? Po co ten dodatkowy krok?

Jakub: Głównie dla dwóch rzeczy. Pierwsza to filtrowanie. Ponieważ proxy rozumie protokoły aplikacyjne, takie jak HTTP, widzi znacznie więcej niż firewall. Może blokować konkretne strony internetowe, a nawet fragmenty stron.

Adéla: Aha! Czyli to jest ta ważna różnica w porównaniu do firewalla, który tylko patrzy na adresy i porty.

Jakub: Dokładnie. A druga rzecz to kiedyś była pamięć podręczna (cache). Proxy przechowywała często odwiedzane strony. Dziś już to tak nie działa, bo wszystko jest dynamiczne. Ale to filtrowanie jest wciąż kluczowe.

Adéla: Dobrze, to ma sens. Istnieje więcej rodzajów tych „asystentów”?

Jakub: Jasne! Spójrzmy na trzy podstawowe typy. Pierwszy to klasyczne proxy.

Adéla: Klasyczne? Czyli że jest najstarsze?

Jakub: Można by tak powiedzieć. Tutaj klient, na przykład twoja przeglądarka, wie o proxy. Musisz mu bezpośrednio w ustawieniach powiedzieć: „Używaj tego proxy pod tym adresem.”

Adéla: To typowe dla firm czy szkół, prawda?

Jakub: Dokładnie tak. Przeglądarka wtedy nie wysyła żądania bezpośrednio do Seznam.cz, ale wysyła je do proxy z informacją, że chce stronę Seznam.cz. I proxy to załatwia.

Adéla: Rozumiem. Ale co jeśli mam aplikację, której nie mogę skonfigurować? Na przykład jakiś stary software.

Jakub: Świetne pytanie! Do takich przypadków mamy generyczne proxy. Tutaj sztuczka polega na tym, że klient myśli, że rozmawia bezpośrednio z serwerem docelowym.

Adéla: Jak to?

Jakub: Ponieważ do proxy „zaszywamy” adres serwera docelowego. Dla każdego serwera, z którym chcemy się połączyć, na proxy działa specjalny port. Klient łączy się z proxy:port1, a ono automatycznie przekierowuje go na serwer1. Nie zauważy różnicy.

Adéla: Czyli klient w ogóle nie wie o proxy. A co z tym trzecim typem?

Jakub: Ten nazywa się transparentne proxy i idzie jeszcze dalej. Tutaj nie musisz konfigurować absolutnie nic, ani na kliencie, ani na proxy.

Adéla: Czekaj, jak to możliwe? To brzmi jak magia.

Jakub: Prawie. Pakiet od klienta po prostu wysyłasz na serwer docelowy, ale element sieciowy, na przykład router, przechwytuje go i potajemnie przekierowuje na proxy. Ono wykonuje swoją pracę i wysyła odpowiedź z powrotem, tak jakby przyszła bezpośrednio od serwera.

Adéla: Czyli klient jest całkowicie nieświadomy. Gdzie to się stosuje?

Jakub: Wcześniej było to powszechne na przykład w publicznych sieciach Wi-Fi w hotelach do filtrowania treści. Dziś z zaszyfrowanym ruchem HTTPS jest to znacznie bardziej skomplikowane.

Adéla: Dobrze, proxy mamy. Ale słyszałam jeszcze o terminie brama, czyli gateway. Jest w tym jakaś różnica?

Jakub: Jest, i to zasadnicza. Proxy mówi tym samym językiem co klient i serwer. Na przykład HTTP. Ale brama tłumaczy protokoły!

Adéla: Tłumaczy? Daj mi przykład.

Jakub: Wyobraź sobie, że chcesz z przeglądarki internetowej (HTTP) uzyskać dostęp do serwera FTP. Brama bierze twoje żądanie HTTP, tłumaczy je na FTP, pobiera pliki i wyświetla ci je jako normalną stronę internetową.

Adéla: Aha! Czyli brama to taki uniwersalny tłumacz między dwoma różnymi światami. To sprytne.

Jakub: Dokładnie. I to prowadzi nas do samego końca naszej serii o bezpieczeństwie. Przeszliśmy przez naprawdę wiele.

Adéla: Owszem. Od podstawowych firewalli, przez sprytne systemy wykrywania intruzji, aż po dzisiejsze serwery proxy i bramy. Każdy ma swoje miejsce.

Jakub: Dokładnie tak. Nie chodzi o jedną kuloodporną technologię, ale o warstwy obrony. I teraz macie, mam nadzieję, znacznie lepszy przegląd, jak te warstwy działają. To była jazda.

Adéla: Zdecydowanie tak. Jakubie, bardzo ci dziękuję za wszystkie informacje. A wam, drodzy słuchacze, dziękujemy za uwagę przy Studyfi Podcast. Mamy nadzieję, że wam to pomogło, i życzymy dużo szczęścia na egzaminach! Trzymajcie się.

Jakub: Trzymajcie się!