Jak náš web byl pod útokem anebo už nás zase někdo nemá rád

[gtranslate]

Náš vývoj jde správným směrem. Poznáme to snadno. Už zase někomu hodně moc vadíme.

Vážení zákazníci, rádi bychom Vás informovali o důvodech nedostupnosti našeho webu a zákaznické administrace dne 2. února 2018 v odpoledních a nočních hodinách. Vždy jsme k vám byli upřimní a hodláme v tom i nadále pokračovat, protože jen tak můžete mít v naše služby plnou důvěru.

Útok v 17:54

Kolem 18 hodiny byl na náš web hosting.wedos.com proveden velmi silný DDoS útok. Zároveň probíhaly menší náročněji detekovatelné útoky na některé další servery, zejména nové webhostingy, které od konce listopadu zřizujeme na HPE Moonshot.

Hlavní útok byl proveden přes různé ICMP a UDP, což by pro nás nebyl problém, protože je běžně filtrujeme ve velkém množství. Zároveň však proběhl i masivní útok TCP+SYN pakety s cílem zahltit naše webové servery. To vedlo k přetížení IPS/IDS ochrany, kterou využívají i webhostingy NoLimit, zřízené před listopadem minulého roku. IPS/IDS ochrana tak byla “ucpaná” požadavky a nestíhala přehazovat pakety a spojení. Automaticky měl pomoci ochranný mechanismus DDoS ochrany a IDS/IPS ochraně ulehčit a uvést situaci do normálu. To se však nestalo. Bohužel nezafungoval ani pojistný mechanismus, kdy se měl systém IDS/IPS ochrany pro napadanou síť odpojit. To po pár minutách udělal technik odpojením kabelu a napadaný provoz od toho okamžiku nejel přes IDS/IPS ochranu, ale mimo po záložních trasách (proto stačilo odpojit kabel a to buď konfiguračně nebo ručně).

Útok byl primárně veden na všechny naše domény WEDOS.xxy. Hlavní věci máme na samostatných serverech, které tím byly přetížené, ale jednotlivé domény (jednotlivé TLD koncovky) jsou na různých částech sítě a různých serverech a tam docházelo k výpadkům nebo ke zpomalení. Ostatní služby jako VPS ON, VPS, VPS SSD a dedikované servery nebyly tímto útokem nijak postiženy.

Útok v 21:40

Další útok a o dost silnější proběhl kolem 21:40. Scénář byl stejný, ale už jsme na vše byli připraveni. Technik ručně shodil IPS/IDS ochranu a tak sdílené webhostingy zřízené před listopadem minulého roku pocítili jen krátký několikasekundový výpadek, respektive zpomalení na několik sekund.

Tento večerní útok byl cca 2x silnější, než v podvečer. Večer k nám přicházelo (na náš hlavní web) kolem 2 milionů požadavků na spojení za sekundu ve formě TCP+SYN paketů, tedy paketů, které jen mají navázat spojení a čekají na odpověď. Součástí útoků bylo několik dalších milionů paketů za sekundu, zejména UDP, které měly za cíl zahltit naše linky směrem k serverům. Vzhledem k tomu, že jsme páteř předělali na X krát 100 Gbps, tak tohle nehrozilo a došlo na cca 1 sekundu k ucpání linky směrem k finálně napadeným serverům. Potom zafungovala DDoS ochrana a tyto UDP pakety jsme odfiltrovali ještě před vstupem do naší sítě. Problém byl s TCP+SYN pakety.

Když útočníci zjistili, že ostatní naše služby jedou, zaměřili se na servery kde jedou nové webhostingy na HPE Moonshot. Servery jsou na velkou zátěž stavěné jak hardwarově tak i softwarově (jeden HPE Moonshot s OpenNebula se stará o více jak desítky milionů souborů). Bohužel rychlé přístupy způsobily příliš mnoho zápisů do logů. Místa je pro tyto případy dostatek a na serverech byla obrovská rezerva, ale nějaký ochranný mechanismus u Docker (respektive souvisejících věci) preventivně vše vypnul a pořád některé servery opakovaně vypínal s informací, že bylo překročeno 87% zaplněného prostoru na některých discích. Než to naši technici a vývojáři vyřešili úpravou, došlo k restartu úložiště a následně bylo nutné synchronizovat data mezi servery v cloudu. To se projevilo nedostupností a následným zpomalením některých nových webhostingů. Novým webhostingům a úložišti jsme se věnovali poslední měsíc velmi intenzivně a už jsme se radovali, že 11 dní jedou bez jediného zaváhání a hlavně mimořádně rychle. O tom napíšeme samostatný článek.

Tento problém byl už vyřešen. Vývojáři také připravují několik vylepšení, které podobným situacím předejdou.

Filtraci TCP+SYN jsme měli

