Close
    logoMevspace Docs
    Polski

    Ataki DoS, DDoS, ich rodzaje i sposoby na ochronę przed nimi

    Reading time: 14 min

    Chyba każdemu użytkownikowi serwera dedykowanego, hostingu lub VPS choć raz zdarzyło się słyszeć o atakach DDoS , bądź nawet paść ich ofiarą. Atak ten ma spowodować przeciążenie serwerów i doprowadzić do tego, że przestaną odpowiadać.

    Czym są te ataki, na czym polegają i jak się przed nim chronić? Na te pytania odpowiemy w tym artykule.

    DoS (Denial of Service, czyli odmowa usługi) to atak, który ma wywołać awarię serwera. Może wykorzystywać jedną z niżej dostępnych metod i w przeciwieństwie do DDoS, może być wykonany przez pojedynczą maszynę.

    DDoS (Distributed Denial of Service, czyli rozproszona odmowa usługi) jest jego masową wersją, gdzie do ataku jest zaangażowanych wiele komputerów zamiast jednego. Najczęściej są wykorzystywane do ataku bez wiedzy ich użytkowników.

    Atakami wolumetrycznymi określa się takie ataki DDoS, które opierają się na wysłaniu do serwera ogromnej ilości zapytań. Skutkuje to wykorzystaniem zasobów maszyny, aż ta nie będzie w stanie odpowiadać na kolejne.

    Botnet (sieć botów) to sieć komputerów, do których wprowadzono szkodliwe oprogramowanie, niewykryte przez użytkownika. Takie komputery pozornie działają normalnie, jednak w tle wykonują zadania zlecone przez "włamywacza". Najczęściej są wykorzystywane do szkodliwych działań, podszywania się i atakó́w na serwery.

    Ataki DoS i DDoS mogą być symetryczne - tyle, ile pakietów wyśle atakujący, tyle otrzyma atakowany bądź asymetryczne (amplifikacyjne) - atakowany otrzymuje więcej danych, niż wysłał atakujący. Ten drugi rodzaj wykonywany jest z wykorzystaniem "pośredników", czyli innych serwerów, na przykład DNS. Zazwyczaj są to serwery niepoprawnie skonfigurowane bądź skompromitowane, tzn. takie, do których dostęp uzyskała nieupoważniona osoba trzecia.

    Do ataków DoS i DDoS często wykorzystywany jest spoofing IP, czyli podszycie się pod inny adres IP. Atakujący wysyła pakiety z IP swojej "ofiary", na które zostaną odesłane pakiety mające wywołać jej przeciążenie. Alternatywnie, IP spoofing może być wykorzystany do podszycia się pod cudze IP w celu uniknięcia wykrycia.

    Dzięki spoofingowi IP są możliwe ataki amplifikacyjne, w których atakujący podszywa się pod swoją ofiarę, podając jej adres.

    ataki dos i ddos 1

    Fig.1 - Warstwa modelu OSI i przykładowy atak

    Rodzaje ataków DoS i DDoS

    Ataki protokołowe / warstwy protokołów

    Atak protokołowy opiera się na wykorzystaniu słabości, bądź nadużyciu protokołów z trzeciej i czwartej warstwy modelu OSI. Trzecia warstwa modelu OSI to warstwa sieciowa, która umożliwia m.in. komunikację komputerom znajdującym się w oddzielnych sieciach - tutaj działa protokół IP adresujący i pakietujący dane. Czwarta warstwa to warstwa transportu, w której działają protokoły TCP i UDP celem transportu pakietów.

    Ping flood / ICMP flood

    ataki dos i ddos 2

    Fig.2 - Ping flood / ICMP flood

    Atak wolumetryczny trzeciej warstwy, w którym atakujący może samodzielnie bądź za pomocą botnetu masowo wysyłać żądania ECHO protokołu ICMP. Maszyna zajęta odpowiadaniem na nieustające pingi (małe pakiety, normalnie wykorzystywane do testu szybkości łącza i sprawności serwera) w pewnym momencie wykorzysta wszystkie zasoby i nie będzie w stanie obsłużyć normalnych operacji wykonywanych przez prawdziwych użytkowników.

    SYN flood i ACK flood

    ataki dos i ddos 3

    Fig.3 - Normalna komunikacja SYN-ACK

    ataki dos i ddos 4

    Fig.4 - SYN flood

    SYN flood i ACK flood są atakami warstwy czwartej - transportu. Polegają one na wysłaniu pakietów, które musi przetworzyć serwer.

    Pakiet SYN (skrót od Synchronise, synchronizacja) rozpoczyna komunikację według protokołu TCP/IP. Odbiorca odpowiada komendą SYN-ACK (ACK podchodzi od Acknowledgement, potwierdzenie), na co inicjator odpowiada samym ACK.

    SYN flood polega na zalaniu serwera pakietami SYN, które serwer musi przetworzyć i na które musi odpowiedzieć SYN-ACK. Atakujący najczęściej używa pakietów ze sfałszowanym, losowym adresem źródłowym i nie otrzymuje danych zwrotnych, podczas kiedy serwer przeznacza swoje zasoby na odpowiedzenie na SYN.

    Można także dokonać ataku wykorzystuj̨ąc pakiet ACK; sfałszowane pakiety tego rodzaju są praktycznie nierozróżnialne od prawdziwych, a także zużywają moc obliczeniową.

    SYN flood można porównać do zostawiania wiadomości "Cześć, słyszysz mnie?" na skrzynce telefonicznej; ACK flood w tym przypadku byłby wiadomością "Tak, odebrałam Twoją wiadomość". W analogii tej odbiorca oddzwania, zostawiając odpowiedzi, których adresat nigdy nawet nie odsłucha.

    Ataki SYN flood są od lat rozpoznanym problemem i istnieje wiele metod zwalczania ich, takich jak mechanizm SYN cookie, który w przypadku wykorzystaniu możliwości obsługi klientów przez serwer, odpowiada na żądania SYN pakietem SYN-ACK, zawierającym cookie, a następnie usuwa SYN z pamięci, zwalniając swoje zasoby. Jeśli komunikacja będzie kontynuowana, serwer wykorzysta dane cookie, aby odbudować informacje z pakietu SYN.

    W przypadku ACK natomiast metodą na zabezpieczenie przed nim serwera jest zablokowanie pakietów ACK, które nie są powiązane z żadną obecnie trwającą komunikacją TCP/IP.

    Ataki amplifikacyjne

    ataki dos i ddos 5

    Fig.5 - Schemat ataku amplifikacyjnego

    Ataki amplifikacyjne wykorzystują protokół UDP, działający w warstwie transportowej. 
