reklama
reklama
6. 3. 2013 | poslední aktualizace: 6. 3. 2013  13:01
Internetové útoky: Jak funguje DDoS

DDoS útoky: Primitivní zločin, který se dá pořídit na objednávku za několik tisíc korun

Nedostupnost zpravodajských serverů, vyhledávače Seznam a nově také bank či Pražské burzy má stejný důvod, DDoS útok. Tento článek podrobně vysvětluje, proč je DDoS nebezpečný a jak také útok probíhá.
Hacker, ilustrační foto
Hacker, ilustrační foto
foto: Thinkstock

DoS je zkratka anglického pojmu „Denial of Service“, což se dá přeložit jako „znepřístupnění služby“. Označuje se tak jakýkoliv útok, jehož cílem je danou službu „shodit“, znemožnit její využití komukoliv dalšímu, dočasně nebo trvale. Zkratka DDoS znamená „Distributed DoS“ a označuje poddruh DoS útoku, při němž je útok veden z velkého množství zdrojových počítačů.

Existují v principu dva způsoby, jak podniknout DoS útok: prostým zahlcením oběti příliš velkým množstvím obecně zcela neškodných požadavků a využitím nějaké chyby cílového systému. DDoS útoky není potřeba ani vymýšlet a osobně provádět, lze si je objednat na internetu jako "službu".

reklama

Prosté přetížení aplikace

První varianta DDoS útoku je technicky velice prostá, ale vyžaduje, aby útočník měl k dispozici relativně velké množství zdrojů. Tato varianta vychází z předpokladu, že každý systém (představte si třeba web server jako www.ihned.cz) je navržen na zpracování určitého množství požadavků za jednotku času. Tomu odpovídá způsob naprogramování, dostupný hardware, dostupná konektivita a podobně. Pokud provozovatel serveru předpokládá, že návštěvnost jeho serveru ve špičkách bude třeba 100 požadavků za sekundu, připočte k tomu nějakou rozumnou rezervu a na tuto zátěž svou aplikaci připraví a testuje.

Co se stane ve chvíli, kdy z libovolného důvodu bude požadavků přicházet třeba 500 za sekundu? Odpověď serveru se zpomalí. Těžko říct, jak moc – to záleží na konkrétním systému. Ale na odpověď budete čekat déle, sekundy, desítky sekund. Pokud počet požadavků dále poroste, situace se bude dál zhoršovat, až server (z pohledu většiny uživatelů) přestane odpovídat úplně.

A v takové situaci počet požadavků nejspíše poroste, protože řada uživatelů, unavených zíráním na prázdnou stránku a přesýpací hodiny, po chvíli stiskne tlačítko Refresh, čímž opustí své místo ve frontě a zařadí se znovu na konec. Server ovšem neví, že požadavek byl opuštěn, takže tento zůstane ve frontě a dál zabírá místo.

Podniknout útok tohoto typu je technicky jednoduché, ale organizačně náročné. Pro zasílání požadavků samotných není třeba žádná zvláštní dovednost nebo zákeřnost – jsou to zcela normální, standardní požadavky. Nicméně útočník musí být schopen vyslat dostatek požadavků, což je i pro něj náročné na zdroje – výpočetní výkon, konektivitu a další. Proto se v tomto případě obvykle používá výše zmíněná DDoS varianta, kdy se útočí koordinovaně z mnoha míst (počítačů) a každý jednotlivý počítač se na útoku podílí jenom malou částí.

Přetížení serveru tímto způsobem může nastat nejenom záměrným útokem. Může se stát, že prostě rapidně stoupne zájem o služby daného serveru, z přirozených příčin. Existuje výraz „Slashdot Effect“, který popisuje situaci, kdy nějaký hodně populární server (třeba diskusní server Slashdot, který dal tomuto fenoménu název) odkáže na menší server. Tím vyvolá o menší server zájem, který tento není schopen zvládnout, což ve svém důsledku znamená DoS.

Přeneseně do reálného světa, DoS útok si lze představit jako situaci, kdy se tisíc lidí domluví, že v konkrétní hodinu přijdou do obchodu a nakoupí tam. Jeden každý nákup je zcela v pořádku, ale jejich prostý počet obchod fakticky vyřadí z provozu pro ostatní zákazníky.

Obrana proti tomuto typu útoku je těžká až nemožná. Někdy je možno snadno detekovat požadavky, které jsou součástí útoku, a pak je možné je zablokovat. Třeba že jsou směřovány na konkrétní adresu stránky, pocházejí z konkrétní sítě nebo malého množství IP adres a podobně. Pokud ale nemají jednoduše zjistitelnou charakteristiku, jedinou obranou je prostě mít k dispozici víc zdrojů než útočník, potažmo všichni útočníci dohromady. To v řadě případů není možné a téměř nikdy není ekonomicky smysluplné.

Je to ekvivalent situace, kdy by obchod z předchozího příkladu najednou otevřel místo obvyklých deseti pokladen třeba dvě stě. Ano, je to možné, ale nikdo soudný to neudělá.

