Jak jsme byli offline

Posted 16. 12. 2011 / By Petr Soukup / Eshop

Disclaimer: Toto není v žádném případě oficiální vyjádření - jen jsem si chtěl někde postěžovat. Celý popisovaný problém se týkal jen několika našich klientů. A hlavně - linuxu a síťařině až tolik nerozumím, takže popisuju problém tak, jak jsem ho pochopil.

Zhruba před týdnem nás začaly trápit výpadky jednoho serveru a jako příčina byl určen problém s diskem, což mělo vliv na výkon. Žádný problém - eshopy se přehodily na záložní server a disk se vyměnil. Jenže než se stihly vrátit zpátky, tak začal zlobit záložní server. Tentokrát jsme jako příčinu určili přetížení vysokou návštěvností (stejný problém byl i prvně, jen se to špatně sešlo s nepodstatným). Samozřejmě jsem začal nadávat na všechny strany, jak je možné, že nemáme dostatečné záložní kapacity na vánoční špičku. Udělali jsme si před vánoci odhad růstu podle minulých let, ale ten teď vypadal jako silně poddimenzovaný. Hned jsem si říkal, jací jsme idioti, že jsme to neodhadli, když se jinak naším zázemím spíš chlubíme. V menší panice jsme přes noc začali přidávat další servery, aby špičku zvládly. Jenže ono to celé bylo trochu jinak.

Začalo být podezřelé, že na všech serverech kapacity stačí, jen jeden vůbec nezvládá. Eshopy jsme tedy rozdělili mezi volnější servery a tím se problém vyřešil. Nebo jsem si to aspoň myslel, protože další den začalo pravé peklo. První den byl jenom takový nenápadný oťukávací čajíček. Druhý den už byla návštěvnost násobná proti prvnímu a bylo jasné, že buď se nějakému našemu eshopu podařilo pronajmout si reklamní plochu na čele Tomio Okamury, nebo něco není v pořádku.

Jak už asi tušíte, šlo o veselý DDoS útok. Ten funguje tak, že útočník má třeba přes nějaký spyware pod kontrolou tisíce nic netušících počítačů a na pokyn začne posílat miliony požadavků na server oběti. Díky rozptýlení mezi různé adresy a nerozlišitelnost falešného požadavku na zobrazení stránky od regulérního je poměrně komplikované takový útok účinně blokovat. Ve vánoční špičce je pak navíc problém vůbec poznat, na který eshop je útok veden - špička v návštěvnosti na desetinásobek je poměrně běžná a nelze okamžitě říct, zda je to výsledek zmínky v Ordinaci v růžové zahradě, nebo je to cílený útok.

Škatulata, hejbejte se!

V další fázi pak byly útoky cílené přímo na IP adresu, takže jsme se už ani nemohli dopátrat, kdo je vlastně cílem. Zvolili jsme tedy trochu netradiční řešení. Věděli jsme, že když se cíl přesune, tak se po asi 30ti minutách přesměruje i útok. Začali jsme tedy systematicky přesouvat eshopy a sledovat, kam útok půjde. Vylučovací metodou jsme pak seznam obchodů zužovali z 15ti na 12, pak na 8, dále na 4, pak 2 a nakonec nám zbyl jeden. Nechali jsme mu celý server pro sebe a ostatní rozpustili jinam. Tím bylo naštěstí vyřešeno. Kromě tohoto nešťastníka jsou už všichni zase v normálu a všechno jim běží svižně.

S napadaným eshopem se snažíme situaci dále řešit, ale bohužel není moc jak. Podle statistik housingu útok dosahuje až 810Mbps. Server má přípojku s teoretickou rychlostí 1Gbps, takže jednoduchým výpočtem dojdete k faktu, že ikdyby útok úplně ignoroval a zcela správně odmítl všechny falešné požadavky, tak má stejně tak ucpanou linku, že toho moc neudělá. Řešíme to s housingem, který se snaží blokovat útoky už na úrovni firewallu datacentra, ale kvůli různým adresám a kombinování různých metod útoku to zatím nemá moc velký efekt.

