Jak to działa

Jak działa ochrona DDoS, etap po etapie

Większość wyjaśnień kończy się na "filtrujemy zły ruch", co nie wyjaśnia niczego. Oto więc jedna fala prześledzona do samego końca: 7 Tb/s przychodzące z internetu, 400 Mb/s prawdziwych graczy docierających do serwera i każdy etap pomiędzy — z tym, co usuwa, i dlaczego nic innego nie mogłoby tego usunąć.

Cloudflare Spectrum
Twój serwer

Dlaczego jeden etap nigdy nie wystarczy

Każdy etap ochrony DDoS jest na coś ślepy. Sieć wystarczająco duża, by połknąć falę 7 Tb/s, mierzy bity na sekundę — nie ma pojęcia, czym jest handshake Minecrafta. Filtr, który czyta protokół Minecrafta bezbłędnie, jest bezużyteczny, jeśli fala zapełniła twoje łącze, zanim zdążył zadziałać. Te dwa tryby awarii są przeciwstawne i dlatego prawdziwa ochrona jest sekwencją, a nie produktem: każda warstwa usuwa to, czego następna nie widzi, i przekazuje resztę dalej.

Poniższy diagram to właśnie ta sekwencja, z jednym atakiem przepchniętym przez nią od początku do końca — w skali największego ataku wolumetrycznego, jaki ta sieć faktycznie zmitygowała.

Jeden atak, sześć etapów

Atak o sile 7 Tb/s prześledzony od internetu aż po backend Minecraft. Każdy etap usuwa to, czego kolejny nie jest w stanie zobaczyć.

Rozmiar ataku7Tbps
10 Gbps7 Tbps
Rodzaj ataku
GraczeAtak
  1. Absorpcja anycast

    Cloudflare Spectrum

    7Tbps
    przychodzący
    6.6 Tbps · 94%

    Surowa fala trafia na sieć anycast Cloudflare i zostaje rozłożona na ponad 330 miast. Wolumetryczne śmieci L3/L4 — reflection, amplification, sfałszowany UDP — giną tutaj, w sieci o publikowanej przepustowości ponad 500 Tb/s.

  2. Mitygacja L4

    Papyrus · AS216013

    600 Gbps

    400Gbps
    przychodzący
    202 Gbps · 51%

    To, co przetrwa, to TCP, które przynajmniej wygląda, jakby chciało nawiązać połączenie. Filtrowanie SYN na poziomie jądra i limity tempa na źródło odrzucają fale połączeń, zanim dotrą do przestrzeni użytkownika.

  3. Mitygacja L7

    Papyrus · AS216013

    198Gbps
    przychodzący
    170 Gbps · 86%

    Połączenia, które kończą handshake, ale nigdy nie mówią poprawnym Minecraftem — skanery, generyczne fale L7, zniekształcony protokół — są odrzucane, gdy tylko ładunek nie da się sparsować.

  4. Antybot świadomy protokołu

    Cryo

    28Gbps
    przychodzący
    27 Gbps · 96%

    Teraz wszystko, co zostało, mówi płynnie po Minecraftowemu. Cryo parsuje sam handshake: nazwa hosta, wersja protokołu, tempo wejść, ASN pochodzenia i historia składają się na werdykt. Auto-UAM zacieśnia limity w miarę narastania fali.

  5. Tor weryfikacyjny

    CryoLimbo

    1Gbps
    przychodzący
    646 Mbps · 62%

    Pozostałość to boty omijające — klienty pisane specjalnie po to, by wyglądać dla antybota jak człowiek. Są przekierowywane do limbo i muszą to udowodnić testami fizyki i zachowania. Prawdziwi gracze złapani tutaj przechodzą dalej.

  6. Czysty ruch

    Twój serwer

    400Mbps
    dociera

    To, co dociera, to gracze. Prawdziwe adresy IP klientów są dostarczane przez protokół PROXY, więc bany i wtyczki działające na IP zachowują się dokładnie tak, jak przy połączeniu bezpośrednim. Origin nigdy nie zobaczył pozostałych 6,99 Tb/s.

Model interaktywny, a nie zmierzony ruch: każda liczba wynika z dwóch przełączników powyżej. Ruch graczy pozostaje stały — liczba prawdziwych osób próbujących dołączyć nie zmienia się wraz z rozmiarem fali — a każdemu węzłowi przypisywany jest wyłącznie ruch, który sam odrzucił, nigdy praca węzła poprzedniego. Scenariusz domyślny odpowiada największemu atakowi wolumetrycznemu, jaki ta sieć zmitygowała.
01

Etap 1 — Absorpcja, gdzie objętość przestaje być problemem

Pierwsze pytanie przy każdym ataku to arytmetyka, nie bezpieczeństwo: czy rura jest większa niż fala? Jeśli 7 Tb/s dociera do łącza 10 Gb/s, łącze jest pełne, a wszystko za nim jest offline — serwer, jego firewall i każda uruchomiona wtyczka są po złej stronie już zablokowanej drogi. Nic, co skonfigurujesz na maszynie, tego nie zmieni.

