Bezpieczeństwo i zapory firewall Zakrzewski Tomasz Kl. IVte
ATAKI NA APLIKACJE W ciągu ostatnich kilku lat korporacyjne zapory firewall stały się podstawowym elementem architektury bezpieczeństwa sieci. Zaprojektowane głównie jako mechanizm kontroli dostępu do zasobów sieciowych, zapory firewall pomyślnie wdrożono w znakomitej większości instalacji sieciowych. Najważniejszym powodem sukcesu zapór firewall jest fakt, że jeżeli urządzenia te wykorzysta się do wymuszania właściwie zdefiniowanej polityki bezpieczeństwa, zazwyczaj zapobiegają one ponad 90% atakom sieciowym. We współczesnym świecie, gdzie konkurencja odgrywa tak istotną rolę, ma to kluczowe znaczenie dla zapewnienia niezawodności sieci. Jednak chociaż większość zapór firewall zapewnia skuteczną kontrolę dostępu, wiele z nich nie umożliwia wykrywania i zwalczania ataków na poziomie aplikacji.
Zdając sobie sprawę z tego faktu, hakerzy opracowali skomplikowane ataki mające na celu obejście tradycyjnych mechanizmów kontroli dostępu stosowanych w granicznych zaporach firewall. Wiedza współczesnych hakerów jest ogromna. Stosowane przez nich techniki nie ograniczają się już tylko do skanowania otwartych portów w zaporach firewall. Ich bezpośrednim celem stały się aplikacje.
Do najpoważniejszych zagrożeń we współczesnym środowisku internetowym należą ataki polegające na próbach wykorzystania znanych słabych punktów aplikacji. Hakerzy szczególnie interesują się takimi usługami, jak HTTP (port TCP numer 80) oraz HTTPS (port TCP numer 443), które w wielu sieciach są otwarte. Urządzenia kontroli dostępu nie potrafią w łatwy sposób wykryć złośliwych eksploitów, których celem są wspomniane usługi. Do najpoważniejszych zagrożeń we współczesnym œrodowisku internetowym należą ataki polegające na próbach wykorzystania znanych słabych punktów aplikacji. Hakerzy szczególnie interesują się takimi usługami, jak HTTP (port TCP numer 80) oraz HTTPS (port TCP numer 443), które w wielu sieciach są otwarte. Urządzenia kontroli dostępu nie potrafią w łatwy sposób wykryć złoœliwych eksploitów, których celem są wspomniane usługi.
Dzięki skierowaniu ataków bezpośrednio na aplikacje, hakerzy próbują osiągnąć co najmniej jeden z kilku wymienionych poniżej celów: • zablokowanie dostępu do usług uprawnionym użytkownikom (ataki DoS); • uzyskanie dostępu z prawami administratora do serwerów lub klientów aplikacji; • uzyskanie dostępu do baz danych; • instalacja koni trojańskich, które umożliwiają pominięcie mechanizmów bezpieczeństwa i uzyskanie dostępu do aplikacji; • instalacja na serwerze programów działających w trybie nasłuchu, które przechwytują identyfikatory i hasła użytkowników.
Ponieważ ataki skierowane przeciwko aplikacjom są skomplikowane, skuteczne mechanizmy ochrony przed tymi atakami muszą być równie skomplikowane i inteligentne. Korporacyjne zapory firewall, w celu zapobiegania zagrożeniom powodowanym przez ataki skierowane na aplikacje, muszą zapewniać kompleksową ochronę na wielu poziomach. Mechanizmy ochrony powinny zabezpieczać zarówno przed atakami skierowanymi na sieć, jak i aplikacje, a jednocześnie zapewniać ścisłą kontrolę dostępu do zasobów informatycznych.
Application Intelligence ochrona przed zagrożeniami nowej generacji Wiele zapór firewall, w szczególności tych, które bazują na technologii Stateful Inspection zawiera pokaźny arsenał mechanizmów obronnych przed atakami sieciowymi. W efekcie, coraz częściej w atakach wykorzystuje się słabe punkty aplikacji sieciowych, a coraz rzadziej kieruje się je bezpośrednio przeciwko zaporom firewall. Ta istotna zmiana w metodologii ataków wymaga od zapór firewall nie tylko mechanizmów kontroli dostępu i ochrony przed atakami poziomu sieci, ale także zrozumienia działania aplikacji w celu ochrony przed atakami skierowanymi na aplikacje i ich uszkodzeniem. Bazująca na najbardziej elastycznej i inteligentnej technice inspekcji INSPECT, technologia Check Point Application Intelligence zapewnia rozszerzony zakres zabezpieczeń sieciowych.
BEZPIECZEŃSTWO WARSTWY APLIKACJI Warstwa aplikacji jest częstym celem ataków z kilku powodów. Po pierwsze, jest to warstwa, w której znajduje się ostateczny cel hakerów dane użytkowników. Po drugie, warstwa aplikacji obsługuje wiele protokołów (HTTP, CIFS, VoIP, SNMP, SMTP, SQL, FTP, DNS, itp.), a zatem stwarza możliwość skorzystania z wielu potencjalnych metod ataku. I po trzecie, wykrywanie i ochrona przed atakami w warstwie aplikacji jest trudniejsza od ochrony w niższych warstwach, ponieważ warstwa aplikacji ma więcej słabych punktów. W celu skutecznego zapewnienia bezpieczeństwa poziomu aplikacji, zabezpieczenie musi zapewniać następujące cztery mechanizmy obrony:
Sprawdzanie zgodności ze standardami Zapory firewall muszą mieć możliwość sprawdzenia, czy komunikacja odbywa się zgodnie z odpowiednimi standardami protokołów. Naruszenie standardów transmisji może być wskaźnikiem złośliwego ruchu. Każdy ruch, który nie przestrzega ściśle standardów protokołu lub aplikacji, zanim dostanie się do sieci chronionej, musi być poddany szczegółowej analizie. W innym przypadku kluczowe dla biznesu aplikacje mogą być w niebezpieczeństwie. Oto przykłady:
Voice Over IP (VoIP) W transmisji VoIP zazwyczaj wykorzystuje się protokoły H.323 i SIP. Działanie tych protokołów jest dość skomplikowane, w efekcie w ustanowieniu i utrzymaniu połączeń VoIP wykorzystuje się wiele portów komunikacyjnych. Niewłaściwe przestrzeganie tych protokołów może spowodować, że instalacja VoIP będzie wrażliwa na następujące niebezpieczeństwa: przekierowania połączeń połączenia trafiają do innego odbiorcy, niż planowano; kradzież połączeń dzwoniący podaje się za kogoś innego; ataki Denial of Service (DoS) blokowanie uprawnionym użytkownikom dostępu do usługi VoIP. Bramy zabezpieczeń muszą zapewnić pełną zgodność poleceń H.323 i SIP z odpowiednimi standardami i dokumentami RFC oraz właściwą strukturę pakietów oraz kolejność ich transmisji. Dodatkowo, zapory firewall powinny sprawdzać zawartość pakietów przesyłanych przez każdy z dozwolonych portów po to, by uzyskać pewność, że zawierają one właściwe informacje.
Dane binarne w nagłówkach HTTP. Chociaż oficjalny standard HTTP zabrania przesyłania znaków binarnych w nagłówkach HTTP, reguła ta jest niejednoznaczna i większość zapór firewall jej nie sprawdza. W rezultacie, wielu hakerów przeprowadza ataki polegające na włączaniu kodu wykonywalnego w nagłówkach HTTP. Wszystkie bramy zabezpieczeń powinny umożliwiać blokowanie lub oznaczanie znaków binarnych w nagłówkach i żądaniach HTTP.
Sprawdzanie spodziewanego sposobu wykorzystania protokołów (wykrywanie anomalii protokołów). Testowanie zgodności protokołów ze standardami jest ważne, ale równie ważna jest możliwość sprawdzenia, czy dane w obrębie protokołów są wykorzystywane tak, jak się spodziewano. Inaczej mówiąc, nawet jeśli strumień komunikacji jest zgodny ze standardem protokołu, sposób wykorzystania protokołu może być inny niż spodziewany. Oto przykłady:
Wykorzystanie protokołu HTTP do transmisji w sieciach Peer-to-Peer (P2P). P2P to model komunikacji, w którym każda stacja ma te same uprawnienia i może zainicjować sesję komunikacji. Aplikacje P2P można podzielić na dwie główne kategorie: komunikatory (Instant messaging IM) ich głównym celem jest umożliwienie bezpośredniej komunikacji on-line pomiędzy użytkownikami sieci; sieci do współdzielenia plików ich głównym celem jest współdzielenie zasobów, na przykład miejsca na dysku.
Transmisje P2P często wykorzystują port TCP numer 80, który w normalnych warunkach jest przeznaczony do przesyłania ruchu HTTP i dlatego jest otwarty na połączenia wychodzące. Chociaż istnieje wiele zastrzeżonych protokołów P2P, bardzo często transmisje P2P są wbudowane w ruch HTTP. W takich sytuacjach zapory firewall, które sprawdzają tylko zgodność protokołu ze standardem zezwalają na sesję P2P (ponieważ wykorzystuje ona standardowy protokół HTTP). Ponieważ spodziewane wykorzystanie protokołu HTTP to transmisja stron WWW, wbudowana w ruch HTTP komunikacja P2P powinna zostać zablokowana lub oznaczona przez zaporę firewall.
W wielu firmach dąży się do zablokowania bądź ograniczenia ruchu P2P ze względów bezpieczeństwa, oszczędności pasma bądź przyczyn prawnych. Komunikacja P2P stwarza problemy bezpieczeństwa ponieważ umożliwia przesyłanie plików, gier, głosu i wiadomości e-mail z pominięciem zapór firewall, mechanizmów kontroli antywirusowej, rejestrowania i śledzenia. W efekcie hakerzy mogą ją wykorzystać jako sposób ataku na sieć. Bramy zabezpieczeń powinny blokować nieuprawniony ruch P2P lub zezwalać na ruch P2P tylko dla uprawnionych użytkowników.
Directory Traversal. Ataki typu directory traversal umożliwiają hakerom uzyskanie dostępu do plików i katalogów, do których dostęp powinien być zabroniony. W efekcie, próbując uzyskać dostęp do zasobów haker może uruchomić na serwerze WWW niepożądany, wykonywalny kod. Większość z tych ataków wykorzystuje notację ".." stosowaną w systemach plików. Zapory firewall powinny blokować żądania, w których adresy URL zawierają żądania katalogów zgodne ze składnią, ale niezgodne ze spodziewanym sposobem użycia. Na przykład żądanie postaci http://www.serwer.com/pierwszy/drugi/../../.. jest próbą przejścia poza katalog główny i dlatego powinno zostać zablokowane.
Nienaturalnie długie nagłówki HTTP. W standardzie HTTP nie ma ograniczeń długości nagłówków. Pomimo to, stosowanie bardzo długich nagłówków HTTP nie mieści się w normach standardowego, spodziewanego wykorzystania protokołu HTTP. Nagłówki nienaturalnie długie powinny być blokowane lub znakowane w celu zmniejszenia ryzyka wystąpienia przepełnień bufora (ang. buffer overflow) oraz ograniczenia rozmiaru kodu, który może być wstawiony za pomocą tej techniki.
Ograniczenie możliwości przenoszenia złośliwego kodu przez aplikacje Nawet jeśli komunikacja w warstwie aplikacji jest zgodna z wymogami protokołów, w dalszym ciągu jest możliwość przesyłania w niej danych, które potencjalnie mogą zakłócać pracę systemu. Z tego powodu, bramy zabezpieczeń powinny zawierać mechanizmy wprowadzania ograniczeń i kontroli zdolności aplikacji do wprowadzania do sieci wewnętrznej potencjalnie niebezpiecznych danych lub poleceń. Oto przykłady:
Ataki Cross Site Scripting. Skrypty są powszechnie stosowanym mechanizmem ataków na aplikacje. Ponieważ większość skryptów nie stwarza zagrożenia, nic nie podejrzewający użytkownicy często nieumyślnie wykonują złośliwe skrypty. Bardzo często są one ukryte w niewinnie wyglądających odsyłaczach lub wizytówkach e-mailowych. Typowym przykładem złośliwego kodu zapisanego w skryptach są ataki XSS (ang. Cross Site Scripting). W atakach tego rodzaju hakerzy wykorzystują relacje zaufania pomiędzy użytkownikiem, a witryną WWW poprzez stosowanie specjalnie spreparowanych adresów URL. Celem ataków jest zdobycie plików cookie zawierających dane identyfikacyjne użytkowników oraz parametry uwierzytelniania lub też nakłonienie użytkowników do udostępnienia napastnikom danych umożliwiających ich zalogowanie się. Zazwyczaj ataki XSS są inicjowane poprzez umieszczenie skryptów w żądaniu HTTP, które użytkownik nieświadomie przesyła do zaufanej witryny WWW. W celu ochrony serwerów WWW przed atakami XSS, bramy zabezpieczeń powinny zapewniać możliwość wykrywania i blokowania żądań HTTP zawierających niebezpieczny kod.
Ograniczanie lub blokowanie potencjalnie złośliwych adresów URL. Złośliwe dane mogą przedostać się do sieci wewnętrznej za pośrednictwem adresów URL. Na przykład, aplikacja klienta pocztowego może automatycznie wykonać kod HTML wbudowany w adresie URL. Jeśli URL zawiera złośliwy kod, może spowodować uszkodzenia w sieci wewnętrznej lub systemie użytkownika. Dostęp do potencjalnie złośliwych adresów URL powinien zostać zablokowany bądź ograniczony.
Wykrywanie i blokowanie sygnatur ataku. Bramy zabezpieczeń powinny przeprowadzać filtrowanie zawartości wszystkich strumieni danych w celu wykrywania i blokowania wszystkich kombinacji danych, które posiadają cechy złośliwego kodu, robaków, itp.
Kontrola operacji w warstwie aplikacji Oprócz tego, że w strumieniach przesyłanych w warstwie aplikacji mogą być złośliwe dane, także same aplikacje mogą wykonywać nieuprawnione operacje. Zabezpieczenia sieciowe powinny mieć możliwość identyfikacji i kontroli takich operacji poprzez przeprowadzanie „kontroli dostępu” oraz testów „uprawnionego użycia”. Ten poziom zabezpieczeń wymaga szczegółowego rozróżniania operacji wykonywanych przez aplikacje. Oto przykłady:
Usługi sieci Microsoft Network Mechanizm zabezpieczeń sieci powinien implementować politykę bezpieczeństwa wykorzystując wiele parametrów systemu plików firmy Microsoft CIFS (Common Internet File System). System plików CIFS obsługuje między innymi operacje współdzielenia plików i drukarek. Biorąc za przykład te operacje, brama zabezpieczeń powinna mieć możliwość rozróżniania i blokowania operacji współdzielenia plików pochodzących od użytkowników lub systemów nie mających odpowiednich uprawnień. Z kolei operacje współdzielenia drukarek pochodzące od tych samych użytkowników mogą być dozwolone. Zapewnienie poziomu bezpieczeństwa na takim poziomie szczegółowości wymaga dokładnego zrozumienia działania systemu plików CIFS, a także możliwości zarządzania składnikami warstwy aplikacji.
FTP Zapora firewall powinna mieć możliwość wprowadzania ograniczeń dla określonych nazw plików i kontrolować potencjalnie szkodliwe polecenia FTP takie, jak PUT, GET, SITE, REST i MACB. Na przykład, polityka bezpieczeństwa może wymagać blokowania wszystkich plików zawierających frazę lista płac.
Warstwy sieci i transportu: konieczna podstawa dla technologii application intelligence Technologia Application Intelligence w swojej najczystszej formie składa się z mechanizmów ochrony poziomu aplikacji. Jednak w praktyce, celem wielu ataków skierowanych przeciwko aplikacjom sieciowym w rzeczywistości są warstwy sieci i transportu. Hakerzy atakują niższe warstwy, które wykorzystują jako mechanizmy dostępu do warstwy aplikacji i ostatecznie samych aplikacji oraz wykorzystywanych przez nich danych. Dzięki zaatakowaniu niższych warstw hakerzy mogą przerwać lub zablokować dostęp do usług uprawnionym użytkownikom i aplikacjom (ataki DoS). Z tego powodu technologia Application Intelligence oraz inne zabezpieczenia sieciowe musi chronić nie tylko warstwę aplikacji, ale także warstwy sieci i transportu.
BEZPIECZEŃSTWO WARSTWY SIECI Zapobieganie złośliwym manipulacjom protokołami warstwy sieciowej (np. IP, ICMP) to kluczowe wymaganie dla wielopoziomowych bram zabezpieczeń. Najczęściej wykorzystywanym medium ataków przeciwko warstwie sieci jest protokół IP (Internet Protocol), którego zestaw usług rezyduje właśnie w tej warstwie. Istnieje wiele różnych rodzajów ataków stosowanych w warstwie sieci.
Fragmentacja IP. Fragmentację IP można wykorzystać do przeprowadzania i ukrywania ataków w celu zapobieżenia ich wykryciu. Technika ta wykorzystuje elastyczność protokołu IP (RFC 791 i RFC 815) umożliwiającą dzielenie ataków na wiele pakietów IP. Dzięki temu pakiety omijają takie zapory firewall, które nie wykonują scalania fragmentów IP. Fragmentację IP można także wykorzystać do przeprowadzenia ataku DoS poprzez zasypywanie urządzeń scalających fragmenty IP niekompletnymi sekwencjami fragmentów.
Smurfing (ataki typu smurf). Protokół ICMP umożliwia węzłowi sieci wysyłanie sygnału ping lub żądania echo do innych węzłów sieciowych w celu sprawdzenia stanu ich działania. Zdolność tę można wykorzystać do przeprowadzenia ataku DoS typu „smurf”. Taki atak jest możliwy dlatego, gdyż w standardowym protokole ICMP nie są porównywane żądania z odpowiedziami. Z tego powodu, napastnik może wysłać na adres rozgłoszeniowy sygnał ping ze sfałszowanym źródłowym adresem IP. Adres rozgłoszeniowy IP odpowiada wszystkim adresom IP w określonej sieci. Wszystkie komputery w sieci, do której wysłano sygnał ping, wysyłają odpowiedzi echo do sfałszowanego, źródłowego adresu IP. Zbyt dużo sygnałów ping i odpowiedzi może zalać sieć i zablokować do niej dostęp uprawnionemu ruchowi. Tego typu atak można zablokować poprzez usuwanie odpowiedzi, które nie pasują do żądań. W ten sposób działa technologia Stateful ICMP firmy Check Point.
BEZPIECZEŃSTWO WARSTWY TRANSPORTU Warstwa transportu wraz z protokołami, które w niej działają (TCP, UDP) jest podobnie, jak warstwa sieci znanym punktem dostępowym umożliwiającym hakerom wykonywanie ataków na aplikacje i dane. Oto kilka przykładów ataków na warstwę transportu:
Ataki DoS dla protokołów różnych od TCP. Ataki DoS na protokoły różne od TCP (np. UDP i ICMP) mogą całkowicie zablokować kluczowe aplikacje wykorzystujące ruch TCP (np. SMTP, HTTP, FTP, itp.). Zapory firewall mogą ochronić przed tymi zagrożeniami poprzez zarezerwowanie dedykowanej części tabeli stanów dla połączeń TCP. Jeśli połączenia innych protokołów niż TCP próbują wykorzystywać zbyt wiele zasobów, połączenia TCP na tym nie ucierpią, ponieważ będą obsługiwane przez zarezerwowane zasoby systemowe.
Skanowanie portów. Skanowanie portów jest tym, na co wskazuje nazwa: hakerzy skanują zakres portów systemu docelowego w celu zidentyfikowania i wykorzystania słabych punktów działających aplikacji. Rekonesans wykonany za pomocą skanowania portów jest sam w sobie zagrożeniem, ponieważ może prowadzić do ataku. Brama zabezpieczeń musi być zdolna do zgłaszania alarmów i blokowania bądź przerywania komunikacji ze źródłem skanowania.
Wnioski Zapory firewall stały się podstawowym elementem infrastruktury bezpieczeństwa sieci ze względu na ich zdolność do blokowania ataków na poziomie sieci. Reakcją hakerów na sukces zapór firewall było opracowanie bardziej wyszukanych metodologii ataku. Celem ataków nowego typu są aplikacje. Hakerzy bardzo często próbują wykorzystać słabe punkty w samych aplikacjach bądź w protokołach komunikacyjnych, które te aplikacje wykorzystują. Zapewnienie bezpieczeństwa na wielu poziomach jest warunkiem koniecznym zabezpieczenia sieci korporacyjnych przed wspomnianymi zagrożeniami. Co więcej, wielopoziomowe rozwiązania zabezpieczeń muszą chronić zarówno przed atakami warstwy sieci, jak aplikacji, a jednocześnie zapewniać kontrolę dostępu do zasobów informatycznych.
Bazująca na technice INSPECT, technologia Application Intelligence firmy Check Point jest zbiorem zaawansowanych mechanizmów zintegrowanych z technologiami firmy Check Point FireWall-1 NG oraz SmartDefense. Pozwala ona na wykrywanie i przeciwdziałanie atakom poziomu aplikacji. Rozwiązania firmy Check Point są sprawdzonymi w branży, kompleksowymi technologiami zabezpieczającymi przed rosnącą liczbą ataków skierowanych przeciwko kluczowym aplikacjom.