Jak probíhal zřejmě nejsilnější DDoS útok v Česku

[gtranslate]

Od brzkých ranních hodin pondělí 05.04.2021 byly naše stránky a naše infrastruktura cílem velmi silných DDoS útoků, tak silných, že se pravděpodobně jedná doposud o nejsilnější DDoS útok v Česku. Připravili jsme si pro vás technické podklady a grafy k tomuto útoku. To jen abyste věděli, k čemu už běžně může na českém Internetu docházet.

Nejdříve prohlášení k útoku aneb nebojte se, máme to pod kontrolou

Převážné většiny našich zákazníků se útok nijak výrazně nedotkl. Evidujeme zpomalené služby anebo u malé části služeb několik málo výpadků v řádech jednotek minut. U jednotek procent služeb pak byl dopad větší (nedostupnost v řádu desítek minut nebo hodin, ale jen z některých lokalit). Naopak naprostá většina služeb žádný problém neměla.

Útok byl poznat hlavně proto, že nám občas na krátkou dobu nešel náš web, klientská administrace a naše status stránka. To byla hlavně situace v pondělí 5. 4. 2021 a částečně i úterý 6. 4. 2021. Poté jsme provedli několik úprav do infrastruktury, něco vylepšili a ve středu 7. 4. 2021 už takto silné útoky způsobovaly pouze drobné zpomalení některých našich webů.

Zákazníkům některé monitorovací služby hlásily výpadek, ale ve skutečnosti nebyl. Jen jsme filtrovali různé druhy komunikace (včetně ICMP paketů apod.). Některé sítě a autonomní systémy jsme museli úplně zablokovat, a tak odněkud se nedalo k nám vůbec dostat. 

Jednalo se o první útok této síly a tohoto druhu. Doposud jsme se s něčím podobným nesetkali. Jednak tento útok byl mimořádně silný (stovky Gbps) a dlouhý (v podstatě 72 hodin a to ještě částečně probíhá) . Chvíli nám trvalo, než jsme se nové aktuální situaci přizpůsobili. Další podobné útoky už pro nás budou snad rutinou. Co šlo, tak jsme zautomatizovali a ještě co půjde, automatizujeme.

Útočníci útočili nejprve na naše routery. Když jsme s tím úspěšně bojovali, tak začali útočit na naše firemní weby. Když jsme i s tímto bojovali, tak začali útočit na zákaznické služby (webhostingy a některé virtuální servery). Dost se to měnilo.
Mimochodem nejsilnější naměřený útok na 1 naší službu – jeden náš web byl přes 160 Gbps. Útoky byly samozřejmě různě kumulované a spojované.

Co je to DDoS útok

DDoS útok je koordinovaná snaha velkého množství napadených anebo zranitelných Zombie počítačů (PC, server, mobil, IoT atd.) přetížit nějaký síťový prvek a to tím, že jej zahltí požadavky. DDoS útoky provádí takzvaný Botnet, což je koordinovaná síť těchto napadených Zombie počítačů, ovládaných přes takzvané Command and Control (C&C) Servery.

Čím více Zombie strojů je v Botnet, tím silnější útok je schopný útočník připravit a provést. Největší Botnety mohou obsahovat miliony zařízení. Většina lidí ani netuší, že jejich počítač je součástí Botnetu a čeká na rozkazy C&C serveru.

DDoS útoky se většinou snaží přetížit cíl hrubou silou. Používají se dva způsoby: ucpáním konektivity velkými přenosy a počtem paketů.

V prvním případě jde o to směřovat na cíl více přenosů, než zvládne konektivita cíle. Pokud se vám povede ji zcela vytížit, tak k cíli už se nedostanou regulérní uživatelé a vypadá, že je pomalý anebo offline.

Druhý druh útoku se snaží velkým počtem paketů přetížit výkon nějakého prvku v síti cíle. Buď, že to nezvládne procesor anebo dojde paměť.

V obou případech je důležité, aby síťová infrastruktura byla postavena na míru i celé konektivitě. Pokud budete mít konektivitu 100 Gbps a hraniční router 20 Gbps, tak jej složí i 30 Gbps útok. Obdobně je to s pakety.

Nejdříve pár informací k naší síťové infrastruktuře