To cały powód, dla którego absorpcja musi odbywać się w sieci o większej przepustowości, niż atakujący jest w stanie wygenerować. Ruch wchodzi przez sieć anycast Cloudflare Spectrum, gdzie pojedyncza fala zostaje rozdzielona na ponad 330 miast i pochłonięta przez sieć o publikowanej przepustowości ponad 500 Tb/s. Pod względem objętości ta warstwa wykonuje niemal całą pracę — 94 % fali w przykładzie — a pod względem użyteczności najmniej interesującą część: usuwa ruch, który nigdy nie udawał niczego innego.

02

Etap 2 — Mitygacja L4, połączenia bez treści

To, co przetrwa absorpcję, to ruch, który przynajmniej chce otworzyć połączenie. To poziom fal SYN: ogromne liczby prób połączenia, często sfałszowanych, zaprojektowanych po to, by wyczerpać stan śledzenia połączeń, a nie pasmo. Filtrowanie odbywa się w jądrze w naszej własnej sieci (AS216013), zanim cokolwiek dotrze do przestrzeni użytkownika, z limitami tempa na źródło i budżetami połączeń.

Warstwa 4 wie, że połączenie przyszło. Nie wie, co to połączenie powiedziało — nie odróżni gracza od bota, bo na tej warstwie żaden z nich jeszcze nic nie powiedział. Wszystko, co ją minie, to wyglądające legalnie połączenie TCP, a od tego momentu pytania przestają dotyczyć objętości.

03

Etap 3 — Mitygacja L7: czy to w ogóle jest gra?

Teraz ruch zostaje odczytany. Duża część tego, co kończy handshake, w ogóle nie mówi po Minecraftowemu: skanery obejmujące cały internet, generyczne fale HTTP wymierzone we wszystko, co odpowie, i zniekształcone śmieci liczące na to, że coś się wysypie. Nic z tego nie przetrwa kontaktu z parserem, który oczekuje protokołu Minecrafta, a dostaje coś innego.

To pierwsza warstwa, z którą generyczne urządzenie do "ochrony gier" ma problem, bo wymaga faktycznej implementacji protokołu, a nie dopasowywania kształtów pakietów. To także moment, w którym objętość spada na tyle, że pozostały ruch jest naprawdę groźny — wszystko za tym punktem mówi językiem twojej gry.

04

Etap 4 — Antybot świadomy protokołu, etap, który ma znaczenie

Wszystko, co wciąż się porusza, mówi teraz płynnie po Minecraftowemu: poprawne handshake'i, wiarygodne nazwy użytkowników, prawidłowe wersje protokołu, napływające z tysięcy adresów domowych i z centrów danych. To jest atak, który naprawdę zabija serwery Minecrafta, i jest niewidoczny dla każdej wcześniejszej warstwy — każde połączenie z osobna jest nie do odróżnienia od prawdziwego gracza wchodzącego na serwer.

  • Świadomość nazwy hosta — połączenie proszące o nazwę hosta, której nie obsługujesz, nie jest graczem, który zrobił literówkę, i zostaje odrzucone, zanim cokolwiek innego się uruchomi.
  • Limity tempa wejść z auto-UAM — budżety na IP i globalne, które zacieśniają się automatycznie, gdy rośnie łączne tempo pingów i logowań, więc reakcja skaluje się wraz z atakiem, zamiast być konfigurowana z góry.
  • Punktacja ryzyka — kraj pochodzenia, ASN, zakres centrum danych, zachowanie protokołu i wcześniejsza historia składają się na werdykt, zanim wejście dostanie zgodę na kontynuację.
  • Obsługa pingów i MOTD — fale zapytań o status są obsługiwane z cache'u na edge, zamiast trafiać do twojego serwera, który musiałby odpowiadać kilka tysięcy razy na sekundę.

W przykładzie ta warstwa usuwa 96 % tego, co do niej dociera — 26 Gb/s ruchu, który w przeciwnym razie trafiłby na backend jako pozornie prawdziwe próby wejścia. To ten sam silnik opisany szczegółowo w jak Cryo mityguje atak.

05

Etap 5 — Weryfikacja, dla botów zbudowanych po to, by przejść etap 4

Dobrze napisany bot studiuje antybota. Reguluje tempo wejść, używa wiarygodnych nazw, łączy się z domowych proxy i nie robi niczego, co punktowałoby jako anomalia — bo został zbudowany właśnie tak. Sama punktacja go nie złapie, a ta pozostałość to właśnie to, co ludzie nazywają botami omijającymi.

Ostatnia warstwa przestaje więc punktować i zaczyna pytać. Podejrzane wejścia są przekierowywane do CryoLimbo, lekkiego świata limbo, i muszą wykazać, że są prawdziwym klientem — ruchem zgodnym z fizyką gry, poprawnymi reakcjami na stan serwera, zachowaniem, które headlessowy bot musi naprawdę zaimplementować, a nie tylko udawać. Przejście jest tanie dla gracza i drogie dla atakującego i o to właśnie w tym projekcie chodzi. Prawdziwi gracze złapani tutaj przechodzą dalej na twój serwer, zwykle nawet tego nie zauważając.

06

Co faktycznie dociera