Filtraci TCP+SYN jsme měli již v původní verzi sítě, ale proč nyní nezafungovala? Po přechodu na X krát 100 Gbps nefungovala ochrana proti TCP+SYN správně, protože jsme zcela změnili logiku routování a vše je plně automaticky zálohované (každý router a filtr v síti má “svého bratříčka” jako online zálohu, což je prevence proti výpadkům a zároveň možnost balancování provozu) a routování není symetrické. Pakety směrem dovnitř naší sítě “tečou” jinou trasou než pakety, které z naší sítě odcházejí. V takovém případě filtrace TCP+SYN paketů nefunguje. 

Ještě v noci z pátka na sobotu jsme udělali několik úprav v routování tak, abychom mohli příslušné pakety filtrovat. Je to selektivně. Vybereme napadený provoz a ten pošleme jinou cestou, než zbytek. Takže odchozí pakety pošleme stejnou cestou jako příchozí a tím umožníme filtraci.

Nový filtr v akci

Prioritou pro nás bylo udržet v chodu hostingové služby, proto také naše internetové stránky nejely tak dlouhou dobu. Vždy jsou pro nás prioritou vaše služby. Část týmu pracovala na řešení několika problematických serverů (jednalo se asi o 7 serverů z celkových cca 1500, které máme) a část týmu řešila jak situaci co nejdříve vyřešit a část týmu se věnovala i úpravám, aby k problémům nedocházelo. Navíc jsme ještě dali zprávu na sociální sítě a kolega tam odpovídal. S podobnými situacemi máme dlouholeté zkušenosti, takže sestavit týmy a koordinovat jejich činnost v krizových případech je v podstatě rutina. Každý ví koho informovat, od koho získá další instrukce anebo mu sdělit, co už zařídil. 

Samozřejmě část našeho týmu se nepřetržitě věnovala odražení útoku. Před naše stránky jsme se také rozhodli nasadit nový filtr f80. Jedná se o nový, dosud v ostrém provozu nevyzkoušený filtr, který naši vývojáři a technici připravovali pro službu VPS SSD a VPS ON a nově připravovaný WEDOS Cloud. Jeho nasazení jsme však odkládali kvůli přestavbě sítě na X krát 100 Gbps. Nový filtr f80 umožňuje filtrování provozu podle zemí původu. Pokud máte službu pro omezený okruh lidí, tak ostatní přístupy jsou jen zbytečnou zátěží. Také poslouží jako nouzové řešení pro situace jako byla právě teď ta naše.

Na novém filtru f80 jsme si nastavili přístupy pouze z Česka, Slovenska, Polska a zapojili jej do sítě. Okamžitě začal filtrovat provoz a náš web jel naplno. Vytížení serveru padlo okamžitě na běžný provoz. Žádné pomalé načítání – vše jelo jako by se nic nestalo. Přitom server byl původně (doslova) pod palbou milionů požadavků za vteřinu. Nový filtr f80 byl od začátku vyvíjen pro obrovskou zátěž, ovšem dokud jej nevyzkoušíte v reálném provozu tak nevíte nakolik bude efektivní anebo kolik toho dlouhodobě zvládne. Vyzkoušet jej v “bojových” podmínkách na našem vlastním webu, kde jsme v podstatě nic neriskovali, bylo ideální. V testu obstál na jedničku 🙂

Nové možnosti filtrace pro naše klienty

Tento nový způsob filtrace budeme chtít nabídnout našim klientům u všech služeb (včetně webhostingu). Klienti si budou moci vybrat země, ze kterých chtějí povolit přístupy na svůj server (primárně bude služba určena pro VPS, VPS ON a WEDOS Cloud). Pokud například víte, že máte server s návštěvníky z ČR a SR, tak si povolíte jen tyto dvě země. Nebo třeba víte, že chcete návštěvníky jen z Evropy, tak si povolíte přístupy jen z Evropy. Samozřejmě půjdou dělat v nastavení výjimky. Vše půjde nastavit v administraci.

Nyní dobře víme, že to funguje a nebudeme mít strach tuto službu nabídnout našim zákazníkům. 

Nyní ještě chceme dokončit přechod sítě na X krát 100 Gbps, kde nám v podstatě chybí jen spuštění IPv6 pro nové služby (nové webhostingy, VPS ON a WEDOS Cloud). Tam na řešení pracujeme. 

Závěr

V pátek se toho událo více, ale to by bylo pomalu na scénář k celovečernímu filmu:). Až otevřeme naše druhé datacentrum a uděláme dny otevřených dveří, tak si o tom rádi s vámi popovídáme do detailů. Nemáme se za co stydět právě naopak. Věděli jsme co se děje, a jak to vyřešit s minimálním dopadem na služby našich zákazníků. Klidně takové útoky mohly trvat i hodiny a opakovat se každý den. Popravdě se opakovaly i další den, ale to už jste si ničeho nevšimli, protože jsme se na ně připravili a naše DDoS ochrana tentokrát reagovala bezchybně.

Útoky směřovaly hlavně na nás – na náš hlavní web, administraci a také domény, které moc nepoužíváme jako třeba wedos.cz (zde je jen přesměrování). Někdo nás asi nemá rád. Možná bychom měli udělat mimořádnou alespoň týdenní slevu na naše nové služby 🙂