Czym jest atak DDoS?

Opublikowano Zaktualizowano 4 min czytania

Jak przebiega atak DDoS, jakie są jego rodzaje i dlaczego obrona musi działać w sieci przed serwerem. Z realnymi przypadkami ataków odpartych w praktyce.

Atak DDoS (Distributed Denial of Service) zalewa serwer, stronę internetową albo całą sieć taką liczbą zapytań, że prawdziwi użytkownicy nie mają już szans się połączyć. Atak nazywa się rozproszonym dlatego, że nie pochodzi z jednego komputera, tylko uderza w cel jednocześnie z setek, a czasem i setek tysięcy przejętych urządzeń, czyli z tak zwanego botnetu.

Jak przebiega atak DDoS

Wszystko zaczyna się od botnetu. Atakujący infekują cudze komputery, routery, kamery albo słabo zabezpieczone serwery złośliwym oprogramowaniem, a potem sterują nimi zdalnie z jednego miejsca. Właściciele zwykle niczego nie zauważają. Na sygnał wszystkie te urządzenia wysyłają w tej samej chwili zapytania do tego samego celu.

Skutek pojawia się w najsłabszym punkcie: albo zatyka się łącze, albo procesor i pamięć RAM atakowanego systemu są zajęte odpowiadaniem na zapytania. W obu przypadkach usługa przestaje być osiągalna dla prawdziwych użytkowników. Właśnie dlatego reguły firewalla na samym serwerze często reagują za późno: zaczynają działać dopiero wtedy, gdy pakiety dawno przeszły już przez łącze.

Typowe rodzaje ataków

  • Ataki wolumetryczne: floody UDP i podobne wzorce, które po prostu wysycają pasmo. Mierzy się je w Gbit/s.
  • Ataki protokołowe: floody SYN i state exhaustion, które zapełniają tablice połączeń serwerów, firewalli i load balancerów. Mierzy się je w pakietach na sekundę.
  • Ataki na warstwę aplikacji (Layer 7): floody HTTP, kosztowne zapytania wyszukiwania, floody logowania. Potrzebują niewiele pasma i wyglądają bardzo podobnie do prawdziwego ruchu.
  • Exploity specyficzne dla gier: Nullping, QuietException albo floody fałszywych handshake'ów wymierzone w serwery gier, które nadużywają samego nawiązywania połączenia zamiast zapychać łącze.

Czym jest atak amplifikacyjny?

Przy ataku amplifikacyjnym (wzmacniającym) atakujący wykorzystuje cudze, publicznie dostępne usługi jako wzmacniacz. Wysyła małe zapytania do otwartych serwerów DNS, NTP albo Memcached i wpisuje w nie adres IP ofiary jako nadawcę. Odpowiedzi są wielokrotnie większe od zapytań i wszystkie trafiają do ofiary.

Z kilku megabitów ruchu ataku robi się w ten sposób błyskawicznie kilkaset gigabitów. Dla atakującego jest to tanie, dla celu druzgocące, a prawdziwy nadawca pozostaje ukryty.

Dlaczego podrobione adresy IP działają tak skutecznie?

Przy IP spoofingu atakujący wpisuje w pakiety fałszywy adres nadawcy. Ma to dwa skutki. Po pierwsze, źródła nie da się już po prostu zablokować, bo każde zapytanie wygląda tak, jakby przychodziło z innego, wymyślonego adresu. Po drugie, spoofing jest warunkiem koniecznym ataków amplifikacyjnych, bo bez niego odpowiedzi nadużywanych usług w ogóle nie lądowałyby u ofiary.

Przeciwko sfałszowanemu ruchowi listy blokad nic nie dają. Potrzebne jest filtrowanie, które ocenia zachowanie ruchu sieciowego i odrzuca podrobione pakiety, zanim dotrą do celu.

Dlaczego atakowany jest akurat mój serwer?

Motywy rzadko są techniczne. W praktyce widzimy przede wszystkim takie schematy:

  • Konkurencja: inna sieć gamingowa, inny sklep albo inny serwer Discord chce przejąć twoich użytkowników.
  • Zemsta: zbanowany gracz, zwolniony pracownik albo niezadowolony klient.
  • Szantaż: krótki atak jako ostrzeżenie, połączony z żądaniem okupu.
  • Wandalizm: usługi ataku na zamówienie kosztują kilka euro, więc próg zahamowań jest odpowiednio niski.

Dla obrony motyw nie ma znaczenia. Liczy się to, żeby ochrona działała stale i żeby nie trzeba było jej dokupywać ani włączać dopiero wtedy, gdy atak już trwa.

Co naprawdę pomaga przeciwko atakom DDoS?

