Jak funguje DDoS, hlavní zbraň kyberválky

DDoS, Operation Payback, Wikileaks... Tato slovíčka patří v posledních týdnech k těm nejcitovanějším. Každý ve zkratce ví, co je to denial of service, jak ale vlastně funguje?

Před necelými dvěma týdny měli správci sítí ve společnostech jako PayPal, Visa nebo Mastercard asi hodně rušnou pracovní dobu a neklidné spaní. Právě tehdy DDoS útoky medializovalo hnutí známé jako Operation Payback.

Má za sebou poměrně mladou historii – existuje teprve několik málo měsíců – a vzniklo jako odpověď na činy zvláště amerických autorských svazů. V podstatě se jedná o skupinu uživatelů torrentových sítí, kteří se jednoho dne rozhodli, že koordinovaně zaútočí na weby svých úhlavních nepřátel a použijí k tomu některou z technik DDoS – Distribuovaného Denial of Service, tedy odmítnutí služby.

Denial of service

Co se vlastně pod touto zkratkou skutečně skrývá? Prakticky cokoliv. Termín je to totiž z historických důvodů natolik volný, že v podstatě definuje jakýkoliv postup, pomocí kterého docílíte toho, aby byla jakákoliv služba nedostupná. Jestli na kraji Prahy zastavíte se slovenskou houfnicí Zuzana A 40 a začnete ostřelovat serverovny, ve kterých své poštovní schránky hostuje třeba Seznam.cz, nebo podniknete sofistikovaný SYN útok na nějaký prehistorický systém, je vlastně už jen malý technický detail. Výsledek bude stejný.

zuzanka.png
 Houfnice Zuzana – byl by to sice účinný hardwarový DoS, existují ale lepší způsoby (Zdroj: Kerametal.sk)

DoS útoky se skutečně dělí na ty, které pouze dočasně odstaví službu z provozu a na ty destruktivní, které nevratně poničí hardware. Nicméně máte pravdu, že o houfnicích v bezpečnostních manuálech zpravidla není ani slovo. Destruktivním útokem se má na mysli třeba nenávratné poničení firmwaru u routerů, přepínačů a dalších síťových prvků. Tyto útoky ovšem nejsou zase tak časté, současní výrobci se už totiž z chyb minulosti dostatečně poučili.

Jak se útočilo před lety

Obecně lze říci, že současní útočníci jsou už poměrně rozmlsaní – anebo holt nemají příliš na výběr. Ve starých dobrých časech nevinného internetu konce dvacátého století byste totiž napočítali možná i desítky nejrůznějších specializovaných forem útoků na nízké śíťové vrstvě ISO/OSI modelu. Pokud vám nedej bože už nic neříká, jen připomenu, že v několika vrstvách počínaje hardwarem a konče webovým HTTP protokolem popisuje, co se stane, když u článku vlevo nahoře klepnete na modré tlačítko „Sdílet“. Vřele doporučuji.

Dnes se poměrně často používá prostá hrubá síla a vyšší transportní a aplikační vrstva. Proč ta změna? Historie a softwarový vývoj. Operační systémy byly před patnácti lety prostě mnohem jednodušší než dnes. Útočníci tedy zneužívali známých chyb, což je v současné době a v mnoha případech už nemožné. Ať už díky mnohem modernějším firewallům a dalším síťovým prvkům, tak díky té obrovské hromadě servisních balíčků (nejen) pro Windows.

POD – Ping smrti

Pojďme se podívat na dva nízkoúrovňové historické způsoby DoS, které se dnes ale už prakticky nepoužívají. V minulosti se třeba docela úspěšně zneužíval poměrně populární ping. Jen připomenu, že se jedná o jeden ze základních diagnostických programů, který nám ve vší stručnosti odpoví, jestli je počítač na adrese XYZ dostupný, jestli odpovídá a jak dlouho ta odpověď trvá. Jediné, co ping umí, je odeslání droboučkého paketu – základní datové jednotky internetových sítí. Paket pingu (prostě takový elektronický korespondenční lístek) má velikost několika málo desítek bajtů, běžný datový paket pak dosahovat velikost až 65 kB. A teď zkušební otázka: co se stane, pokud útočník pošle větší paket? Moderní systém ohlásí chybu, ovšem před takovými dvanácti lety byste posláním podobného pingu na web Žive.cz možná zničili celé naše vydání. Říkalo se mu POD – ping of death a dokázal způsobit pád služby nejen na tehdejších Windows, ale i na Linuxu, unixových systémech, v routerech a dalším síťovém harampádí. Jeden jediný paket. Není to hrůza?

ping.png
Pingem dnes pochopitelně nikoho neohrozíte...

