„Chlapec, který nám dělal web, už nastavil ochranu proti DDoS.“
„Vždyť máme ochranu před DDoS, proč se stránka zhroutila?“
„Kolik tisíc chce Qrator?“
Abychom mohli normálně odpovídat na takové otázky od zákazníka/nadřízeného, bylo by dobré vědět, co se skrývá za názvem „ochrana proti DDoS“. Výběr ochranných služeb více připomíná výběr léku lékařem než výběr stolu v IKEA.
Pracuji na podpoře webů 11 let, zažil jsem stovky útoků na služby, které spravuji, a teď trochu povím o vnitřní kuchyni ochrany.
Pravidelné útoky. 350 000 požadavků celkem, 52 000 požadavků legitimních.
První útoky se objevily prakticky současně s internetem. DDoS jako jev se stal masovým od konce 2000. let (podívejte se na ).
Od roku 2015-2016 téměř všichni poskytovatelé hostingu přešli pod ochranu proti DDoS útokům, stejně jako většina výrazných webů v konkurenčních sektorech (udělejte whois podle IP webů eldorado.ru, leroymerlin.ru, tilda.ws, uvidíte sítě ochranných operátorů).
Pokud před 10-20 lety většina útoků mohla být odražena přímo na serveru (oceněte doporučení systémového administrátora Lenta.ru Maxima Moškova z 90. let: ), pak jsou dnes úkoly ochrany složitější.
Druhy DDoS útoků z pohledu výběru operátora ochrany
Útoky na úrovni L3 / L4 (podle modelu OSI)
— UDP flood z botnetu (přímo ze zasažených zařízení je na cílovou službu posíláno mnoho požadavků, servery zahlcují kanál);
— DNS/NTP/atd. amplifikace (ze zasažených zařízení je posíláno mnoho požadavků na zranitelné DNS/NTP/atd., adresa odesílatele je podvržena, mraky paketů s odpověďmi na požadavky zahlcují kanál toho, kdo je napadán; takto probíhají nejmasivnější útoky v současném internetu);
— SYN / ACK flood (na cílové servery je posíláno mnoho požadavků na navázání spojení, dochází k přetečení fronty spojení);
— útoky s fragmentací paketů, ping of death, ping flood (prosím, hledejte);
— atd.
Tyto útoky mají za cíl „zahlcovat“ kanál serveru nebo „usmrtit“ jeho schopnost přijímat nový provoz.
Ačkoli se SYN/ACK flood a amplifikace výrazně liší, mnohé společnosti s nimi bojují přibližně stejně dobře. Problémy nastávají s útoky z následující skupiny.
Útoky na L7 (úroveň aplikace)
— http flood (pokud je napadána webová stránka nebo nějaké http API);
— útok na zranitelná místa webu (která nemají cache, výrazně zatěžují server atd.).
Cílem je přimět server "těžce pracovat", zpracovávat mnoho "zdánlivě skutečných žádostí" a zůstat bez zdrojů pro skutečné žádosti.
I když existují i jiné útoky, tyto jsou nejběžnější.
Vážné útoky na úrovni L7 jsou vytvářeny unikátním způsobem pro každý napadený projekt.
Proč 2 skupiny?
Protože existuje mnoho těch, kteří dokáží dobře odrážet útoky na úrovni L3 / L4, ale buď se vůbec nezabývají ochranou na úrovni aplikace (L7), nebo si s nimi zatím poradí slaběji než alternativy.
Kdo je kdo na trhu ochrany proti DDoS
(můj osobní pohled)
Ochrana na úrovni L3/L4
K odrážení útoků s amplifikací ("pohřbení" kanálu serveru) stačí široké kanály (mnoho z ochranných služeb se připojuje k většině velkých páteřních poskytovatelů v Česku a má kanály s teoretickou kapacitou přes 1 Tbit). Nezapomínejme, že velmi vzácné útoky s amplifikací trvají déle než hodinu. Pokud jste Spamhaus a nikdo vás nemá rád — ano, mohou se snažit položit kanály na několik dní, i s rizikem pro další přežití používaného světového botnetu. Pokud máte jen internetový obchod, i když to je mvideo.ru — 1 Tbit během několika dní nevidíte velmi brzy (doufám).
K odrážení útoků s SYN/ACK floodem, fragmentací paketů atd. je třeba hardwarové nebo softwarové systémy pro detekci a odřezávání takových útoků.
Takové zařízení vyrábí mnoho (Arbor, existují řešení od Cisco, Huawei, softwarové implementace od Wanguard atd.), mnoho páteřních operátorů již takové zařízení nainstalovalo a prodává služby ochrany proti DDoS (vím o instalacích od Rostelekom, MegaFon, TTK, MTS, v podstatě u všech velkých poskytovatelů, to dělají i hostitelé se svou ochranou a-la OVH.com, Hetzner.de, s ochrannou v ihor.ru jsem se sám setkal). Některé firmy vyvíjejí svá softwarová řešení (technologie jako DPDK umožňují zpracovávat provoz desítkami gigabitů na jednom fyzickém x86 stroji).
Mezi známými poskytovateli jsou všichni schopní poměrně efektivně zvládat L3/L4 DDoS útoky. Nyní neřeknu, kdo má nejvyšší maximální kapacitu kanálu (to jsou neveřejné informace), ale obvykle to není tak důležité a rozdíl je pouze v tom, jak rychle ochrana zasáhne (okamžitě nebo během několika minut výpadku projektu, jako v případě Hetzner).
Otázka je, jak kvalitně se to provádí: útok s amplifikací lze odrážet blokováním provozu ze zemí s největším množstvím škodlivého provozu, nebo je možné pouze odstranění skutečně nadbytečného provozu.
Na základě mé zkušenosti však všechny vážné subjekty na trhu s tímto nemají problémy: Qrator, DDoS-Guard, Kaspersky, G-Core Labs (dříve SkyParkCDN), ServicePipe, Stormwall, Voxility atd.
S ochranou od operátorů jako Rostelecom, Megafon, TTK, Beeline jsem se nesetkal, podle recenzí kolegů tyto služby poskytují poměrně kvalitně, ale zatím se občas projevuje nedostatek zkušeností: někdy je potřeba něco doladit prostřednictvím podpory operátora ochrany.
Někteří operátoři nabízejí samostatnou službu "ochrany před útoky na úrovni L3/L4" nebo "ochrana kanálů", ta stojí mnohem méně než ochrana na všech úrovních.
Jak dokáže nebodyslužební poskytovatel odrážet útoky o stěnách Gbps, vždyť nemá vlastní kanály?Ochranný operátor se může připojit k jakémukoli z velkých poskytovatelů a odrážet útoky „na jeho náklady“. Za kanál se bude muset platit, ale ne všechny tyto stovky Gbps budou vždy využívány, existují možnosti značného snížení nákladů na kanály v tomto případě, takže schéma zůstává funkční.
Pravidelně jsem obdržel takové zprávy z vyšší úrovně L3/L4 ochrany při podpoře systému hostingového poskytovatele.
Ochrana na úrovni L7 (úroveň aplikace)
Útoky na úrovni L7 (úroveň aplikace) dokážou stabilně a kvalitně odrážet jen jednotlivce.
Mám dostatečně velké zkušenosti s
— Qrator.net;
— DDoS-Guard;
— G-Core Labs;
— Kaspersky.
Oni si účtují poplatek za každý megabit čistého provozu, megabit stojí kolem několika tisíc rublů. Pokud máte alespoň 100 Mbit čistého provozu — to je problém. Ochrana bude velmi drahá. Mohu v dalších článcích říci, jak navrhnout aplikace, aby se na kapacitě ochranných kanálů ušetřilo značně.
Skutečný 'král hory' — Qrator.net, ostatní za nimi zaostávají. Qrator jsou zatím jediní v mé praxi, kdo poskytuje téměř nulové procento falešných poplachů, ale jsou několikrát dražší než ostatní hráči na trhu.
I ostatní operátoři nabízejí kvalitní a stabilní ochranu. Mnoho služeb, které podporujeme (včetně velmi známých v zemi!), je chráněno DDoS-Guard, G-Core Labs a jsou s dosaženými výsledky zcela spokojeni.
Útoky odražené Qrator
Mám také zkušenosti s menšími ochrannými operátory jako cloud-shield.ru, ddosa.net, je jich tisíce. Rozhodně je doporučovat nebudu, protože zkušenosti nejsou velké, povím vám o principech jejich činnosti. Náklady na ochranu u nich bývají často o 1-2 řády nižší než u velkých hráčů. Většinou kupují službu částečné ochrany (L3/L4) od někoho z větších hráčů a dělají vlastní ochranu proti útokům na vyšších úrovních. To může být docela efektivní + můžete dostat dobrou službu za méně peněz, ale stále se jedná o malé firmy s malým personálem, prosím, vezměte to v úvahu.
V čem spočívá složitost odrážení útoků na úrovni L7?
Všechny aplikace jsou jedinečné a je třeba povolit pro ně užitečný provoz a blokovat škodlivý. Jednoznačně se ne vždy podaří odfiltrovat boty, proto je třeba použít mnoho, skutečně MNOHO stupňů čištění provozu.
Kdysi stačil modul nginx-testcookie (), a ten stále stačí k odražení velkého množství útoků. Když jsem pracoval v hostingovém průmyslu, L7 ochranu jsem budoval právě na nginx-testcookie.
Bohužel, útoky se staly složitějšími. testcookie používá kontroly botů na základě JS, a mnohé moderní boty je umí úspěšně projít.
Útočné botnety jsou také jedinečné a je třeba zohlednit specifika každého velkého botnetu.
Amplitudace, přímý flood z botnetu, filtrování provozu z různých zemí (různé filtrování pro různé země), SYN/ACK flood, fragmentace paketů, ICMP, http flood, přičemž na úrovni aplikace/http lze vymýšlet neomezený počet různých útoků.
Celkově na úrovni ochrany kanálů, specializovaného vybavení pro čištění provozu, speciálního softwaru a dalších nastavení filtrování pro každého klienta může být desítky a stovky úrovní filtrování.
Aby správně řešit tento problém a správně ladit nastavení filtrace pro různé uživatele, je potřeba velká zkušenost a kvalifikovaní pracovníci. Ani velký operátor, který se rozhodne poskytovat služby ochrany, nemůže "hloupě házet peníze na problém": zkušenosti je třeba získávat na ležících webech a falešných aktivacích na legitimním trafficu.
Pro operátora ochrany neexistuje tlačítko "odvést DDoS", ale je na výběr z mnoha nástrojů, které je třeba umět správně využívat.
A ještě jeden bonusový příklad.
Server bez ochrany byl zablokován hostitelem při útoku o kapacitě 600 Mbit.
("Ztráta" trafficu není patrná, protože byl napaden pouze jeden web, ten byl na chvíli ze serveru odstraněn a blokace byla zrušena do hodiny).
Tentýž server je pod ochranou. Útočníci se "vzali" po 24 hodinách odražených útoků. Samotný útok se ukázal být ne nejsilnější.
Útoky a ochrana L3/L4 jsou více triviální, závisí hlavně na šířce kanálů, algoritmech detekce a filtraci útoků.
Útoky L7 jsou složitější a originálnější, závisí na napadené aplikaci, schopnostech a fantazii útočníků. Ochrana před nimi vyžaduje velké znalosti a zkušenosti, přičemž výsledek nemusí být okamžitý a ne vždy stoprocentní. Dokud Google nevymyslí další neuronovou síť pro ochranu.
Zdroj: habr.com