400 Mb/s graczy. Twój serwer widzi połączenia, które zobaczyłby w spokojny dzień, z prawdziwymi adresami IP klientów dostarczanymi przez protokół PROXY, więc bany, wykrywanie altów i wtyczki działające na IP zachowują się dokładnie tak, jak przy połączeniu bezpośrednim. Z wnętrza serwera atak nie jest mniejszym problemem — jest całkowicie niewidoczny, i właśnie dlatego pierwszym sygnałem dla operatora jest zwykle powiadomienie na Discordzie, a nie skok lagów.

Warto zatrzymać się przy proporcjach. Warstwa wolumetryczna usunęła 94 % fali, a dwie ostatnie warstwy razem usunęły poniżej 0,4 % — a mimo to właśnie te dwie decydują, czy serwer się utrzyma, bo tylko one potrafiły odróżnić bota od gracza. Przepustowość kupuje ci prawo do posiadania tego ciekawego problemu. Nie rozwiązuje go.

07

To, gdzie znajdują się etapy, liczy się tak samo jak to, co robią

Każda powyższa warstwa działa przed twoim sprzętem i to jest kwestia strukturalna, a nie szczegół implementacyjny. Wtyczka potrafi wykonać wersję zadania warstwy 5 i niektóre robią to dobrze — ale działa po tym, jak połączenie zostało już przyjęte, przydzielone i sparsowane przez twoją maszynę, więc walczy po złej stronie łącza. Ten kompromis jest rozpracowany w antybot na edge vs antybot we wtyczce i dlatego rozsądny układ to edge z przodu i wtyczka z tyłu jako druga warstwa, a nie jedno zamiast drugiego.

Częste pytania

Jak właściwie działa ochrona DDoS?+

Poprzez filtrowanie ruchu tam, gdzie przepustowość jest większa niż atak, zanim dotrze on do celu. Ochrona to sekwencja etapów, z których każda wyłapuje to, czego poprzednia strukturalnie nie widzi: ogromna sieć pochłania surową falę wolumetryczną, filtrowanie pakietów odrzuca fale połączeń, filtrowanie protokołu odrzuca ruch, który tak naprawdę nie jest grą, a weryfikacja behawioralna łapie boty przekonująco udające graczy. Żadna pojedyncza warstwa nie wykonuje całej pracy.

Dlaczego firewall albo wtyczka nie zatrzymają ataku DDoS?+

Przez to, gdzie się znajdują. Jeśli 7 Tb/s celuje w łącze 10 Gb/s, łącze jest pełne i nic po jego drugiej stronie nie ma nic do powiedzenia — serwer jest offline niezależnie od tego, jak doskonałe są jego reguły firewalla. Wtyczka działa jeszcze później, gdy połączenie już kosztowało slot, wątek i logowanie. Oba są przydatne jako warstwy końcowe; żadne nie może być pierwszą.

Jaka jest różnica między ochroną DDoS warstwy 4 i warstwy 7?+

Warstwa 4 pracuje na połączeniach: fale SYN, sfałszowane pakiety, surowe tempo połączeń. Może powiedzieć, że przyszedł milion połączeń TCP, ale nie to, co którekolwiek z nich powiedziało. Warstwa 7 pracuje na tym, czym ruch faktycznie jest — w Minecrafcie: czy mówi protokołem, o jaką nazwę hosta poprosił i czy wejście zachowuje się jak gracz. Ataki botów to problemy warstwy 7 i właśnie dlatego filtrowanie wyłącznie na L4 przepuszcza je bez przeszkód.

Ile ruchu naprawdę dociera do mojego serwera podczas ataku?+

W przykładzie na tej stronie 400 Mb/s z 7 Tb/s — redukcja 17 500-krotna, przy czym origin nigdy nie widzi pozostałych 6,99 Tb/s. Dokładna proporcja zmienia się wraz z atakiem, ale kształt pozostaje ten sam: warstwa wolumetryczna usuwa przytłaczającą większość pod względem objętości, a ostatnie warstwy usuwają ruch, który faktycznie położyłby twój serwer.

Czy filtrowanie przez tyle warstw dodaje graczom opóźnienia?+

Ledwie mierzalne, bo warstwy działają w locie z prędkością łącza, zamiast kolejkować ruch do inspekcji. Gracze łączą się z najbliższym punktem wejścia anycast — często krótszą trasą niż bezpośrednio do twojego serwera — a do weryfikacji zatrzymywane są tylko połączenia wyglądające podejrzanie. Czyste wejście przechodzi przez każdą opisaną tu warstwę, nie zatrzymując się na żadnej.

Każda warstwa z tej strony działa w każdym planie, także w darmowym — płatne poziomy dodają przepustowość i kontrolę, nie ochronę. Załóż darmową sieć, a za jakieś pięć minut będziesz za wszystkimi sześcioma.

Twój następny atak jest już zaplanowany.
Bądź za edge'em, kiedy nadejdzie.

My zajmujemy się bezpieczeństwem, żebyś Ty mógł się rozwijać. Darmowy plan, bez karty, jeden rekord DNS — jeśli nie wytrzyma, straciłeś pięć minut.