www.eprace.edu.pl » omijanie-zapor-sieciowych » Faza ataku » Ataki z wewnątrz sieci korporacyjnej

Ataki z wewnątrz sieci korporacyjnej

Przedstawione dalej techniki omijania zapory ogniowej zakładają, że intruzem jest zaawansowany użytkownik, będący pracownikiem firmy, którego uprawnienia ograniczają się do korzystania z zasobów sieci lokalnej. Metody wykorzystywane przez niego mają na celu ominięcie zabezpieczeń zapory ogniowej w taki sposób, aby uzyskać dostęp do usług internetowych, takich jak WWW, czy SSH.

Tunelowanie ruchu

Tunelowanie ruchu26 (ang. Inside-Out Attack, albo Covert Channel Attack) to technika polegająca na ukrywaniu strumienia nieautoryzowanych danych wewnątrz innego, na który polityka bezpieczeństwa zezwala. Pierwsze koncepcje wykorzystania owej metody pojawiły się już w latach 70-tych ubiegłego stulecia, a ukrywanie danych w komunikacji sieciowej nabrało prawdziwego rozpędu w latach 90-tych. Można powiedzieć, iż poniższa technika działa na zasadzie podobnej do stosowanej w tunelowaniu ruchu dla wirtualnych sieci prywatnych VPN.

Istota ataku opiera się na enkapsulowaniu porcji danych, które są blokowane na poziomie zapory sieciowej, w inny protokół, który jest przepuszczany. Da przykładu, częstym scenariuszem w firmach jest sytuacja, gdy pracownik ma możliwość przeglądania tylko stron internetowych (zapora przepuszcza na zewnątrz tylko ruch http lub https, czyli porty 80 i 443 TCP, a wszelkie inne rodzaje ruchu są blokowane). Nie stanowi to jednak wielkiego problemu, ponieważ dzięki tunelowaniu, możliwe
jest nawiązywanie połączeń z wykorzystaniem wielu innych protokołów,
które wystarczy ukryć w ruchu HTTP.

W celu ukrywania ruchu, wykorzystać można rzadko używane pola w pakietach IP. Są to najczęściej dwubajtowe pole ID, Flags albo Options, których wykorzystanie nie jest obowiązkowe i rzadko spotykane. Podobnie, modyfikuje się pakiety TCP w polach ISN (Initial Sequence Number), IP Number, Sequence Number oraz ACK Number. Może to jednak wpłynąć na łatwiejsze wykrycie podstępu przez administratora, bo istnienie danych zamieszczonych w tych polach wydawać się może dość podejrzane.

Najczęściej jednak ruch ukrywany jest we wspomnianym protokole HTTP, ale także w DNS i ICMP, które niezwykle często przepuszczane są do sieci publicznej. Jednakże istnieją także narzędzia pozwalające na ukrywanie danych w ramach wielu innych protokołów.

W przypadku wykorzystania protokołu DNS (port 53 UDP), dane ukrywane są przeważnie, jako wartości pól NAME oraz QNAME, które pozwalają na zaalokowanie porcji informacji o wielkości 255 bajtów. Korzysta się także z innych pól, takich jak TXT, SPF, CNAME, czy wykorzystywany w systemach Microsoft Windows 2003 rekord EDNS0 (Extended DNS). Narzędziami, które pozwalają na ukrywanie danych w zapytaniach DNS są NSTX, OzyManDNS oraz DNSCat.

Przy użyciu protokołu ICMP w celu ukrycia danych, wykorzystuje się zapytania ECHO REQUEST (ICMP 8) oraz ECHO REPLY (ICMP 0). Pierwszym, znakomitym przykładem wykorzystania ICMP do tunelowania ruchu TCP była aplikacja LOKI, rozbudowana później i opublikowana pod nazwą LOKI 2. Obecnie najciekawszym rozwiązaniem wydaje się być doskonałe narzędzie Ping Tunnel.

W większości przytoczonych przypadków tunelowanie danych w innych protokołach wymaga przygotowania i uruchomienia po stronie Internetu serwera, działającego na zasadach podobnych do serwerów proxy. Użytkownik sieci chronionej, chcący tunelować ruch SSH w protokole HTTP, musi udostępnić w Internecie serwer, który ten ruch od klienta przechwyci, usunie nagłówki HTTP i przekieruje dalej do docelowego serwera SSH.