Koncem roku 2017 jsme jako jeden z prvních komerčních hostingů zapojili 100 Gbps trasu. To byla významná událost, která nám umožnila daleko lépe analyzovat a filtrovat velmi silné DDoS útoky.

Zapojení první 100 Gbps trasy v Praze v prosinci 2017. Na obrázku máte ještě pracovní zapojení a proto jsou tam různě kabely… 🙂

Postupně jsme všechny 3 trasy vylepšili na 100 Gbps. Aktuálně máme:

  • Trasa 1 – 100 Gbps – DC1 WEDOS ⟶ Tábor ⟶ Praha SITEL (CeColo)
  • Trasa 2 – 100 Gbps – DC1 WEDOS ⟶ Písek ⟶ Praha SITEL (CeColo)
  • Trasa 3 – 100 Gbps – DC1 – DC2 WEDOS ⟶ Jihlava ⟶ ČDT (U2) ⟶ TTC

A pak další dvě 10 Gbps záložní trasy.

Hlavní byla Trasa 1 (CETIN – Tábor) a Trasa 2 (CETIN – Písek). Ty vedou z datacentra Sitel přes optiku Cetin k nám na Hlubokou a tvoří takzvanou páteřní síť (200 Gbps). V Praze máme přípojky na SITELu (CeColo) – 100 Gbps ke Cogent, 100 Gbps k Telia, 100 Gbps ke Kaora, 10 Gbps k ČDT.

Jako zálohu máme Trasu 3 (ČDT – Jihlava) a tam v datacentru U2 (ČDT) máme přípojky 100 Gbps do Kaora a 10 Gbps k ČDT. 

Všude na trase jsou 100 Gbps chytré switche Arista, což jsou podle nás jedny z nejlepších strojů na světě. Jsme s nimi tak spokojeni, že jsme se rozhodli je začít používat i pro vnitřní infrastrukturu.

Chytrý switch Arista 7280QR-C36, který používáme jako hraniční “routery”, zvládne až 4,32 Tb přenesených dat za vteřinu anebo 1,44 miliard paketů za vteřinu.

Jak probíhal útok na WEDOS

Útok začal v pondělí 05.04.2021 v 3:25 a pokračoval i následující dny v různých formách a síle.

Grafy nejsou kompletní, protože díky přetíženým kapacitám některé snmp statistiky nemáme k dispozici, protože byly přepsány novějšími informacemi.

Navíc na grafech vidíte různé průměry a to za několik minut (3 až 15) a proto to je zkreslující. Útoky jsme vždy po cca sekundě postupně filtrovali a tak následně provoz poklesl a tím je ovlivněn i ten průměr za několik minut.

 

Následující grafy ukazují zachycené přenosy a pakety naší DDoS ochranou během jednotlivých dnů.

Na grafech přenosů vidíte útoky přes jednotlivé trasy. Nejsilnější byl v pondělí a ještě si jej blíže popíšeme. V úterý jsme provedli úpravu routování a zapojili záložní trasu Telia.

A jednotlivých tras (05.04 – 07.04)

Cogent
Kaora
Telia

Útoky z pondělí na úterý

Skutečně zajímavý začal být útok až v 12:00 v pondělí 5. 4. 2021, kdy to útočník začal rozjíždět opravdu velkou silou. V 1:00 dalšího dne, pak zkusil velmi silný útok přes pakety. Po celou dobu tam byly i další útoky, ale soustředíme se jen na tuto časovou oblast.

Na následujícím grafu vidíte útoky tak, jak přicházely na trasu Cogent a Karoa (Telia jsme naplno zapojili až v úterý odpoledne).

Na prvním grafu je hrubá síla v Gbps.

DDoS útok 05.04.2021 – 06.04.2021 na trasu 1 a trasu 2 hrubou silou Gbps

Na druhém grafu pak pokusy shodit jednotlivé prvky naší síťové infrastruktury přes počet paketů.

DDoS útok 05.04.2021 – 06.04.2021 na trasu 1 a trasu 2 hrubou silou Pakety

Co se týká samotného útoku, tak se jednalo o několik stovek odlišných útoků, které střídaly formu, sílu, cíle. Jak jsme na ně postupně reagovali a nasazovali nové filtry a pravidla do ochran, tak se tomu útočník snažil přizpůsobit. Obecně krizových bylo asi 7 minut z celého dne, kdy jsme na jednom routeru zaznamenali pokles přirozených přenosů.

