« poprzedni punkt  następny punkt »


3. Ataki poprzez zalew pakietów

Przedstawione ataki bazują na błędach w oprogramowaniu i nie generują wzmożonego ruchu w sieci. Druga grupa ataków DoS wykorzystuje efekt skali zalewając zaatakowaną maszynę bardzo dużą liczbą pakietów. Do ataku może posłużyć dowolny protokół stosowany w Internecie. Na odpowiednio dużą skalę są to ataki bardzo skuteczne o czym mogą świadczyć udane ataki na popularne witryny internetowe. Cechą szczególną tego typu ataków jest istnienie trzech stron: atakującego oraz dwóch ofiar: celu ataku oraz maszyny bądź maszyn generujących ruch (reflector). Cel ataku prawie nigdy nie zna prawdziwego źródła ataku, gdyż zalewany jest pakietami pochodzącymi od drugiej ofiary ataku, która może być niczego nieświadoma. Dopiero współpraca ofiar może pozwolić na zlokalizowanie źródła. Poszczególne ataki różnią się sposobem generowania ruchu. Mimo iż istnieje bardzo dużo możliwości przeprowadzenia tego typu ataku wszystkie one mają wspólne elementy.

Zalew UDP (UDP Flooding)

UDP Flooding wymaga najczęściej dwóch maszyn, które są atakowane. Polega on na stworzeniu pętli pomiędzy nimi. Aby atak był skuteczny komputery te musza posiadać uruchomione usługi odpowiadające na datagramy UDP. Najczęściej wykorzystywanymi usługami są echo oraz chargen (character generator protocol). Chargen jest usługą, która na każdy otrzymany pakiet wysyła pakiet. Pętlę inicjuje się poprzez wysłanie do maszyny udostępniającej usługę chargen, pakietu ze sfałszowanym adresem nadawcy wskazującym na serwis echo innego (lub tego samego) komputera. Chargen zgodnie ze swoją funkcją odpowie pakietem, co z kolei zobliguje serwis echo do wysłania kolejnego pakietu. Jeśli usługi echo oraz chargen uruchomione są na jednym komputerze to pętlą taką można objąć tą konkretną maszynę. Jeśli jednak w ataku biorą u dział dwa komputery, to poza ich zablokowaniem w sieci tworzy się burza kolizyjna, która czyni sieć bezużyteczną na pewien czas.

Bronić się przed tym atakiem można wiele sposobów. Najprostszy polega na wyłączeniu zbędnych usług (zwłaszcza chargen). Można również spowodować aby chargen nie odpowiadał na pakiety wysłane z portów niższych niż 1024, które to są zarezerwowane dla usług systemowych.

Zalew SYN (SYN Flooding)

Atak ten ma na celu wyczerpanie zasobów serwera poprzez zainicjowanie bardzo wielu połączeń TCP. Kiedy maszyna otrzymuje pakiet z zapaloną flagą SYN na otwartym porcie , to stos TCP/IP alokuje pamięć dla nowego połączenia wysyłając jednocześnie pakiet SYN/ACK. Jeśli inicjujący pakiet SYN został wysłany ze sfałszowanym adresem źródła to odpowiedź na pakiet SYN/ACK nie nadejdzie lub będzie to pakiet RST (jeśli sfałszowany adres źródła jest używany). Aby atak był skuteczny inicjujące pakiety SYN muszą nadchodzić szybciej niż zaatakowany system potrafi je przetworzyć. Atak SYN Flood można wykryć na szereg sposobów. Na zaatakowanej maszynie można skorzystać z programu netstat, tak jak to pokazano na rys. 3. Na rys. 4 przedstawiono obraz ruchu sieciowego w czasie ataku SYN Flooding.

Rys. 3. Raport programu netstat, w czasie ataku SYN Flooding

Rys. 4. Obraz ruchu sieciowego w czasie ataku SYN Flooding