Poniżej przedstawiony jest przykład wykorzystania techniki tunelowania danych SSH w ruchu HTTP, z wykorzystaniem narzędzia HTTPTunnel27.

Rys. 4.1.1a – Przykład ataku z wykorzystaniem tunelowania

Włamywacz przeprowadza atak w kilku krokach:

0) Przygotowuje dostępny w Internecie komputer, na którym uruchamia aplikację HTTPTunnel w trybie serwera nasłuchującego na porcie 80/TCP. Następnie, uruchamia aplikację HTTPTunnel na komputerze w sieci chronionej, która jednak pracuje w trybie klienta na porcie 8888/TCP. Każde odebranie na tym porcie połączenie, zostaje przekierowane na serwer 195.115.10.510 na port 80/TCP. Wszystko to odbywa się zgodnie z polityką filtrowania ruchu zdefiniowaną na zaporze ogniowej;

Rys. 4.1.1b – Uruchomienie serwera HTTPTunnel

Rys. 4.1.1c - Uruchomienie klienta HTTPTunnel

1) W kliencie SSH (np. Putty28) definiuje połączenie do serwera SSH, którego adresem jest adres lokalny komputera oraz port, na którym nasłuchuje HTC, czyli 8888/TCP;

Rys. 4.1.1d – Utworzenie nowego połączenia do serwera SSH. Wymagane jest także zdefiniowanie w aplikacji Putty, aby łączyła się przez bramę aplikacyjną SOCKS5.

Rys. 4.1.1e – Definiowanie połączenie przez bramę aplikacyjną, którą pełni HTC

W tym momencie, klient SSH łączy się z lokalnym serwerem proxy na port 8888/TCP, który enkapsuluje ruch SSH jako HTTP i wysyła do przygotowanego wcześniej serwera HTTPTunnel po porcie 80/TCP.

2) Ruch opakowany w nagłówki HTTP zostaje przepuszczony na poziomie zapory i traktowany jak zwyczajne żądanie do strony internetowej;

3) Serwer HTS odbiera połączenie na porcie 80/TCP, zdejmuje nagłówki HTTP i „czysty” ruch SSH zostaje przekierowany do rzeczywistego serwera SSH (adres docelowego serwera - w tym przypadku jest to unixlab.cs.put.poznan.pl, definiowany jest podczas uruchamiania serwera HTS). Od tego momentu klient w sieci chronionej ma już nawiązaną transmisję z interesującym go serwerem i może swobodnie pracować;

Rys. 4.1.1f – Nawiązane połączenie SSH, pomimo zabraniających reguł zapory

Mechanizm ochronny:

Podszywanie pod zaufane adresy komputerów

Wiele środowisk informatycznych ma skonfigurowane zapory ogniowe w oparciu o proste filtry IP, które pewnym adresom komputerów w sieci lokalnej pozwalają na dostęp do internetu, a z kolei innym nie. Powyższy scenariusz pozwala potencjalnemu hackerowi na zastosowanie techniki zwanej podszyciem (ang spoofing) w celu sfałszowania źródłowego adresu IP, a tym samym uzyskania dostępu poza sieć lokalną. Na wstępie jednak, atakujący musi w jakiś sposób poznać adres komputera, który uprawiony jest do korzystania z internetu. Może do tego użyć narzędzia systemowego ping, a jako parametr podać adres komputera osoby z działu IT, członka zarządu, lub innej osoby, która przypuszczalnie ma prawo do korzystania z sieci publicznej.

Rys. 4.1.2a – Użycie narzędzia ping w celu poznania adresu IP hosta

Wspomniany atak może zostać przeprowadzony w dwojaki sposób:

  1. Wykorzystując nieobecność danego pracownika, a tym samym fakt, iż jego komputer jest wyłączony. Pozwala to na przypisanie swojemu komputerowi adresu IP, któremu zapora zezwala na połączenia zewnętrzne;

  2. Unieruchomienie komputera, który ma dostęp do Internetu. Sprawi to, iż przestanie on uczestniczyć w ruchu sieciowym, a tym samym możliwe będzie użycie jego adresu IP. W tym celu należy dokonać ataku odmowy usługi (ang. Denial Of Service).