Co se týká cílů, tak útočník to měnil průběžně podle toho, co našel a v co doufal, že není tak dobře chráněno anebo jsme někde podcenili síťovou infrastrukturu. Velké škody však nenapáchal. Spíše to bylo takové zoufalé střídání IP adres a pár domén.

Co se mu podařilo shodit, byla naše status stránka, kterou však máme od počátku mimo naši infrastrukturu a ochrany, abychom v případě problémů dokázali komunikovat se zákazníky. A jen jsme si ověřili, že ani zahraniční řešení není 100%.

Útoky šly z celého světa

V pondělí ve večerních hodinách jsme během útoku měli přes službu meet.wedos.com online konferenci se 70 lidmi. Když přišel silný večerní útok, tak nás jen upozornil šéf a bylo vidět, jak každou chvíli rychle překlikává na statistiky a monitoring. Nicméně útok na konferenčním hovoru nebyl poznat, a to jsme tam měli i lidi ze zahraničí.

Rekordní útok hrubou silou – pokus o ucpání konektivity (Gbps)

Rozdělme si nyní obě trasy a podívejme se, co se útočníkovi “podařilo”. Je třeba brát v potaz, že graf ukazuje minutové průměry, takže 100 Gbps bylo dosaženo.

Přípojka Cogent dosahovala svého maxima a skutečně jsme evidovali za celou dobu v součtu desítky vteřin, kdy byla ucpaná a přenosy musely jít přes trasu 2. V tuto dobu se skutečně některé pakety, které nevyžadují potvrzení o přijetí (například UDP) mohly ztrácet. Nicméně u webů se používá TCP a pokud se nějaký paket ztratí (nepřijde potvrzení od protistrany o doručení), tak se posílá znovu a měl by jít přes druhou trasu.

V nejvyšších špičkách nejsme schopni říct, jak silný útok na tuto trasu byl, neboť přesáhl 100 Gbps, které dokážeme ještě změřit.

DDoS útok 5. 4. 2021 – 6. 4. 2021 na trasu 1 silou Gbps

Druhá trasa si vedla o poznání lépe. Nešlo toho “tolik” přes ni a nebyla zahlcena. Můžeme tedy říct, že naše kapacita 2x 100 Gbps byla pro tento útok dostatečná.

DDoS útok 5. 4. 2021 – 6. 4. 2021 na trasu 2 hrubou silou Gbps

Tohle byla nejsilnější část pondělního útoku hrubou silou s pokusem ucpat nám konektivitu. Jsou počítáné minutové průměry, které se zapisují 1x za 3 minuty.

Nejsilnější část pondělního DDoS útoku hrubou silou.

Přikládáme i grafy jednotlivých tras.

Útok hrubou silou – pokus o přetížení síťových prvků (pakety)

Když se útočníkovi nedařilo ucpat naši konektivitu, rozhodl se zkusit zahltit naše síťové prvky pomocí paketů. Tento útok je velice nepříjemný, protože může mít řadu podob. Tady jsme opravdu rádi, že investujeme do kvalitních switchů a routerů, které daleko přesahují to, co na běžný provoz potřebujeme.

Ve výsledku tento útok nezpůsobil žádné větší škody, ale 77,1 milionů paketů na 1 stroj zní opravdu hrozivě.

DDoS útok 5. 4. 2021 – 6. 4.2021 na trasu 1 hrubou silou pakety

Druhá trasa si také užila své, ale tak silný útok na/přes ni nešel.

DDoS útok 5. 4. 2021 – 6. 4. 2021 na trasu 1 hrubou silou pakety

Útoky z úterý na středu

V odpoledních hodinách jsme provedli řadu úprav na routování a vylepšili filtrování. Výsledkem bylo hlavně oddělení CZ/SK provozu, který většina z našich zákazníků potřebuje. Naplno se také zapojila přípojka 3 (Telia).

Fungovalo nám to dobře, jen nám tam dopoledne pár českých IP adres skončilo na blacklistu, část útoků v řádech desítek Gbps jde totiž i přes NIX.

Pár desítek Gbps jde i přes NIX.

Hodně napadených/zranitelných zařízení je tedy i u českých ISP a každý by se měl připravit, že dokáží vytvořit útok o síle desítek Gbps. Nějaké rozsáhlejší blokace IP rozsahů anebo blackholing zde moc používat nejde. Jsme rádi za naše “pračky”, které dokáží takovýto provoz čistit.