Kdo a proč?

Během včerejška se už veřejně začalo mluvit o těchto útocích. Musím říct, že jsem si i docela oddychl když jsem zjistil, že situaci opravdu lépe nevyřešíme, protože konkurence má úplně stejné problémy. Útok byl vedený jakýmsi čínským eshopem se zastoupením v ČR s RC modely proti konkurenčním obchodům. Více je o tom například zde - http://www.rcnoviny.cz/2011/12/ddos-tok-na-strnky-s-rc-modely/

Dokonce jsme se spojili i s dalšími poskytovateli eshopu a snažíme se sdílet informace o problému. To bude asi poprvé, kdy jsme se dostali k nějaké spolupráci :) Tleskám eshop-rychle.cz za vstřícnost.

Takže?

Takže nakonec nejsme úplní idioti a jsme v tom víceméně nevinně. Pro příště jsme zase o něco lépe připraveni a dokážeme reagovat rychleji. Navíc nám přes noc přibyly nové servery, takže eshopy jsou zase o něco svižnější. Ale co si budeme nalhávat - nejsme Seznam nebo server FBI. Máme rezervy na špičky návštěvnosti, máme záložní servery na výpadky, ale zase nemáme rozpočet na to, abychom byli nezbořitelný cloud. A jelikož stejný problém má i konkurence, tak evidentně nikdo nemá. Útočník musel mít slušný rozpočet na přípravu, protože takhle masivní útok se v českých podmínkách moc nevidí.

Nechci to zakřiknout, ale útok dál vesele probíhá a my jsme (až na toho jednoho nešťastníka) v pohodě a všechno běží. Úplně spokojený ale budu, až vyřešíme i toho posledního. Nechci to řešit jako hostingy, které problémový eshop prostě vypnou, ale rád bych zachránil i ten.

Vedlejší efekty

Když začaly padat některé eshopy (bylo to několik úseků zhruba po 30ti minutách), tak to mělo zajímavý vedlejší efekt. Většina postižených klientů byli zrovna ti, kteří nám dlužili třeba čtyři faktury. Výpadek si špatně vyložili a raději je hned uhradili :)

Zajímavé byly také reakce klientů. Většinou zavolali, nechali si vysvětlit kde je problém, zjistili že to řešíme dnem i nocí a popřáli hodně štěstí. Mrzely mě ale poměrně dost agresivní reakce pár klientů hned v počátku. Poskytujeme klientovi dlouhou dobu nadstandardní péči, celou dobu všechno funguje skvěle, úkoly plníme rychle jak to jen jde (často zadarmo), celý rok je dostupnost 100%, atd... Přijde výpadek dlouhý 30 minut a okamžitě se na to všechno zapomíná a hned jsme ti nejneschopnější na světě a je potřeba to okamžitě sdělit světu (protože tím se to vyřeší). Já samozřejmě chápu, že i na chvíli vypadlý eshop je obrovský problém a že to majitele rozčílí. Ale zkrátka mě zamrzí, když se všechna předchozí dobrá spolupráce okamžitě nuluje, protože přišel jeden problém.

Možná je ale problémem právě ta konstantí funkčnost spolupráce. Jinde jsou problémy třeba častější a tak to člověku ani nepřijde až tak závažné, když přijde další. Když je ale ojedinělý, tak je to hned znát.

Dobrou noc

Snad jsem vás tím románem neunudil. Teď je konečně víceméně klid a já se můžu jít po několika probdělých nocích normálně vyspat. Aspoň trochu. Za 6 hodin zase vstávat a řešit pro změnu kočárky. A pak se můžu divit, že na Štědrý den mám nulovou vánoční náladu.

Update: Tak už o tom píše i Lupa
Tags: ddos


O blogu
Blog o provozování eshopů a technologickém zázemí.
Aktuálně řeším hlavně cloud, bezpečnost a optimalizaci rychlosti.

Rozjíždím službu pro propojení eshopů s dodavateli.