Poniższy przykład przedstawia atak odmowy usługi na docelowym komputerze pracującym pod kontrolą systemu Windows XP. Atak polega na wykorzystaniu błędu w implementacji obsługi zapytań RPC dla usługi ‘Stacja robocza’ w systemach Windows 2000 z zainstalowanym SP4 oraz XP z SP2. Specjalnie spreparowane zapytanie RPC zawierające zbyt dużą ilość danych powoduje przeciążenie pamięci operacyjnej systemu, a tym samym jego unieruchomienie. Szczegóły na temat błędu znaleźć można w artykule CVE-2006-672329.

Rys. 4.1.2b Atak odmowy usługi i unieruchomienie zdalnego hosta

Mechanizm ochronny:

Administrator IT, chcąc uniknąć podobnych sytuacji powinien wykorzystać poniższe techniki:

IEEE 802.1x
IEEE 802.1X – standard IEEE dla kontroli dostępu do sieci przewodowych i bezprzewodowych. Umożliwia uwierzytelnienie do urządzeń dołączonych do portów sieci LAN, ustanowienie połączenia punkt-punkt i uniemożliwia dostęp z określonego portu, jeśli uwierzytelnienie się nie powiedzie. Jest często używany przy połączeniach do punktu dostępowego w sieciach bezprzewodowych w standardzie 802.11. Jest oparty na protokole EAP (Extensible Authentication Protocol, RFC 2284). RFC 2284 zostało zastąpione przez RFC 3748. 802.1X jest również coraz szerzej dostępny w przełącznikach sieci Ethernet, jednak wymaga, aby przyłączane urządzenia lub komputery miały odpowiednie oprogramowanie, zwane suplikantem 802.1X. Zastosowanie uwierzytelnienia 802.1X eliminuje niebezpieczeństwo nieautoryzowanego dostępu do sieci już na poziomie warstwy dostępu do sieci. Wielu dostawców zaimplementowało standard 802.1X w bezprzewodowych punktach dostępowych (zwanych często hotspotami), aby ominąć zagrożenia wynikające ze słabości protokołu WEP (Wired Equivalement Privacy). Zazwyczaj uwierzytelnienie jest przeprowadzane przez serwer RADIUS, zapewniając uwierzytelnienie jednokierunkowe (klienta) lub dwukierunkowe (klienta i serwera).

W przedstawionym poniżej scenariuszu, dowolny host, który podłącza się do sieci lokalnej i wspiera standard 802.1x30, zostaje poddany uwierzytelnieniu w następujących krokach:

  1. Przełącznik wysyła do klienta zapytanie o uwierzytelnienie (aplikacja wspierająca 802.1x wyświetla na ekranie użytkownika monit o login oraz hasło);

  2. Wprowadzone informacje zostają przez przełącznik przekazane do serwera uwierzytelnienia (np. serwera z usługą Microsoft Internet Authentication Services wspierającego protokół RADIUS);

  3. Serwer sprawdza podane informacje np. w bazie Active Directory albo LDAP i na ich podstawie (np. przynależność do grupy w AD) udziela, bądź nie dostępu do sieci. Serwer uwierzytelniający może też narzucić dość precyzyjne reguły dostępu dla klienta w zależności np. od grupy użytkowników, w jakiej znajduje się jego konto. W przedstawionym przykładzie, zdefiniowane są dwie przykładowe grupy: z_internetem oraz bez_internetu. W zależności od przynależności do nich, uwierzytelniany użytkownik zostaje na poziomie przełącznika (musi on wspierać 802.1x) przydzielony do odpowiedniego VLAN – 101 albo 102.

  4. Komputer klienta po przydzieleniu do odpowiedniego VLAN wysyła prośbę do serwera DHCP o przydzielenie adresu IP. Ten nadaje go w oparciu o źródłowy VLAN, z jakiego nadeszło zapytanie. W ten sposób hostom narzuca się adresy z różnych klas IP, które można w łatwy i przejrzysty sposób filtrować na poziomie bramy do Internetu;

Rys. 4.1.2c – Wykorzystanie standardu 802.1x w celu kontroli dostępu

Przedstawiona powyżej technologia uniemożliwi hackerowi przypisanie swojemu komputerowi dowolnego adresu IP, bowiem adres ten musi zgadzać się z pulą adresacji przypisaną VLANowi. Przykładowo, VLAN 102 bez dostępu poza sieć lokalną ma na przełączniku narzuconą bramę 192.168.102.1. Zatem przypisanie na sztywno komputerowi w tej podsieci adresu z klasy 192.168.101.0/24 (uprawionej) uniemożliwi hostowi jakiekolwiek korzystanie z sieci ze względu na konflikt w routingu między VLANami.

