Zkratka proDistributed Denial of Servicedý dý ou esTakéDDoS útok, Distributed Denial of Service, DoS útokPokročilý
Definice
DDoS je útok, při kterém velké množství rozptýlených zařízení současně zahltí server, linku nebo aplikaci provozem tak, že přestane obsluhovat legitimní uživatele. Na rozdíl od prostého DoS pochází zátěž z tisíců různých adres, takže ji nelze odstavit zablokováním jednoho zdroje. Cílem není krádež dat, ale nedostupnost služby.
Než se na to spolehnete: Cenové rozpětí ochrany ve FAQ je orientační odhad trhu, ne údaj z citovaného zdroje; doporučuji před publikací ověřit nebo zobecnit. Wikidata Q131406 pro DoS útok ověřte, ID uvádím z paměti.
Co při DDoS dochází dřív: linka, spojení, nebo aplikace
DDoS vyčerpává nějaký konečný zdroj. Praxe rozlišuje tři vrstvy podle toho, který zdroj dojde jako první. Objemové útoky (UDP flood, amplifikace přes DNS nebo NTP) zaplní kapacitu linky, takže paket s legitimním požadavkem se do datového centra vůbec nedostane. Protokolové útoky (SYN flood, fragmentace) vyčerpají stavové tabulky serveru, firewallu nebo load balanceru, přestože přenesených bajtů je málo. Aplikační útoky na sedmé vrstvě posílají zdánlivě normální HTTP požadavky na drahé endpointy, například fulltextové vyhledávání nebo generování PDF, a položí databázi při provozu, který na grafu síťové kapacity nevypadá nijak zvlášť.
Odkud se bere ten objem
Zdrojem bývá botnet: desítky tisíc kompromitovaných počítačů, routerů, kamer a dalších IoT zařízení, které dostávají povely od řídicí infrastruktury. Druhou technikou je reflexe s amplifikací. Útočník pošle malý dotaz na veřejně dostupný UDP server (DNS resolver, memcached, NTP) s podvrženou zdrojovou adresou oběti a server pošle mnohonásobně větší odpověď na tuto adresu. Poměr mezi vyslaným a doručeným objemem může být řádový, takže útočník s malou linkou vygeneruje provoz o velikosti stovek gigabitů za sekundu.
Proč se špatně odlišuje od legitimní špičky
Nárůst provozu sám o sobě nic neříká. Vydaná tisková zpráva, sleva nebo zmínka ve zprávách vyvolají podobnou křivku jako aplikační DDoS. Rozdíl se hledá ve struktuře: podíl nových spojení k dokončeným, rozložení User-Agent hlaviček, poměr požadavků na statiku a dynamiku, geografické rozložení oproti běžnému dni. Aplikační útoky bývají navržené tak, aby tyto ukazatele napodobily, což je důvod, proč se obrana opírá o kombinaci signálů a ne o jedno pravidlo.
Vrstvy obrany
- Kapacita a scrubbing: provoz se přesměruje do sítě poskytovatele, který má řádově větší propustnost a nežádoucí pakety odfiltruje.
- Anycast: stejná IP adresa je ohlašovaná z mnoha lokalit, takže se útok rozdrobí mezi ně místo koncentrace na jeden bod.
- Omezení tempa: rate limiting na úrovni IP, tokenu i konkrétního endpointu chrání drahé operace.
- Challenge: JavaScript výzva, proof of work nebo CAPTCHA odfiltrují jednodušší klienty bez plného prohlížeče.
- Odolná architektura: cachování před aplikací, oddělené fronty, timeouty a autoscaling s horním stropem, aby útok nezpůsobil místo výpadku fakturační šok.
Co dělat, když útok běží
Improvizace během incidentu obvykle selže, protože změna DNS záznamu se propisuje hodiny. Připravený postup obsahuje předem sjednanou ochranu, kontakt na poskytovatele konektivity, oddělený kanál pro komunikaci mimo zasaženou infrastrukturu a nacvičené přepnutí do režimu s omezenou funkčností. Zveřejnitelný stavový web mimo hlavní infrastrukturu udrží komunikaci se zákazníky i ve chvíli, kdy hlavní doména neodpovídá.
Příklady z praxe
SYN flood vyčerpá tabulku polootevřených spojení
Útočník posílá TCP SYN pakety s podvrženými zdrojovými adresami a nikdy nedokončí handshake. Server si pro každé spojení drží záznam v tabulce a čeká na potvrzení, takže se tabulka zaplní a legitimní klient dostane timeout. Obranou jsou SYN cookies, které stav nedrží a rekonstruují ho z hodnoty v potvrzení.
# aktivace SYN cookies v Linuxu sysctl -w net.ipv4.tcp_syncookies=1 sysctl -w net.ipv4.tcp_max_syn_backlog=4096 # rychlá kontrola počtu polootevřených spojení ss -n state syn-recv | wc -lAplikační útok na drahý endpoint e-shopu
Botnet posílá zhruba 300 požadavků za sekundu na fulltextové vyhledávání s náhodnými řetězci, takže cache je k ničemu a každý dotaz sáhne do databáze. Síťová kapacita zůstává vytížená pod deset procent, ale databáze vyčerpá pool spojení a padá celý web včetně pokladny. Řešení kombinuje limit na tento konkrétní endpoint a frontu s odmítáním nad kapacitu.
# nginx: samostatná zóna jen pro vyhledávání limit_req_zone $binary_remote_addr zone=search:10m rate=5r/s; location /vyhledavani { limit_req zone=search burst=10 nodelay; limit_req_status 429; proxy_pass http://app; }
Časté omyly
- MýtusDDoS je hackerský průnik, po kterém někdo ukradne data.
- Ve skutečnostiDDoS nezískává přístup do systému, pouze ho činí nedostupným. Průnik a únik dat vyžadují jinou zranitelnost. DDoS ale bývá použit jako odvedení pozornosti, zatímco útočník paralelně zkouší jinou cestu dovnitř.
- MýtusStačí zablokovat útočící IP adresy ve firewallu.
- Ve skutečnostiZdroje jsou u DDoS rozptýlené mezi desítky tisíc adres a často podvržené, takže blokování jednotlivých adres nestíhá a při amplifikaci by zablokovalo legitimní DNS servery. Navíc při zaplnění linky se pakety zahodí ještě před firewallem.
- MýtusAutoscaling v cloudu DDoS vyřeší, aplikace prostě naškáluje.
- Ve skutečnostiAutoscaling přesune problém z dostupnosti na náklady: útok se odbaví, ale účet naroste. Bez horního stropu a filtrace před aplikací se z výpadku stane finanční škoda, které se říká economic denial of sustainability.
Časté dotazy
- Jak poznám, že jde o DDoS a ne o chybu v aplikaci?
- Rozlišení DDoS od interní chyby vychází z pořadí příznaků. Při útoku roste počet příchozích spojení a paketů dřív, než se zhorší doba odezvy, a zátěž přichází zvenčí. U chyby v aplikaci nebo v databázi odezva roste bez odpovídajícího nárůstu vstupního provozu, často po nasazení nové verze. Užitečné je porovnat metriky z hraničního prvku, load balanceru a aplikace ve stejné časové ose. Pokud hraniční prvek vidí mnohonásobek běžného provozu z neobvyklých sítí, jde téměř jistě o útok.
- Kolik stojí ochrana proti DDoS pro běžný web?
- Ochrana proti DDoS začíná u běžných webů prakticky na nule, protože základní objemovou filtraci mají v ceně velcí poskytovatelé CDN a cloudové platformy. Placené tarify s garantovanou reakcí, ochranou aplikační vrstvy a podporou při incidentu se pohybují od nižších stovek korun měsíčně u sdílených plánů po desítky tisíc u podnikových smluv se scrubbing centrem. Rozhodující není velikost webu, ale cena hodiny výpadku: u e-shopu v předvánoční sezoně se placená ochrana zaplatí během jediného incidentu.
- Je provozování nebo objednání DDoS útoku v Česku trestné?
- DDoS útok naplňuje v českém právu skutkovou podstatu neoprávněného zásahu do počítačového systému a nosiče informací podle trestního zákoníku, takže je trestný i pro objednatele a pro provozovatele služby typu booter nebo stresser. Trestnost se netýká jen samotného útočníka: odpovědnost nese i ten, kdo útok zaplatí nebo poskytne infrastrukturu. Legální je pouze testování vlastní infrastruktury s písemným souhlasem provozovatele a obvykle i s předchozím oznámením poskytovateli konektivity.
- Pomůže proti DDoS skrytí skutečné IP adresy serveru?
- Skrytí origin adresy za CDN nebo scrubbing službu je nutná podmínka, ale samo o sobě nestačí. Útočníci dohledávají původní adresu z historických DNS záznamů, certifikátových transparenčních logů, e-mailových hlaviček nebo chybových stránek. Skrytí má smysl jen tehdy, když origin server zároveň odmítá spojení odjinud než z rozsahů ochranné služby, což se vynutí firewallem nebo ověřením klientského certifikátu. Bez tohoto omezení útočník ochranu jednoduše obejde a udeří přímo na server.
Zdroje
- Denial-of-service attack(otevře se v novém okně)
- RFC 4987: TCP SYN Flooding Attacks and Common Mitigations(otevře se v novém okně)
- RFC 2827: Network Ingress Filtering: Defeating Denial of Service Attacks which employ IP Source Address Spoofing(otevře se v novém okně)
- OWASP Cheat Sheet Series(otevře se v novém okně)
- AWS Best Practices for DDoS Resiliency(otevře se v novém okně)