Zde je mimochodem jedna z výhod hostingu aplikací v cloudu, jako je třeba Windows Azure, Amazon EC2 nebo Google App Engine. Na těchto platformách lze velmi rychle a pružně měnit počet instancí, a tedy dostupných serverů. Lze tedy kdykoliv prudce zvýšit počet serverů, třeba z deseti na dvě stě. Sice za jistou cenu, ale o několik řádů nižší, než kolik by stálo ty servery nakoupit a nasadit standardním způsobem. A také v řádu minut, nikoliv dnů až týdnů.

Využití chyby

Druhá varianta DoS útoku spočívá v tom, že útočník využije chyby v implementaci cílového systému. Stává se, že cílový systém umožňuje zadat požadavek, jehož zadání je pro klienta (útočníka) jednoduché, ale zpracování je pro server velmi náročné. Případně může existovat požadavek (obvykle nějak nestandardně naformátovaný), který způsobí pád aplikace na cílovém serveru a aplikace zůstane vypnutá, dokud ji někdo ručně nenahodí. K té druhé variantě nicméně u současných, minimálně webových, platforem dochází jenom velmi zřídka.

Představme si například situaci, kdy obětí je server, který má v databázi deset milionů záznamů (lhostejno jakého typu) a nabízí funkci vyhledávání, která zobrazí všechny nalezené záznamy na jedné stránce.

Pokud se útočníkovi podaří zkonstruovat takový dotaz, který vrátí všechny záznamy (nebo jejich valnou většinu), server stráví poměrně hodně času tím, že se pokusí vygenerovat stránku s tabulkou, která bude mít deset milionů řádků.

Odeslat takový požadavek je přitom pro útočníka velice snadné. Pokud bude takové požadavky odesílat paralelně a automatizovaně, stačí mu relativně malé množství prostředků k tomu, aby dokázal škodit.

Přeneseme-li tento případ do reálného světa, šlo by třeba o situaci, kdy zákazník obchodu zjistí, že existuje nějaká operace, jejíž realizace trvá několik minut a kterou může snadno vyvolat. Například vyvolá spor o vrácenou částku a bude trvat na provedení uzávěrky pokladny a přepočítání hotovosti. Což může zabrat desítky minut a stačí velmi malé množství takových zákazníků k tomu, aby jejich požadavky kompletně paralyzovaly chod obchodu.

Obrana proti tomuto typu útoku může být relativně jednoduchá, protože prostě stačí odstranit zdrojovou chybu nebo dočasně odstavit z provozu patřičnou funkci (třeba vyhledávání). Může být ovšem i velmi složitá, pokud se jedná o chybu v nějaké komponentě, která je mimo běžný dosah oběti.

Jak je to v reálném světě

V reálu se často tyto dvě metody kombinují: použije se velké množství počítačů k tomu, aby posílaly víceméně „normální“, ale přesto z principu náročné požadavky. A kde vzít dostatečné množství počítačů? Zde také existuje několik možností (které lze kombinovat).

V první řadě se může stát, že se prostě sejde dostatečné množství lidí, kteří chtějí útok provést. DDoS útok se tak stane jakousi formou digitální demonstrace, nebo chcete-li digitální blokády. Pokud bude dostatečný počet uživatelů pobouřen chováním nějaké firmy nebo instituce, mohou se dobrovolně a vědomě připojit k útoku proti jejím webovým stránkám.

Druhá možnost je, že útočník sice nemá záměrnou masovou podporu, ale má k dispozici botnet. Řada současných počítačových virů (a dalšího malware) funguje tak, že z nakaženého počítače udělá „zombie“, nainstaluje do něj program pro vzdálené řízení, který pak může využívat autor viru. Síti takových „zombie“ počítačů se říká botnet. Lze jim zadat téměř jakýkoliv příkaz, třeba „Začni opakovaně posílat DoS požadavky na tuto adresu“.

Pro získání služeb botnetu není dnes nutné psát vlastní malware, botnety je možné si pronajmout za relativně nízké peníze, je to kvetoucí forma černého trhu. A právě to, že si kdokoliv s několika stovkami či tisíci dolarů může zaplatit útok typu DDoS, představuje velké riziko.

reklama
Zobrazit náhled
Zbývá 1000 znaků
Situace je poměrně jasná (Titánius Ocelkuj)
je třeba investovat prostředky do konfigurace serverů a firewalů....
Neříkám, že nemůžete mít bot po svobodným SW, (Makarov)
ale ten, kdo by ho instaloval už musí být fakt odborník, který...
pekne napsany clanek (Zuzka Fuska)
moc hezky popsane i pro laika, diky za to.
Jen vám expert neřekl, jak odstranit botnety (Makrov)
z vašich Windows.
Re: DDoS útoky: Primitivní zločin, který se dá pořídit na objednávku za několik tisíc korun (Michal A. Valášek)
To je jednoduché: přeinstalovat a příště nebýt idiot. Do trochu...
Zobrazit diskusi
Nejčtenější
reklama
reklama
reklama
reklama