W przedstawionym scenariuszu, może jednak pojawić się problem, gdy osoba nieuprawniona pozyska nazwę użytkownika oraz hasło pracownika uprawionego do dostępu do Internetu. W tej sytuacji, zamiast używać kombinacji login – hasło, warto zaimplementować w ramach 802.1x uwierzytelnianie za pomocą certyfikatów.

Wykorzystanie zaufanego hosta jako bramy

Kolejnym sposobem ominięcia restrykcji w dostępie poza sieć lokalną
jest wykorzystanie zaufanego hosta jako bramy. Można wyobrazić sobie scenariusz, gdy jeden z pełnoprawnych użytkowników sieci umożliwia innej osobie, która takiego przywileju nie ma, na dostęp do Internetu za pośrednictwem swojego komputera. W ten sposób z uprzywilejowanego komputera możliwe jest stworzenie bramy aplikacyjnej proxy, albo najprościej, można na nim udostępnić połączenie.


Rys. 4.1.3 – Hacker wykorzystuje uprzywilejowany komputer jako bramę, by uzyskać dostęp do zasobów Internetu.

Mechanizm ochronny:

Powyższa technika jest niezwykle prosta w implementacji, a jednocześnie stosunkowo trudna do wykrycia przez administratora. Istnieją jednak mechanizmy, które uniemożliwią użytkownikom stosowania takich mechanizmów.

TTL – Time To Live
Pole w nagłówku pakietu IP, określające maksymalny czas ważności pakietu w sieci, po upływie, którego wygasa on i zostaje odrzucony; Domyślny czas ważności pakietu IP w Windows 95 wynosi 32, natomiast w Windows 98 - 128. Parametr TTL podawany jest w liczbie skoków (hops). TTL zostało stworzone po to, aby uniemożliwić pakietom, które z jakiegoś powodu zaginęły w sieci, by krążyły one bez końca i „zaśmiecały” ruch. Dlatego przy przejściu przez każdy z kolejnych routerów (hop), TTL pakietu zmniejszany jest o 1. W przypadku MS Windows, pakiet zostanie unicestwiony po przejściu przez 127 routerów w sieci. Jego wartość będzie równa 0, a on sam zostanie usunięty przez router.

Wykorzystanie techniki, gdzie firmowy router ustawi wartość TTL na 1 sprawi, iż przy przekazaniu pakietu powrotnego przez nielegalny router (bramę) wewnątrz sieci LAN, wartość TTL ustawiona zostanie na 0 i pakiet automatycznie zostanie usunięty z sieci. Niestety mechanizm ten rzadko jest dostępny w komercyjnych zaporach ogniowych albo routerach. Według wiedzy autora możliwy jest do skonfigurowania tylko, gdy rolę routera pełni system Linux i do trasowania ruchu wykorzystywane jest oprogramowanie IPTables. Kolejny problem stanowi fakt, iż przedstawiona technika może zostać zastosowana w odwrotną stronę – przez użytkownika w sieci LAN. Może on wykorzystać pakiet IPTables do współdzielenia połączenia na nielegalnej bramie i tam raz jeszcze zmodyfikować TTL, tym razem dowolnie zwiększając jego wartość.

Pominięcie zapory z wykorzystaniem alternatywnej bramy w innej sieci

Jedną z ciekawych technik omijania zabezpieczeń stworzonych przez administratorów bezpieczeństwa jest wykorzystanie struktury sieci. Poniższa technika okazuje się skuteczna w przypadku, gdy firma składa się z więcej, niż jednego oddziału i użytkownik wykorzystuje słabości zabezpieczeń w innej lokalizacji.

Idea omijania zapory polega na przekierowaniu w komputerze lokalnym ruchu do internetu w taki sposób, aby wykorzystywał on inną bramę, niż domyślna. Innymi słowy, dostęp do internetu uzyskany zostaje za pośrednictwem bramki w innym oddziale. Jedynym wymaganiem jest znajomość adresacji sieci IP w innym z oddziałów.

Rys. 4.1.4a – Wykorzystanie alternatywnej bramy