Jednodušší formou je prosté zahlcení serveru opakovaným voláním pingu. Hackeři zelenáči už jistě na Windows otevírají příkazovou řádku a píšou příkaz ping www.zive.cz -t, tak jednoduché to ale v dnešní době vážně není.

SYN potopa

Dalším experimentem na nižší komunikační vrstvě byl (a mnohde stále je) třeba SYN flood útok. Ten zneužívá prvního kroku při ustavení TCP spojení mezi dvěma počítači – „handshaku“. Představte si počítač Čeňka Nováka a webový server Živě.cz. TCP je základem běžné datové webové výměny včetně HTTP a FTP. TCP spojení tedy vznikne i v případě, kdy navštívíte naše webovky. Pokud Čeněk do prohlížeče naklepá adresu www.zive.cz, všechny vrstvy ISO/OSI modelu udělají svou práci a otevře se TCP spojení takzvanou SYN zprávou (SYN od slova synchronizace). Jakmile server dostane paket se zprávou, odešle zpět zprávu SYN-ACK (ACK od slova acknowledge = potvrzení) a Čeňkův systém odešle serveru závěrečnou potvrzovací ACK zprávičku. Spojení je otevřeno a váš prohlížeč začne stahovat třeba obrázek z tohoto článku.

syn flood.png
Běžná domluva mezi počítačem a serverem při TCP komunikaci a SYN flood

No dobrá, jak toho ale využít. Jedná se o asynchronní komunikaci, ping-pong, kdy obě strany čekají na odpověď. No a jak tomu už bývá, takové čekání něco stojí. Pokud bude server dlouho čekat na ACK potvrzení od klienta, bude… Bude zbytečně držet systémové prostředky, které by mohl využít pro další spojení! Jak toho docílit? Útočník může vložit do paketu první SYN zprávy špatnou IP adresu odesílatele. Server pak SYN-ACK paket pošle úplně jinam a závěrečnou ACK zprávu skutečně nedostane. Druhou možností je úprava klientu takovým způsobem, aby jednoduše SYN-ACK zprávu ignoroval a server opět bude čekat a čekat… Jako Bludný Holanďan. Když jej pak tímto způsobem začnete bombardovat s obrovskou frekvencí, zahltíte ho a on nebude mít čas na nic jiného. 

Kvantita > kvalita

Dobrou zprávou pro všechny síťaře je skutečnost, že POD i SYN jsou dnes už jen vzpomínkou na dobu skutečných hackerů, kteří si doma hrávali s bity a usínali při rozepsaném assembleru. Dnešní doba je jiná, každá domácnost je k internetu připojená nevídanou rychlostí a internet se z podivného a tak trochu nadšeneckého systému proměnil ve skutečný ekosystém s mnoha vazbami. Jednou z nich je i vazba sociální.

V podstatě máte na výběr. Buď budete geniální rozcuchaný mladík, který úderem do několika málo kláves shodí kdejakou síť, nebo budete zcela průměrný a technicky nevzdělaný surfař, který nenapíše ani jednoduchý „Hello world!“ v PHP, natož aby se piplal v RFC popisech síťových standardů. Oba mladíci ale v praxi dokážou to samé, na straně toho druhého je totiž fenomén jménem internetová komunita.

 

Na videu je vizualizace analytického programu Logstalgia ze záznamů webového serverů. Zatímco vlevo jsou IP adresy a domény klientů,  vpravo je seznam souborů na webovém serveru. Samotný ping-pong vlastně představuje komunikaci mezi klienty a serverem. Pokud se komunikace výrazně zrychlí a soustředí se na některý ze souborů, server (pálka) nedokáže odpovídat ostatním a nebude dostupný. Takto by v podstatě mohl fungovat primitivní DDoS útok na aplikační vrstvě. Další poutavé animace najdete v mém starším článku.

Pokud byste se v roce 1935 domluvili s několika známými a v jeden jediný časový okamžik zatelefonovali na pražské číslo 123, operátorka ústředny by nestačila propojovat spojovací kabely a vy byste způsobili malý telefonní DDoS. Distribuovaný DoS je vlastně velmi hloupý, není ani náznakem vznešený a už vůbec se jeho autoři nemohou nazývat hackery. Je to vlastně pouze povrchní znásilnění kvantity. Pokud dostanete deset špatně mířených facek, bolí to úplně stejně jako jedna dokonalá.

Homo sapines sapiens facebookus