W przeciwieństwie do TCP nie wymaga obustronnego potwierdzenia kontaktu (dane mogą być wysłane bez zgody adresata). W czasie ataku, atakujący kontaktuje się z serwerem, prosząc o wysłanie ogromnych ilości informacji, a jako adres zwrotny podaje adres IP ofiary (najczęściej za pomocą IP spoofingu). W odpowiedzi serwer wysyła dane na wskazany adres IP bez potwierdzenia chęci otrzymania ich.

    Jako analogię można podać zapytanie "wyślij mi adresy wszystkich osób mieszkających w Polsce". Pytanie to samo w sobie jest krótkie, ale odpowiedź będzie znacznie większa.

    Do ataków amplifikacyjnych są wykorzystywane między innymi serwery DNS (Domain Name System, system nazw domen), które porównać można do punktów informacyjnych Internetu - informują, jakim domenom odpowiadają jakie adresy IP. Inną metodą na wykonanie tego ataku jest użycie protokołu NTP (Network Time Protocol, protokół czasu sieci), który służy do dokładnej synchronizacji czasowej pomiędzy komputerami. Wykorzystywana tu jest komenda monlist, którą mogą wyłączyć administratorzy serwerów, tym samym uniemożliwiając wykorzystywanie ich do ataków tego rodzaju.

    Bardzo efektywnym atakiem jest wykorzystanie serwerów memcached (memcache - buforowanie pamięci, które umożliwia szybsze ładowanie stron). W tym przypadku z ruchu 1 Mbps można zrobić atak wynoszący od 10 do nawet 51 Gbps.

    Ataki aplikacyjne / warstwy aplikacji

    Ten rodzaj ataku wykorzystuje słabości w oprogramowaniu, czyli najwyższych (szóstej i siódmej) warstwach modelu sieci. Polega na między innymi wywołaniu błędów oprogramowania czy też wstrzykiwaniu złośliwego kodu.

    Low and slow / R.U.D.Y.

    R.U.D.Y. (z angielskiego - R U Dead yet, slangowo "czy już nie żyjesz"), zwany także low and slow, jest atakiem odbywającym się w warstwie aplikacji. Polega na znalezieniu na stronie formularzy i wysłaniu na nich odpowiedzi - podzielonych na wiele bardzo małych pakietów, wysyłanych w sporych odstępach czasu (ale nie na tyle dużych, aby przekroczyć czas oczekiwania), co sprawia, że serwer czekując na odpowiedź zużywa swoje zasoby.

    Z racji na specyfikę tego ataku, jest on dość trudny do wykrycia - nie tworzy on masowego ruchu. Metodami na ochronę przed nim może być zmniejszenie czasu oczekiwania, co jednak może pozbawić dostępu autentycznych użytkowników z wolnym Internetem bądź odrzucanie niepełnych żądań HTTP.

    Slowloris

    Slowloris, nazwany tak po kukangu (z ang. slow loris), powolnym, azjatyckim ssaku, przypomina atak R.U.D.Y., jednak w przeciwieństwie do niego nie wysyła pakietów HTTP POST, a jedynie nagłówki HTTP. Jednak tak jak slow and low, może on spowodować zajęcie zasobów serwera i utrudnienie bądź uniemożliwienie mu obsługi pozostałych użytkowników.

    Fork bomb

    Fork bomb polega na zaimplementowaniu skryptu, który powoduje wykonanie kolejnych skryptów, które także wywołają kolejne, i tak dalej - innymi słowy, niekończącej się pętli. Kolejne wywoływane skrypty zużywają zasoby komputera, a tym samym mogą mu uniemożliwić obsługę użytkowników.

    Sposobem na zabezpieczenie przed fork bomb jest na przykład ograniczenie liczby procesów, które może posiadać użytkownik bądź zasobów, które jeden proces może wykorzystywać.

    SSL abuse / nadużycie SSL

    Ten atak odbywa się w szóstej warstwie modelu OSI - warstwie sesji - i wykorzystuje protokół SSL. Atakujący wykorzystuje "handshake SSL" (nawiązanie komunikacji) poprzez zalanie serwera fałszywymi żądaniami bądź nadużyciem protokołu samego w sobie. Inną metodą jest ciągłe renegocjowanie połą̨czenia bądź, jeśli nie jest to możliwe, kończenie go w momencie potwierdzenia i otwieranie od nowa.

    Wykorzystanie SSL pochłania moc obliczeniową procesora, a także entropię, czyli zbiór przypadkowych danych wykorzystywanych między innymi do nawiązywania połączeń SSL. Wyczerpanie entropii sprawia, że kolejne połączenia SSL muszą poczekać aż pojawi się jej zapas.

    HTTP flood

    ataki dos i ddos 6

    Fig.6 - Schemat ataku HTTP flood

    Ten atak wolumetryczny obywa się w warstwie siódmej, wykorzystywany jest z użyciem botnetu. Polega on na zalaniu serwera komendami HTTP - GET oraz POST, co powoduje zużycie zasobów serwera. Ataki tego rodzaju nie używają sfałszowanych pakietów czy też metod amplifikacyjnych, generują także niższy ruch sieciowy, dlatego też do obrony przed nimi potrzebne jest ich dokładniejsze zrozumienie.

    Historyczne: Ping of death / Ping śmierci

    To już historyczna i niewykonywalna dzisiaj metoda ataku DoS. Atakujący wysyłał serwerowi ping w pakiecie większym niż 65 635 (2 do potęgi 16 minus 1). To właśnie ten rozmiar jest maksymalnym jaki może obsłużyć protokół IPv4. Wysłać taki pakiet można było za pomocą starszych systemów Windows (3.1, 95, NT) oraz Novel Netware, gdzie luka w oprogramowaniu umożliwiała wysłanie pakietu o rozmiarze 65 538 bajtów. Mogło to spowodować zawieszenie się atakowanego komputera bądź działających na nim aplikacji. Współczesne oprogramowanie jest odporne na ten rodzaj ataku.

    To tylko część z istniejących ataków DoS i DDoS. Dziennie wykonywanych jest koło 30 000 takich ataków, za pomocą kilkunastu milionów zainfekowanych maszyn. Wartości te zwiększają się wraz z rozwojem sieci, tak samo jak wzrasta liczba różnych ataków DDoS.

    Metody obrony przed DDoS

    Filtrowanie pakietów przychodzących

    Jedną ze stosowanych powszechnie metod jest odfiltrowywanie pakietów przychodzących, na przykład tylko do tych, które są wysyłane w ramach trwającej komunikacji protokołem TCP/IP. Przed niektórymi rodzajami floodów (np. HTTP) można bronić się poprzez uwierzytelnianie klienta, na przykład za pomocą oprogramowania Captcha.

    Reverse proxy

    ataki dos i ddos 7

    Fig.7 - Schemat Reverse proxy

    Reverse proxy polega na przygotowaniu serwerów proxy, które będą przyjmować ruch przychodzący, a następnie filtrować, dzięki czemu tylko prawdziwe zapytania zostaną przekazane do serwerów.

    Przewymiarowanie infrastruktury

    Jedną z metod ochrony przed DDoS jest także przewymiarowanie infrastruktury. Wyposażona w nadmiarowe zasoby będzie w stanie obsłużyć więcej żądań. Infrastrukturę można także wesprzeć poprzez zainstalowanie chroniących modułów sprzętowych i oprogramowania. Odpowiednia konfiguracja serwerów , jak na przykład implementacja rozwiązań firewall czy Captcha, także zwiększają odporność systemu na ataki DDoS.

    Blackholing

    Blackholing jest stosowany jako "ostatnia deska ratunku" do obrony przed atakami wolumetrycznymi. Ignoruje on przychodzące żądania, wysyłając je "donikąd" (do "czarnej dziury", jak nazwa wskazuje nazwa), pozostawiając je bez odpowiedzi. Jego działanie najczęściej całkowicie odcina serwer od połączenia z siecią, aczkolwiek odpowiednio skonfigurowany może odciąć dostęp określonych kontynentów bądź państw.

    Historia ataków DDoS

    Pierwsze ataki DDoS miały miejsce na przełomie czerwca i lipca 1999 roku. Najlepiej opisanym jest atak na komputer należący do University of Minnesota, do którego wykorzystano 114 maszyn zainfekowanym za pomocą oprogramowania tainoo.

    Pierwszym "medialnym" atakiem był ten wykonany w lutym 2000 roku, w którym 15-letni Kanadyjczyk posługujący się pseudonimem mafiaboy zaatakował serwery wielu popularnych usług, takich jak Amazon, eBay czy Yahoo! (który był wtedy najpopularniejszą wyszukiwarką), także za pomocą tainoo.

    Ciekawostką dotyczącą tego złośliwego programu jest fakt, że atakujący mógł w folderze cry_baby zostawiać wiadomości do użytkownika zainfekowanego komputera.

    Ciekawostka: Największy atak DDoS

    Obecnie za największy atak uważa się zgłoszony przez Amazon Web Services atak z lutego 2020, kiedy ruch przychodzący wynosił 2,3 Tbps (czyli 2 300 Gbps).

    Blackholing poza kontrolą̨, czyli blokada YouTube przez Pakistan

    Dość ciekawym przypadkiem luki w zabezpieczeniach jest ogólnoświatowe zablokowanie serwisu YouTube przez Pakistan w lutym 2008 roku.

    Ministerstwo Komunikacji tego państwa nakazało dostawcom sieci tam działającym uniemożliwić dostęp do YouTube. Dostawcy w odpowiedzi zaczęli blackholować wszystkie żądania dostępu do tej platformy. Pakistan Telecom przesłał także "ostrzeżenie" przed YouTube dalej, do swojego dostawcy sieci z Hong-Kongu, który nie odflitrował go. W efekcie wszyscy dostawcy na świecie otrzymawszy informację od pakistańskiego ISP zaczęli blackholować próby dostępu do tej strony, przez co YouTube był niedostępny przez dwie godziny na całym świecie.

    Ochrona Anty DDoS w Skynode

    Skynode oferuje obronę przed atakami wolumetrycznymi. W ochronie przeciw DDoS korzystamy z wyposażenia Juniper i oprogramowania Wanguard. W momencie przekroczenia posiadanego pakietu ochrony, Skynode korzysta z metody blackholingu, która na czas ataku odcina dostęp serwera do Internetu.

    Serwery dedykowane standardowo mają ochronę wynoszącą do 2 Gbps; za dodatkową opłatą oferujemy wyższy limit ochrony.

    Previous
    Artykuły
    Next
    Co to jest Protokół BGP i jak działa?