Ze zahraničí jsme dostupní dobře, některé monitorovací služby mohou však hlásit nedostupnost, protože máme přísněji nastavené filtry (můžete využít zatím náš WEDOS OnLine). Obecně při špičce útoku může dojít u služeb k zpomalení případně velmi krátkým výpadkům.

Ve středu se nám však stalo něco, co jsme (ne)čekali. Útočníci poprvé zkusili ucpat všechny 3 trasy, což se jim na pár sekund skutečně podařilo. Během těchto pár vteřin jsme tedy měli zahlceno 3x 100 Gbps. Ve výsledku to však udělalo “jen” 142,3 Gbps při minutových průměrech (měříme 1x za 3 minuty) a celkově tam bylo průměrně kolem 100 milionů paketů za sekundu. Špičkově to bylo ucpaných 300 Gbps a přes 200 milionů paketů za sekundu. My jsme po sekundě vždy filtrovali a postupně situaci řešili. 

Ptáte se, kde jsme vzali ta čísla? To má jednoduché vysvětlení. Ta čísla ukazují routery na jednotlivých rozhraních. Mají tam přesné statistiky (dosažená maxima a průměry za poslední časové období ).
Dále sbíráme různé netflow a snmp data, která poskytují podobná vodítka.

Naše infrastruktura to ustála. Nicméně takto masivní provoz zahlcuje i trasy našich dodavatelů a některých dalších ISP po cestě. Dají se tedy provádět jen velice krátce.

Útočníkům už se nepodařilo naše weby shodit, pouze nám občas přišlo varování o tom, že jsou pomalejší. Místo toho zkoušeli doslova všechno možné. Například vybírali náhodné domény, které si mysleli že jsou u nás a na IP adresy v DNS směřovaly útoky.

Na správu a ovládání všeho jsme se dostali vždy, protože máme fyzicky oddělenou interní LAN.
Z této interní LAN jdeme na veřejné IP adresy serverů přes interní firewall a potom dále přes naše routery, protože bránu této interní LAN máme v jiném IP adresním rozsahu. Takže z našich PC jdeme na veřejné IP adresy webů a serverů přes přetíženou část sítě.

Co máme v plánu zlepšit

Věděli jsme, že jednou útoky přes 100 Gbps přijdou, ale popravdě nečekali jsme, že tak brzy a rovnou na nás 🙂

Jsme v úplně jiné pozici než v roce 2014, kdy na nás šly první silné útoky a neměli jsme se fakticky, jak se jim bránit. Chyběly nám hlavně zkušenosti, know how a hardware. Dnes už všechno tohle máme, plus 3x 100 Gbps k tomu 🙂

Nebudeme psát, že nás tyto útoky trochu nepotrápily. Někteří z nás nespali a čekali, co dalšího útočníci s takovýmto arzenálem dokážou vymyslet. Pokud za 3 noci naspíte 6 hodin, tak jste asi unaveni…

Našli jsme i pár “slabin”, které by takto silný útok mohl zneužít. V noci jsme také například přehazovali nějaké IP adresy a prováděli úpravy v DNS. Museli jsme jednat rychle a objevilo se i pár chyb. Když přepisujete stovky IP adres a počítáte rozsahy s pár hodinami spánku, tak vám občas něco ujde. Šlo například o to, že útočníci (nově) útočili na IP adresy služeb, podle DNS názvů. Potřebovali jsme vědět na jaké. Takže jsme službám přepisovali IP adresy v DNS a postupně jsme zmenšovali skupinu, než jsme přišli na co přesně útočí. Bohužel něco takového jde velmi pomalu. Máte obrovskou skupinu domén a potřebujete vědět, na kterou útočí. Tak jak na to? Rozdělit to na menší skupiny. A čekáte, až se to projeví v DNS a sledujete, na kterou skupinu útočí. Tu rozdělíte na menší a zase čekáte. A takhle postupně, až se dostanete na konkrétní název. Vzhledem k tomu, že vždy čekáte na změny v DNS, tak je to operace na mnoho a mnoho a mnoho hodin. Ale úspěch se dostavil. 

