Co to jest kontrola stanowa?

Stateful Inspection to technika stosowana w zaporach sieci komputerowych do ochrony sieci przed nieautoryzowanym dostępem. Metoda ta, znana również czasami jako dynamiczne filtrowanie, umożliwia sprawdzanie całego pakietu danych, zanim trafi on do sieci. W ten sposób każdy pakiet wchodzący do dowolnego interfejsu zapory jest całkowicie sprawdzany pod kątem poprawności z typami połączeń, które mogą przejść na drugą stronę. Proces otrzymuje swoją nazwę, ponieważ nie tylko sprawdza pakiety danych, ale także monitoruje stan połączenia, które zostało nawiązane i przepuszczone przez zaporę.

Pomysł kontroli stanowej został po raz pierwszy opracowany przez oprogramowanie Check Point® w połowie lat 1990-tych. Przed oprogramowaniem silnika Check Point® Firewall-1 INSPECT™ zapory monitorowały warstwę aplikacji na szczycie modelu połączeń systemów otwartych (OSI). To zwykle bardzo obciążało procesor komputera, więc inspekcja pakietów przeniosła się w dół warstw modelu OSI do trzeciej warstwy, warstwy sieciowej. Wczesna inspekcja pakietów sprawdzała tylko informacje nagłówka, adresowania i protokołu pakietów i nie miała możliwości odróżnienia stanu pakietu, np. czy jest to nowe żądanie połączenia.

W zaporze z inspekcją stanową, przyjazna dla zasobów i szybka metoda filtrowania pakietów jest nieco połączona z bardziej szczegółowymi informacjami o aplikacji. Daje to pewien kontekst pakietowi, dostarczając w ten sposób więcej informacji, na podstawie których można podejmować decyzje dotyczące bezpieczeństwa. Aby przechowywać wszystkie te informacje, zapora musi utworzyć tabelę, która następnie definiuje stan połączenia. Szczegóły każdego połączenia, w tym informacje o adresie, portach i protokołach, a także informacje o sekwencjonowaniu pakietów, są następnie przechowywane w tabeli. Jedyne zasoby czasowe są napięte w ogóle podczas początkowego wejścia do tablicy stanów; po tym, każdy inny pakiet dopasowany do tego stanu nie zużywa prawie żadnych zasobów obliczeniowych.

Proces kontroli stanowej rozpoczyna się w momencie przechwycenia i sprawdzenia pierwszego pakietu żądającego połączenia. Pakiet jest dopasowywany do reguł zapory sieciowej, gdzie jest sprawdzany pod kątem szeregu możliwych parametrów autoryzacji, które można w nieskończoność dostosowywać w celu obsługi nieznanego wcześniej lub dopiero rozwijającego się oprogramowania, usług i protokołów. Przechwycony pakiet inicjuje uzgadnianie, a zapora odsyła odpowiedź do żądającego użytkownika, potwierdzając połączenie. Teraz, gdy tabela została wypełniona informacjami o stanie połączenia, następny pakiet od klienta jest dopasowywany do stanu połączenia. Trwa to do momentu wygaśnięcia lub zakończenia połączenia, a tabela zostanie wyczyszczona z informacji o stanie tego połączenia.

Powoduje to jeden z problemów, przed jakimi stoi zapora kontroli stanowej, czyli atak typu „odmowa usługi”. W przypadku tego typu ataku bezpieczeństwo nie jest tak bardzo zagrożone, jak zapora ogniowa jest bombardowana licznymi początkowymi pakietami żądającymi połączenia, zmuszając tabelę stanów do wypełnienia żądaniami. Po zapełnieniu tabela stanów nie może już akceptować żadnych żądań, więc wszystkie inne żądania połączeń są blokowane. Inna metoda ataku na zaporę stanową wykorzystuje reguły zapory do blokowania ruchu przychodzącego, ale zezwala na ruch wychodzący. Atakujący może oszukać hosta po bezpiecznej stronie zapory, aby poprosił o połączenia z zewnątrz, skutecznie otwierając wszelkie usługi na hoście, z których może skorzystać atakujący.