Napadení magazínu – jak odvrátit DDoS

Staráme se o jeden větší globální magazín. Pořád tam desítky redaktorů píšou články, 24/7 all over the globe.

Před pár dny web přestával reagovat v rámci slušnosti a ačkoliv má pro sebe slušný server, šel do kolen.

Dali jsme hlavy dohromady se správcem a zjistili jsme, že armáda botů web vysiluje nesmyslnými dotazy na adresy, které neexistují. DDoS útok jak ze slabikáře. Šlo o naprosto normální dotazy, které nešlo nijak odlišit. Jen jich bylo trochu moc za sekundu.

Navzdory různým úrovním cache se jim dařilo server řádně vytížit.

Navrhli jsme a po schválení provedli následující:

  • ihned jsme zakázali přístup na adresy obsahující /tag/ (za pár hodin jsme ho zase povolili)
  • vyřadili jsme nepotřebné sekce článků ze sitemap webu (štítky; rubriky a archivy majitel v sitemapě chce mít)
  • nasadili jsme statickou html cache pro obsah do roku 2019 (archiv má 10 let), nový obsah se necachuje

Další kroky byly plánovány takto:

  • pokud se bude útok opakovat, zanalyzujeme přístupové logy a identifikujeme crawlery, které web mapují a chystají mapu pro boty, kteří jdou ve druhé vlně
  • zakázat pomocí robots.txt přístup těmto crawlerům (boty nepoznáme, není co zakázat)
  • zakázat stránkování (boti zkoušeli stránkování do absurdně vysokých čísel), resp. vytunit chybové stránku 404

Provedli jsme ihned první tři kroky. Přes noc se web nacachoval, statické html mělo přes 9 GB, poté ji plugin zneplatnil a smazal, začala se vytvářet znovu. Vyladíme.

Útoky ale přestaly v podstatě ihned – boti přišli o sitemapu a pokud poslali vyzvědače, aby sestavili novou, měli bychom je poznat. Resp. budeme přísní a zlí a zakážeme všechny kromě povolených crawlerů (podle nějakého seznamu, který vylepšíme).

Samozřejmě se také zrychlily odezvy serveru, protože vrací hotové html. Dotazů na starý obsah je nakonec jen ~10 %, ale dokázaly bez cache celkem zkomplikovat život.

Nový obsah se stále necachuje. Asi budeme majitele trochu přesvědčovat…

Napsat komentář