Samozřejmě zastavit takovýto útok je něco jiného, než jej filtrovat. Naučili jsme se útoky o síle desítek Gbps filtrovat tak, že zákazník, na kterého takovýto útok jde, nepozná rozdíl. To nám hodně pomohlo v úterý, když se začali objevovat více útoky z českého NIXu. Ano, útoky přicházely i z ČR. 

Hned v pondělí jsme dělali analýzu dat a zjišťovali jsme, zda nejsou útoky jen z nějakého světadílu a ten bychom zablokovali. Bohužel. IP adresy byly z celého světa. Normálně ze všech zemí okolo ČR, včetně ČR. A to nezablokujete jen tak… Asi na nás útočila každá moderní lednička.

Z uvedených důvodů nešlo úplně jednoduše používat tzv. selektivní blackholing a to tak, abychom některé naše IP adresy nepropagovali do některých lokalit (geograficky).

Nicméně na takto silné útoky filtrování stačit nebude. Tam už je potřeba přijít s jiným řešením na celosvětové úrovni. To máme v plánu až se službou WEDOS AnyCast. Priorita jejího vývoje a rychlého nasazení výrazně vzrostla.

Již v lednu padlo rozhodnutí, že velmi výkonné stroje na filtrování závadného provozu budeme vyměňovat. Stroje máme k dispozici a chceme je nyní nasadit. V plánu jsou 4 nové a každý by měl zvládnout přefiltrovat 40 – 120 Gbps (podle druhu útoku) a až 50 milionů paketů za vteřinu. Staré použijeme jako sondy a budeme moci útoky přesněji analyzovat. Máme pár nápadů, které vyžadují hodně výpočetního výkonu.

Hmm mysleli jsme, že 3x 100 Gbps bude stačit. Asi budeme muset zvážit možnosti navýšení 🙂

Závěr

Dokázali jsme změřit DDoS útok o síle přes 300 Gbps (164,3 Gbps při minutových průměrech – číslo se zapisuje 1x za 3 minuty) a ve stovkách milionů paketů. Předpokládáme, že útok byl výrazně silnější, ale z důvodů průměrování několika minut a fakticky přetížení tras, to nemůžeme přesně změřit. Ve středu pak byly skutečně útoky na pár vteřin a ty ucpaly všechny tři trasy, což znamená útok přes 300 Gbps. 

Ale oficiální číslo, které jsme dokázali změřit jako průměr je 164,3 Gbps. Rekord tedy 300 Gbps.

Zůstává jen otázka, jak byl skutečně útok silný a kolik byla ta hranice, kdy bychom to již nezvládli.

DDoS útok 5 . 4. 2021. Nejsilnější část 164,3 Gbps naměřené síly.

Co se týká paketů a pokusu sestřelit jednotlivé prvky naší síťové infrastruktury, tak tam jsme nejvíce zaznamenali 98,1 milionů paketů za vteřinu. Opět se jedná o minutové průměry. 77,1 milionu paketů šlo přes jednu trasu a 21 milionů paketů přes druhou. Ale krátkodobá čísla (bez průměrů) se pohybovala nad 200 miliony paketů za sekundu.

DDoS útok 5. 4. 2021. Nejsilnější část 98,1 milionů paketů naměřené síly.

Děkujeme všem za podporu během velmi náročných dní. Snažili jsme se, aby dopad na klienty byl co nejmenší a vcelku se nám to povedlo. Například virtuální a dedikované servery neměly žádné problémy a to až na pár výjimek, kdy došlo ke zpomalení na několik desítek sekund.

Děkujeme všem za pochopení. Od počátku jsme informovali na naší status stránce, kterou již delší dobu používáme k podobnému účelu.

Chystáme několik dalších vylepšení. Budeme o nich informovat.

Dlouhé útoky si zasloužily dlouhý článek 🙂

Doplnění dne 9. 4. 2021:

  • Jako preventivní ochranu před DDOS útoky jsme spustili anycast DNS v Asii, Evropě, Americe a brzo přidáme další. Zatím tam běží jeden z DNS serverů, které máme.
  • Pustili jsme 2 nové filtry, které zvládnout filtrovat 80 Gbps (každý) a cca 50 milionů paketů za sekundu (každý). Po víkendu přidáme další dvojici. Takže naše filtrovací kapacita dosáhne 320 Gbps a řádově 200 milionů paketů za sekundu.
  • Připravili jsme záložní URL pro zákaznickou administraci, která je na zcela jiné domény a je přes anycast.