Wykorzystanie owej techniki jest trywialne i ogranicza się tylko do modyfikacji lokalnej tablicy routingu w taki sposób, aby domyślny ruch do innych sieci, niż lokalna kierowany był na bramkę inną, niż macierzysta. W systemie Windows wykorzystuje się do tego polecenie route. Na początek należy usunąć obecną tablice tras, a następnie dodać nową.

Rys. 4.1.4b – Zmiana domyślnej bramy


System Microsoft Windows pokaże błąd przy dodawaniu bramy znajdującej się w innej sieci, niż lokalna. W celu obejścia tego problemu wystarczy zmienić maskę sieci na inną. Dla przykładu, komputer będący w sieci 192.168.0.0/24 z maską 255.255.255.0, którego domyślną bramą jest 192.168.0.1 nie pozwoli na ustawienie domyślnej bramki na 192.168.5.1. Dlatego należy zmienić maskę sieci na 255.255.0.0, aby nowa brama była w zakresie sieci lokalnej komputera.

Przedstawiony mechanizm można również z powodzeniem wykorzystać w przypadkach, gdzie ruch przechodzi przez bramę aplikacyjną proxy. Wymaga jedynie drobnej modyfikacji – zamiast zmieniać domyślną bramę IP, definiuje się inną domyślną bramkę proxy w ustawieniach przeglądarki www.

Mechanizm ochronny:

Nawet, jeśli administrator sieci lokalnej dołoży wszelkich starań, by uniemożliwić użytkownikom dostęp do internetu, użytkownik spróbuje uzyskać dostęp poprzez błędne konfiguracje bram w innych oddziałach. Zabezpieczenie przed tego typu sytuacjami można uzyskać poprzez:

Wykorzystanie łącz urządzeń biurowych

W miejscach pracy standardem wśród urządzeń biurowych stał się faks, który pełni rolę narzędzia, pozwalającego na wymianę dokumentów za pośrednictwem łącza telekomunikacyjnego. Dlatego musi być on podłączony do linii telefonicznej, najczęściej analogowej. Obecnie coraz więcej urządzeń podłączanych jest do linii telefonicznych, jak na przykład ksero, do którego serwis jest się w stanie zdalnie wdzwonić w celu zdiagnozowania ewentualnych problemów, naprawienia usterki, czy nawet sprawdzenia stanu materiałów eksploatacyjnych. Istnienie łącza telekomunikacyjnego w zasięgu użytkownika, może być przez niego wykorzystane w niecnych celach, między innymi do podłączenia się do zasobów internetu z pominięciem restrykcji, jakie zaprojektowali administratorzy bezpieczeństwa. W ten banalny sposób, użytkownik wykorzystując zwykły modem analogowy, jest w stanie pominąć zabezpieczenia zapory ogniowej i zupełnie ją pominąć, uzyskując dostęp do sieci publicznej.

Rys. 4.1.5 – Dostęp do zasobów sieci publicznej poprzez modem analogowy

Mechanizm ochronny:

Ze względów oczywistych, niezwykle trudnym zadaniem jest zabronienie użytkownikom tego, by nie manipulowali przy urządzeniach biurowych. Dlatego administrator ma do dyspozycji tylko dwie techniki, które uniemożliwią pracownikom wykorzystanie linii telefonicznej w niecnych celach:

Omijanie zapory poprzez hosty w strefie DMZ

Często spotykanym scenariuszem jest sytuacja, gdy nie wszyscy użytkownicy sieci LAN mają dostęp do zasobów Internetu, jednak każdy z nich może łączyć się z serwerami w strefie zdemilitaryzowanej (DMZ). Wynika to z faktu, że w strefie DMZ umiejscawia się często firmowe serwery poczty, DNS, czy WWW, z których użytkownicy muszą korzystać w celu wykonywania swojej codziennej pracy. Serwery natomiast, mają przeważnie możliwość komunikacji z Internetem, dlatego mogą stać się celem włamania z sieci wewnętrznej po to, by za ich pośrednictwem uzyskać dostęp do zasobów sieci publicznej.

Rys. 4.1.6 – Jeśli włamywacz nie ma możliwości połączeń do Internetu ze swojego komputera, włamuje się na serwer w sieci DMZ i z niego uzyskuje dostęp do zasobów publicznych.

Mechanizm ochronny:



komentarze

Copyright © 2008-2010 EPrace oraz autorzy prac.