DDoS spoléhá v sílu počtu, v masový a kobercový nálet, samotná kvalita a propracovanost útoku tedy nemusí být vůbec velká. I proto se dnes hromada DDoS bombardování odehrává na aplikační vrstvě. Dejme tomu, že se rozhodnete zaútočit na malý web kamaráda. Na Facebooku si založíte skupinu, která se brzy nafoukne do padesáti tisíc členů, a pak si všichni stáhnou uživatelsky naprosto přívětivý prográmek LOIC. Stačí klepnout na tlačítko a děj se vůle komunitní. Cílový server bude bombardován neskutečným množstvím dotazů. Přitom se může jednat o banality – třeba o žádost ke stažení nějakého obrázku. Pokud ale bude v jeden okamžik ten samý obrázek vyžadovat 50 000 sociálních kamarádů a budou o něj žádat třeba desetkrát za sekundu, máme tu 500 000 otevřených TCP/IP spojení a webový server to pochopitelně neunese.

loic.png
Při nedávných útocích používali fanoušci Wikileaks i LOIC – Low Orbit Ion Cannon

Síla DDoS spočívá v tom, že při DoS útoku jedince může jeho adresu administrátor okamžitě zablokovat. Pokud se ovšem bude na web dotazovat 50 000 různých IP adres, diagnostika útoku je o to těžší. Můžete samozřejmě zablokovat všechny, kteří s takovou nebývalou kadencí žádají stále dokola ten samý soubor, útočníci ale mohou na základě předpřipraveného seznamu žádat třeba v každém kroku jiné soubory.

Na podobném principu fungoval i nedávný útok v rámci dlouhodobé operace Operation Payback. Komunita uživatelů organizovaná skrze IRC pomocí programu LOIC bombardovala servery PayPalu a dalších služeb tak dlouho, až je odstavila. Nemělo to přirozeně dlouhého trvání a během několika desítek minut bylo zase vše v pořádku, společnosti Visa, Mastercard a PayPal ale přišly přinejmenším o kus dobrého renomé. Zvláště poté, co se hromada bezpečnostních analytiků vyjádřila v tom smyslu, že s dobrou konfigurací síťových prvků by Operation Payback nemohl nikdy uspět. PayPal, Visa i Mastercard jsou příliš velké ryby na to, aby se na podobné útoky nemohly řádně připravit.

Javascriptový DDoS?

Příslušníci Operation Payback později v uživatelském komfortu DDoS útoků zašli ještě o kus dál. Po síti před pár týdny začal poletovat odkaz na JS LOIC, tedy na program, který celý běží na webu a je napsaný pomocí Javascriptu!

Některá média se tohoto případu zhostila opravdu senzacechtivě, skutěčný potenciál takové aplikace je ovšem velmi malý. Na původní stránce už skript neexistuje, jedná se ale o běžný HTML soubor, takže je v mnoha kopích na hromadě dalších webů. Nakonec ho najdete i v cache paměti vyhledávače Google.

js loic.png
Javascriptový JS LOIC ve verzi 0.1. Už ale existuje lepší...

Každý, kdo se s Javascriptem seznámil alespoň na střední škole, při nahlédnutí do zdrojového kódu zjistí, že se v praxi jedná pouze o velmi jednoduchou časovou smyčku, která se snaží z webu PayPalu stále dokola stahovat jistý obrázek. I v tomto případě je tedy hlavní zbraní množství – množství volání, které bude mít ovšem jistý smysl pouze tehdy, pokud v jeden okamžik spustí JS LOIC opravdu hodně velké množství surfařů. Každé volání je přitom zcela stejné, webový server a firewall tedy mohou brzy zareagovat a když bude klient XYZ po sté vyžadovat ten samý soubor, prostě jej nadobro odstřelí. Spojená režie při tomto odstřelu bude mnohem menší, než aby se webový server skutečně zapojil do práce a hledal kdesi v paměti kýžený obrázek.

Špinavá bomba pro hackerské lenochy

Samozřejmě i dnes existuje hromada pokročilých technik DoS a DDoS útoků, jednoduchost ale vyhrává i zde. DDoS je jako malá špinavá jaderná bomba. Stačí pár kilogramů vyhořelého paliva z Dukovan a uděláte v podstatě stejnou paseku, jako něco tak hrozivého a přitom technicky neskutečně dokonalého – jako skutečná puma a starý „dobrý“ DoS z dob, kdy ještě hackeři na koních projížděli americkou prérií…


Tento článek obsahuje pouze základní seznámení s několika historickými a současnými způsoby útoku na nedostatečně zabezpečený server. Samozřejmě najdete celou hromadu dalších postupů, jak úspěšně zaútočit, to je ale už nad rámec tohoto článku.

Diskuze (47) Další článek: Acer, Asus i Lenovo plánují tenkou odvetu proti MacBooku Air

Témata článku: , , , , , , , , , , , , , , , , , , , , , , , ,