Systemy IDS również zwykle wykrywają tego typu zdarzenia w sieci. Niektóre systemy operacyjne (np.: FreeBSD od wersji 4.5) posiadają specjalne mechanizmy wbudowane w stos TCP/IP zwane SYN cookies oraz SYN cache. Mają one na celu zwiększenie odporności systemu na atak SYN Flooding. Brytyjski The Register opublikował w sierpniu 2001 roku artykuł, w którym przedstawiono test odporności zapór ogniowych na ataki SYN flood. Niezabezpieczona maszyna z Linuxem RedHat 7.1 przestawała być użyteczna przy natężeniu 100 pakietów SYN na sekundę. Obecność zapory ogniowej Cisco PIX Firewall nie zmieniła tych wyników. Checkpoit Firewall-1 z modułem SYNDefender był w stanie zmierzyć się ze strumieniem 500 pakietów SYN/sek. Zapora Netscreen-100 radziła sobie przy 14.000 pakietów na sekundę.

Land

Atak land jest odmianą SYN Flooding. Różnica polega na tym, że zarówno adres nadawcy jak i źródła ustawiany jest na adres atakowanego komputera. Tworzy to pętle, w którą wpada zaatakowany system próbujący sam sobie odpowiadać na otrzymane pakiety. Atak ten jest wychwytywany przez zapory ogniowe oraz przez same systemy operacyjne i nie stanowi obecnie realnego zagrożenia.

Smurf

Atak ten wykorzystuje niedopatrzenie w specyfikacji protokołu ICMP. Jedną z częściej wykorzystywanych funkcji jest żądanie echa: ICMP echo request sprawdzające istnienie komputera o określonym adresie w sieci. Komputer, który otrzyma taki pakiet zgodnie ze specyfikacja zobowiązany jest odesłać pakiet ICMP echo replay. Jeśli komputer nie jest dostępny, to informujący o tym datagram ICMP generowany jest przez router. Specyfikacja ICMP określa pożądaną reakcje systemu na otrzymany datagram ICMP Echo Request następująco:

"Adres nadawcy w komunikacie z żądaniem echa będzie adresem odbiorcy w odpowiedzi. Aby zbudować komunikat z odpowiedzią należy zamienić miejscami adres nadawcy i odbiorcy, zmienić typ komunikatu na "odpowiedź i obliczyć na nowo sumę kontrolną"".

Sytuację taką można łatwo wykorzystać wysyłając pakiet ICMP żądania echa ze sfałszowanym adresem źródła na adres rozgłoszeniowy sieci. Pakiet ten zostanie przetworzony przez wszystkie komputery, które odeślą odpowiedź do nadawcy pakietu. Przy odpowiednio dużej sieci może to spowodować:

  1. duży ruch, często kończący się sztormem kolizyjnym i chwilowym spadkiem wydajności sieci
  2. komputer ofiary, który został mimowolnym nadawcą żądania echa zalany zostanie pakietami potwierdzenia, co może doprowadzić do jego zablokowania

Atak ten ma duże szanse powodzenia w sieciach lokalnych, rzadziej gdy jego źródło znajduje się na zewnątrz sieci. Routery brzegowe są z reguły skonfigurowane tak, by nie przepuszczać pakietów z adresem rozgłoszeniowym do wnętrza sieci. Aby uniknąć tej sytuacji już w 1989 roku w dokumencie RFC 1122 dopuszczono możliwość, by żądania ICMP wysyłane na adres typu broadcast lub multicast były ignorowane.

Fraggle

Atak fraggle, jest bardzo podobny do ataku typu smurf, różni się tylko protokołem. Zamiast ICMP, wykorzystuje protokół UDP oraz typowo udostępnione usługi takie jak echo czy chargen. Aby wywołać burzę UDP, można wysłać sfałszowany pakiet UDP na port usługi charge z rozgłoszeniowym adresem zwrotnym. Innym sposobem jest wywołanie zapętlenia między usługami charge i echo, co skutkuje szybkim pomnażaniem wysyłanych pakietów.


« poprzedni punkt  następny punkt »