Skuteczna ochrona działa w sieci przed serwerem, a nie na samym serwerze. KernelHost prowadzi w tym celu stałą, dwuwarstwową ochronę: globalna pojemność filtrowania wynosi 17 Tbps i przechwytuje ataki wolumetryczne blisko ich źródła. Bezpośrednio przed serwerem we Frankfurcie nad Menem pracuje filtrowanie Arbor w czasie rzeczywistym o wydajności 3,2 Tbps, które pakiet po pakiecie usuwa złożone wzorce specyficzne dla poszczególnych protokołów.

Ważny szczegół: nie stosujemy null-routingu. Przy null-routingu atakowany adres IP zostałby całkowicie wyjęty z sieci, serwer byłby offline, a atakujący osiągnąłby swój cel. Zamiast tego adres IP pozostaje osiągalny i odpadają wyłącznie szkodliwe pakiety. Ochrona jest zawarta w każdym pakiecie serwerowym: taryfy standardowe podają 3,2 Tbps, taryfy Professional 17 Tbps.

Uzupełniająco nadal warto zadbać o monitoring, aktualne oprogramowanie, oszczędnie otwierane porty i limity zapytań w samej aplikacji. Przegląd krok po kroku znajdziesz we wpisie Jak chronić serwer przed atakami DDoS. Jak wygląda to konkretnie przy serwerach gier i serwerach głosowych, pokazuje wpis Ochrona DDoS serwerów gier w czasie rzeczywistym.

Przypadki z praktyki: realnie odparte ataki

Poniższe ataki uderzyły w serwery klientów KernelHost i zostały w całości odfiltrowane w czasie rzeczywistym, za każdym razem bez awarii. Zrzuty ekranu pochodzą z monitoringu mitygacji na żywo.

Serwer głosowy TeamSpeak 3, port 9987 UDP

Złożony atak z kilkoma równoczesnymi wzorcami ataku, ponad 473,4 Gbit/s i ponad 41,5 miliona pakietów na sekundę. Odfiltrowany w czasie rzeczywistym, bez przestoju.

Ochrona DDoS KernelHost: serwer głosowy TeamSpeak na porcie 9987 UDP, ponad 473 Gbit/s odfiltrowane w czasie rzeczywistym

Serwer gry ARK, port 7777 UDP

Prosty flood UDP bez złożonej struktury, za to ponad 112,2 Gbit/s i ponad 8,7 miliona pakietów na sekundę. Odfiltrowany w czasie rzeczywistym, bez przestoju.

Ochrona DDoS KernelHost: serwer gry ARK na porcie 7777 UDP, flood UDP ponad 112 Gbit/s odfiltrowany w czasie rzeczywistym

Atak na wszystkie porty, porty 0-65535 TCP/UDP

Ponad 12 różnych głównych wzorców ataku wymierzonych jednocześnie we wszystkie porty, łącznie ponad 21,3 Gbit/s i ponad 3,9 miliona pakietów na sekundę. W całości odfiltrowane w czasie rzeczywistym.

Ochrona DDoS KernelHost: złożony atak na wszystkie porty od 0 do 65535 odfiltrowany w czasie rzeczywistym

Minecraft i OpenVPN, porty 25565 TCP oraz 1194 UDP

Połączony atak z ponad 16 różnymi głównymi wzorcami ataku, ponad 4 milionami pakietów na sekundę i ponad 8,6 Gbit/s. Obie usługi pozostały osiągalne przez cały czas.

Ochrona DDoS KernelHost: serwer Minecraft na porcie 25565 TCP i OpenVPN na 1194 UDP odfiltrowane w czasie rzeczywistym

Najczęstsze pytania

Co dokładnie oznacza DDoS?
DDoS to skrót od Distributed Denial of Service. Wiele przejętych urządzeń wysyła jednocześnie zapytania do jednego celu, aż łącze albo zasoby serwera zostaną wysycone i prawdziwi użytkownicy przestaną się przebijać.
Czym różni się atak DoS od DDoS?
Atak DoS pochodzi z jednego źródła i stosunkowo łatwo go zablokować. Atak DDoS rozkłada się jednocześnie na wiele źródeł, więc zwykłe blokowanie adresów przestaje wystarczać.
Czym jest atak amplifikacyjny?
Atakujący wysyła małe zapytania z podrobionym adresem nadawcy do otwartych usług takich jak DNS czy NTP. Ich znacznie większe odpowiedzi trafiają do ofiary, więc z niewielkiego ruchu ataku robi się bardzo duży.
Dlaczego firewall na serwerze nie wystarcza?
Zaczyna działać dopiero wtedy, gdy pakiety już przeszły przez łącze. Kiedy łącze jest wysycone, żadna lokalna reguła nic nie da. Filtrować trzeba w sieci przed serwerem.
Dlaczego atakowany jest akurat mój serwer?
Najczęściej z powodu konkurencji, zemsty, szantażu albo zwykłego wandalizmu. Usługi ataku na zamówienie kosztują kilka euro, dlatego obrywają też małe projekty.

Atak DDoS Czym jest DDoS Botnet Atak amplifikacyjny IP spoofing Ochrona DDoS Atak Layer 7