DoS Rána pod pás jménem DoS

31. 8. 2005

Sdílet

Jedním z nejrozšířenějších, nejnebezpečnějších a nejhůře zastavitelných způsobů napadení ve světě internetu jsou útoky Denial of Service (DoS, odepření služby), resp. DDoS (Distributed DoS). Zákeřnost útoků DoS spočívá v tom, že není napaden skutečný cíl, ale přístupové zdroje k němu. Cíl tak zůstává netknutý, ale přesto ho není možné regulérně využívat.



Jak již bylo uvedeno výše, útok DoS nesměřuje proti skutečnému cíli, ale blokuje

přístupové cesty k němu. Vlastní cíl totiž bývá zpravidla velmi dobře chráněný a

pro útočníka nedostupný nebo nedostižný. Ovšem přístupové cesty k němu

(komunikační linky) je velmi obtížné či spíše nemožné chránit nebo blokovat.

Proto je útočníci obsazují (zpravidla zahlcují), čímž způsobí nedostupnostJak již bylo uvedeno výše, útok DoS nesměřuje proti skutečnému cíli, ale blokuje

přístupové cesty k němu. Vlastní cíl totiž bývá zpravidla velmi dobře chráněný a

pro útočníka nedostupný nebo nedostižný. Ovšem přístupové cesty k němu

(komunikační linky) je velmi obtížné či spíše nemožné chránit nebo blokovat.

Proto je útočníci obsazují (zpravidla zahlcují), čímž způsobí nedostupnost

(odepření) jinak fungující služby.

Představte si úplně jednoduchou situaci. Máte e-mailovou schránku o určité

kapacitě a někdo se rozhodne, že ji vyřadí z provozu útokem DoS. Takže do ní

začne posílat nepřetržitý proud e-mailů ze své schránky. Ale to by pravděpodobně

nestačilo, proud je proto několikanásobný – z mnoha různých schránek (toto je

vlastně princip útoku DDoS, Distributed DoS). Vy se nejprve pokusíte tyto

e-maily odfiltrovat (což je obtížné, pokud útočník dokáže u každého z nich

poměrně jednoduchým způsobem zfalšovat parametry jako adresu odesílatele nebo

předmět zprávy). Možná i zvětšíte velikost schránky, abyste byli schopni se s

touto záplavou vypořádat.

Po krátké chvíli však zjistíte, že příval e-mailů sílí a že váš server se s ním

není schopen vypořádat – prostě může přijmout třeba deset tisíc e-mailů za

hodinu, ale někdo vám jich posílá desetkrát tolik. Server pak devadesát tisíc

e-mailů odmítne přijmout – a mezi nimi jde o devadesát procent regulérních

e-mailů (třeba dotazy obchodních partnerů, objednávky, vyžádané nabídky apod.).

Pokud se útok nepodaří zastavit, můžete svoji e-mailovou schránku odepsat,

nechat ji napospas útočníkům a založit novou.

Tento příklad je velmi výstižný. Hacker se vaší schránky v podstatě ani nedotkl,

a přesto ji vyřadil z provozu. Přitom velkým nebezpečím útoků DoS je, že jsou

relativně jednoduché. Rozhodně jsou jednodušší než pokusy o proniknutí do

systému. Zpravidla také jde o zlomyslný, záměrný a předem pečlivě připravený

útok. Situaci pak útočníkům usnadňuje i skutečnost, že neexistuje dlouhodobě

spolehlivá ochranná metoda.

U e-mailové schránky je problém s nedostupností snadno pochopitelný, ale co na

tom, že nějaký útok vyřadí www server nebo router? Celý problém se v žádném

případě nedá odbýt mávnutím ruky, protože mnoho firem má internet jako hlavní a

vlastně i jediné pole působnosti: Amazon, eBay, Google, Yahoo! apod. (Příklady

podobných firem na internetu bytostně závislých přitom najdete i u nás.) Každá

hodina mimo provoz je přitom pro podobné firmy drahá a mnohdy znamená odliv

zákazníků, kteří nechtějí čekat, ke konkurenci.

Kromě toho se na internetu nachází mnoho kritických služeb. Jde třeba o

ověřování totožnosti při bankovních transakcích, kontrola solventnosti, privátní

sítě VPN, lékařské konzultace, daňové záležitosti aj. Ve chvíli, kdy se chystáte

podat po internetu daňové přiznání a blíží se poslední možná „hodina H“, tak vás

jistě nefunkční server nepotěší. Stejně tak vám neudělá radost, když budete

chtít odeslat těsně před uzávěrkou nějakého výběrového řízení svoji nabídku a

zjistíte, že je komunikační linka „ucpaná“, protože na ní „sedí“ hacker.

Dokonce už byly v této oblasti zaznamenány i vyděračské útoky. Společnost

(zpravidla úzce provázaná s internetem) se stala cílem intenzivního, leč

krátkého DDoS útoku. A vzápětí jí byla učiněna nabídka – pokud máte zájem na

tom, aby se tato situace neopakovala ve větším a především déle trvajícím

měřítku, zaplaťte takovou a takovou částku.

V současné době je moderní v souvislosti se všemi útoky na internetu připomínat

terorismus, který je v reálném světě na vrcholu zájmu. Nejinak je tomu i v

případě DoS útoků. Faktem je, že zatím nikdy nebyly použity k opravdovému

kyberteroristickému útoku, ale na druhé straně nesmíme zapomínat, že tato

možnost existuje. Naše společnost je založena na komunikaci a výměně informací.

Pokud by se někomu podařilo zmapovat a následně zablokovat komunikační kanály

třeba u některé významné burzy, mělo by to pro ekonomiku celého světa alespoň

krátkodobě významné následky.

Navíc nejméně jednou už došlo k ohrožení lidských životů po útoku DoS – když se

jeho cílem staly servery jistého texaského přístavu, které měly připlouvajícím a

odplouvajícím lodím poskytovat informace o počasí a navigační údaje. Problém se

naštěstí podařilo vyřešit dříve než mohlo dojít ke skutečné kata-

strofě, nicméně k vážnému ohrožení opravdu došlo.

Stejně jako jsou pestré způsoby DoS útoků (viz níže), jsou pestré i pohnutky,

které vedou k jejich provedení. Často je to msta (zneuznaný bývalý zaměstnanec),

vyjádření osobního postoje (slavné vzájemné výpady příznivců různých operačních

systémů apod.), pomoc někomu (v rámci nekalého konkurenčního boje) nebo třeba

snaha o restart systému (po předchozí instalaci trojského koně či jiného

škodlivého kódu). Ztráty přitom vznikají v různých oblastech: útok snižuje

dostupnost určité služby, což v mnoha případech vede k odlivu tržeb či

návštěvníků (tedy možných zákazníků). Dále pak lze ke ztrátám přičíst nutnost

provedení následné analýzy a především vlastní řešení problému.





Kvarteto základních DoS útoků

V současné době rozeznáváme čtyři základní způsoby DoS útoků, s nimiž se lze v

praxi setkat. První z nich je útok pomocí obsazení přenosové kapacity. Je to

velmi účinná a jednoduchá metoda, kdy dojde k zablokování přístupu k určité

službě. Útočník prostě vytvoří takový provoz, který plně vytíží přístupovou

cestu, čímž vytěsní ostatní (regulérní) uživatele. Jednou z možností je zahltit

přístupovou

cestu, pokud má útočník k dispozici silnější linku. To je ale spíše vzácnost, a

tak využije několika slabších linek k tomu, aby přístup zahltil nebo alespoň

výrazně ztížil. Druhá varianta je ale zase složitější na koordinaci a znalosti

útočníka.

Dalším typem útoku je přivlastnění systémových zdrojů. „Cílem hry“ v daném

případě není zahltit přístupovou linku, ale spotřebovat limitované zdroje oběti.

Tedy třeba procesorový čas, paměť serveru či volné místo na disku. Útočník v

takovém případě vytváří (korektně či nekorektně) stav, kdy získává podstatnou

část systémových zdrojů, takže na regulérní uživatele zbude jen zanedbatelná

kapacita.

Třetím typem DoS útoku je zneužití chyb v programech. Tyto chyby přitom mohou

být známé nebo nově objevené. V prvním případě jde zpravidla o servery, jejichž

správci zanedbávají záplatování. Vlivem chyby nedokáže program reagovat na

neobvyklou situaci a dochází k jeho zhroucení, zacyklení, pádu či jinému

nekorektnímu chování. Důsledek je ale zřejmý: regulérní uživatel služby k ní

nemůže získat přístup.

Čtvrtým a zároveň posledním typem DoS útoku je napadení DNS a systémů směrování

paketů. V podstatě dojde k tomu, že na DNS serverech dojde ke změnám záznamů o

IP adresách – tyto jsou změněny tak, že veškerý provoz je upraven ve prospěch

útočníka nebo spřízněného subjektu (který ze situace samozřejmě získává nemalý

prospěch), nebo že žádosti vedou do „slepé uličky“ (tady sice útočník přímý

prospěch nezískává, ale postižený subjekt utrpí škodu). Při provedení tohoto

útoku je zneužívána skutečnost, že manipulace se směrovacími tabulkami není

nijak obtížná, neboť protokoly RIPv1 nebo BGPv4 mají velmi slabou autentizaci. K

akceptování změny jim tak stačí jen požadavek z podvržené IP adresy, která bývá

pohříchu jediným autentizačním prvkem. Útočník pak relativně snadno umístí

nesprávnou informaci do odkládací paměti jmenného serveru. A všem žadatelům jsou

následně poskytovány mylné informace ohledně směrování.

Někdy se také uvádí ještě pátý případ DoS útoku, a to útok na DNS servery,

jejichž vyřazení z provozu znamená ztrátu většiny internetového i e-mailového

provozu. Ve skutečnosti ale nejde o pátý typ útoku, nýbrž o cíl útoku. Vlastní

DoS útok proti DNS serverům je pokaždé vedený některým z výše uvedených způsobů.

Speciálním typem DoS útoků jsou pak již výše zmíněné distribuované útoky –

Distributed DoS, zkráceně DDoS. Jejich nebezpečnost se násobí tím, že jsou

vedeny z různých směrů, přičemž zpravidla využívají metody obsazení přenosové

kapacity. V případě DDoS je velmi obtížné zastavit útočníka, protože své síly

rozloží tak, aby působily z mnoha směrů. Podobný útok ovšem vyžaduje značné

technologické znalosti. Navíc je zde problém distribuce útočných nástrojů a

koordinace jejich aktivity. Běžné DoS útoky totiž zvládne díky snadno dostupným

nástrojům na internetu kdekdo. „Odměnou“ útočníkovi za zvládnutí technologie a

techniky DDoS je pak skutečnost, že výsledný útok je zpravidla úspěšný a těžko

odstranitelný.

Krásně je to vidět na příkladu různých internetových červů, kdy se třeba CodeRed

(objevený v červenci 2001) dokázal rozšířit na něco kolem 350 000 serverů a

následně spustil DDoS útok vůči doméně www.whitehouse.gov. Nebo Blaster (srpen

2003) zaútočil z několika set tisíc strojů proti doméně www.windowsupdate.com. V

prvním případě řešili správci problém tak, že změnili IP adresu příslušné

domény, protože útok směřoval vůči ní – když pak došlo k napadení (CodeRed se

připravil o výhodu momentu překvapení tím, že neútočil ihned, ale až po nějakém

čase), útok směřoval do prázdna. V případě kódu Blaster pak byla situace trochu

problematičtější, protože útok směřoval přímo proti dotyčnému názvu. Majitel

domény ji proto musel uzavřít a veškerý provoz směřovat na subdomnénu

windowsupdate.microsoft.com. To nebyl zase tak velký problém, protože původní

doména sloužila stejně spíše k přesměrovávání na tuto adresu. Mimochodem tato

událost byla posledním impulsem, který přiměl největšího světového výrobce

softwaru k vypsání odměny za informace vedoucí k dopadení pisatelů škodlivých

kódů.





Takto vypadají DoS útoky…

Každý útok se skládá ze dvou fází. První je příprava, druhou je vlastní

provedení. Příprava zahrnuje jednak mapování terénu (nechráněné porty,

zranitelné služby, chyby v operačním systému…) a jednak instalaci příslušných

útočných programů (třeba i pomocí trojských koní a červů apod.). Poté už jsou

dveře vlastnímu útoku otevřené.

Hojně vyžívaným typem DoS útoku je tzv. Smurf Attack (šmoulí útok). Ač jeho

název nezní kdovíjak hrůzostrašně, je velmi nepříjemnou záležitostí. Jedná se o

útok, jehož cílem je pomocí dalších počítačů zahltit určitý server. V praxi jsou

možné dva modely šmoulího útoku. Především je zde možnost poslat ICMP echa (tzv.

ping) se spoofovanou (podvrženou) adresou na velké množství počítačů. Každá z

nich pak přebere pakety a odpoví na ně. Tedy odpoví na podvrženou adresu – a

protože odpoví korektním způsobem, je výsledný tok dat vyšší než tok dat

odeslaný hackerem. Proto se těmto počítačům využívaným k provedení útoku někdy

také říká „amplifiers“ – zesilovače útoku.

Druhý způsob útoku smurf attack je možné provádět proti host serveru. Spočívá v

tom, že útočník vytvoří velké množství speciálních ICMP požadavků, které pošle

na příslušný server. Vzhledem k tomu, že veřejný paket nemá konkrétního

adresáta, je následně přebrán všemi adresami v síti, které na něj odpovídají (a

nevědomky tak slouží jako zesilovače útoku). Konečný efekt je tedy stejný jako v

předchozím případě.

Velmi podobným typem útoku je tzv. Fraggle, který funguje v podstatě stejně, ale

nepo-

užívá pakety ICMP, nýbrž UDP. Vlastně se nejedná o žádnou novinku, ale o

jednoduchý přepis zdrojového kódu smurfu. Takže není divu, že se vzápětí objevil

i tzv. Papasmurf Attack („útok taťky šmouly“). Ten zvládá zneužití ICMP i UDP

(může přitom pracovat buď s oběma, nebo pouze s jedním vybraným). Mimochodem,

oběti tohoto typu útoku jsou vždy dvě – jednak je to vlastní cíl a jednak

počítače použité k jeho provedení (zesilovače).

Zjistit, zda konkrétní počítač či počítače není možné zneužít k výše uvedeným

útokům jako „zesilovače“, lze poměrně snadno na www.

netscan.org. Obranou je mimo jiné zákaz všech paketů s všeobecnou adresou na

firewallu.

Výše uvedené útoky řadíme do kategorie útoků provedených hrubou silou – a sem

můžeme zařadit i UDP Flood (UDP záplava). Spočívá ve zneužití služby, která pro

testovací účely dokáže generovat pro každý přijatý paket sérii znaků – a pokud k

tomu dokážete přidat UDP echo službu jiného systému, která odpovídá na každý

přijatý znak, neštěstí je hotovo. Výsledkem je totiž nepřetržitý proud dat mezi

dvěma systémy.

Pokud chcete útoku UDP Flood zabránit, máte dvě možnosti. První je zakázat UDP

na každém uzlu sítě, druhou je aktivovat na firewallu službu filtrující všechny

UDP požadavky. Nedoporučujeme zakázat všechny UDP (v interní síti totiž můžete

odmítnout i legitimní aplikace), ale stačí zákaz přístupu UDP služeb z

internetu. Tím zabráníte příchodu UDP paketů s podvrženými parametry.

Dále jsou zde útoky, které využívají nedostatky ve specifikaci TCP/IP. Jinými

slovy: jde o útoky, které se zaměřují na nedokonalosti v příslušných

protokolech. Příkladem budiž tzv. SYN attack. Než si jej popíšeme, pojďme se

podívat na způsob, jakým TCP/IP navazu-

je spojení. Tento proces je označovaný jako Three Way Handshake („třícestné

potřesení rukou“) a probíhá tak, že aplikace, která chce komunikovat, posílá

příjemci synchronizační paket SYN. Příjemce odpovídá potvrzovacím paketem

SYN-ACK s požadavkem synchronizace. A nakonec iniciátor posílá zpět

synchronizační a potvrzovací paket ACK. Spojení je navázáno a je možné vyměňovat

data.

Ještě je potřeba podotknout, že v praxi cílový systém používá tzv. backlog queue

(frontu nevyřízených požadavků). Tato obsahuje všechny požadavky, na které byla

zaslána odpověď SYN-ACK a od kterých se očekává akceptace ACK. Kamenem úrazu

přitom je, že tato fronta bývá zpravidla relativně malá a že jakmile je plná,

systém musí ignorovat všechny nově příchozí požadavky o komunikaci SYN, protože

si je nemá kam odkládat. (SYN-ACK jsou vyřazeny z fronty jen v případě, že

přijde akceptace ACK nebo vyprší časový limit, který je ovšem zpravidla nastaven

na relativně dlouhou dobu.)

Správně začínáte tušit, že cílem SYN útoku je zaplnit backlog queue požadavky,

na které se systém nemůže dočkat odpovědi a které následně znemožní příjem

korektních požadavků o komunikaci. Hacker zkrátka posílá velké množství

požadavků SYN (nejlépe s neexistující IP adresou, čímž je zaručeno, že na

SYN-ACK požadavky nemůže dorazit odpověď), čímž zahltí příslušný server pro

regulérní provoz. Backlog queue je stále plná „legitimních“ požadavků a ostatní

zájemci o komunikaci mají zkrátka smůlu.

Podrobnosti o SYN útoku plus informace o obraně lze nalézt ve článku „Internet

Server Unavailable Because of Malicious SYN Attacks“ na

http://support.microsoft.com/sup­port/kb/articles/q142/6/41­.asp. Obranou je též

instalovat bezpečnostní záplaty a používat nejnovější verze softwaru, protože

SYN útok je velmi jednoduchý a primitivní, takže se s ním dokáží výrobci

aplikací vypořádat (úpravami délky fronty nebo časového limitu pro její

vyprazdňování). Ke škodě není ani překonfigurování firewallu tak, aby zachytával

všechny pakety s neplatnými IP adresami.

Variací SYN útoku je Land Attack, kdy dochází ke zfalšování IP adresy tak, že se

tváří jako IP adresa serveru, na který je vznášený požadavek. Ten tak posílá

SYN-ACK sám sobě – ale protože se nesnažil komunikovat, neodpovídá na ně.

Výsledek je stejný jako u SYN útoku: přeplněná fronta a nemožnost komunikace s

korektními uživateli.

Posledními typy útoků, s nimiž se lze běžně setkat a o nichž bude dnes řeč, jsou

útoky využívající chyby v implementaci protokolů TCP/IP. Prvním z nich je Ping

of Death (ping smrti). Jak víme, ping se běžně používá pro zjištění, jestli

nějaký server či počítač pracuje. Ve specifikaci IP protokolu je ale povolená

maximální velikost pingového paketu 65 536 bajtů. S jejím překročením se mnoho

systémů nedokázalo vypořádat, takže když hacker poslal ping větší než výše

uvedená hodnota (pro korektní poslání takovéhoto pingu není důvod), způsobil

havárii, restart či „zatuhnutí“ tázaného systému.

Chybu v implementaci TCP/IP využívá také Teardrops Attack (útok kapek slz). Také

zde hacker provádí úkon, ke kterému v běžném provozu není důvod a který by neměl

nastat. IP paket bývá totiž z různých důvodů po cestě internetem rozdělen na

menší části, z nichž je na cílovém počítači složen do původní podoby a

velikosti. Každá z těchto částí pak obsahuje položku s informací o tom, kterou

část paketu nese (např. tento IP paket obsahuje bajty 201 až 400 z původního

paketu). Při Teardrops Attacks je nějaký IP paket záměrně rozdělen do několika

částí, a to tak, aby se navzájem překrývaly. Zatímco v korektním provozu na sebe

navazují, v tomto případě je cílový stroj nedokáže zpracovat, neboť s touto

situací nemusí počítat – výsledek je stejný jako v předchozím případě (havárie,

restart, zatuhnutí systému).

Oba posledně jmenované typy útoků jsou už starší záležitostí, takže by si s nimi

měly všechny nové aplikace s příslušnými záplatami bez potíží poradit.





Další úroveň:

DDoS útoky

Na předchozích řádcích jsme zmínili nástroje používané k DoS útokům. Pro

realizaci útoků DDoS jsou používány nástroje víceméně stejné, ale přece jen tu

je drobný rozdíl: před vlastním útokem je zapotřebí zajistit jejich instalaci na

několik tisíc, nezřídka i desítek tisíc počítačů. Z nich je pak útok veden. Pro

usnadnění takovéto rozsáhlé distribuce vzniklo několik nástrojů, které se v

hackerské komunitě značně rozšířily.

DDoS útoky jsou ve většině případů dvouúrovňové: útočník řídí ze svého hlavního

počítače (master), kterých může být výjimečně i více, celou svoji síť „spících

agentů“ zombie. Těm se zpravidla už při instalaci zadá IP adresa, na kterou

budou útočit, a čas, kdy se tak stane. Novější nástroje umožňují tyto parametry

průběžně měnit, takže jednou infikovaný počítač zombie je použitelný k

opakovaným útokům na různé IP adresy nebo je možné intenzitu útoku průběžně

měnit.

Jedním z nejpoužívanějších nástrojů je TFN (Tribe Flood Network), který byl

původně vytvořen jistým německým hackerem s cílem ukázat zranitelnost

počítačových sítí. Pro svoji jednoduchost a snadnou obsluhu se ovšem velmi

rychle rozšířil a získal v hackerské komunitě nebývalou popularitu, mimo jiné

stál za řadou masivních útoků proti známým světovým serverům.

TFN byl historicky první nástroj pro provádění DDoS útoků, když využíval

dvouúrov-

ňovou strukturu: útočník infikoval a ovládal přímo svoji skupinu zombie počítačů

(při tří-

úrovňové struktuře je mezi ním a skupinou zombie ještě menší skupinka pomocných,

tzv. master počítačů, takže ovládání zombie je rychlejší a útočník se hůře

stopuje). Té dával příkazy, kdy, proti jakému cíli a jakým způsobem (SYN attack,

Ping of Death, UDP Flood aj. – viz výše) zaútočit. Samozřejmou vlastností

programu je podvržení IP adresy. TFN komunikuje pomocí paketů ICMP ECHO a ICMP

ECHO REPLY.

Z nástroje TFN se postupem času vyvinul TFN2K (Tribal Flood Network 2000), což

je jeden z nejsofistikovanějších nástrojů pro provádění DDoS útoků. Podobně jako

TFN je schopen provádět celou škálu DoS útoků. Co je ale zajímavé: komunikace

(děje se pomocí TCP, UDP a ICMP paketů) mezi útočníkem a počítači zombie probíhá

šifrovaně pomocí algoritmu ČÁST, takže se špatně odhaluje nebo dekóduje. Pokud

je útok objeven, odvádí pozornost na smyšlené cíle pomocí podvržených paketů.

Program TFN2K byl původně vytvořen pro unixové prostředí, ale nedávno se dočkal

své konverze i pro Windows, což z něj činí výrazně větší problém než doposud.

Dalším DDoS nástrojem je Trin00, který sice patří mezi starší nástroje, ale

dodnes velmi hojně používané. A to i díky opakované aktualizaci – starší

generace třeba používaly jednoduše zašifrovaná hesla, takže útočníky bylo možné

relativně snadno vystopovat, v novějších verzích už tomu tak není. Trin00 použí-

vá tříúrovňovou architekturu (viz výše), čímž útočníka ještě více chrání.

Typicky komunikuje na portech 1524 TCP, 27665 TCP, 27444 UDP a 31335 UDP. Přes

svoji rozšířenost ovšem nemá tento program další pokročilé funkce jako třeba

maskování komunikace nebo zdrojových adres. Zvládne pouze jediný DoS útok, a to

UDP Flood.

Ostnatý drát, alias Stacheldraht je pokračovatelem výše zmíněných útoků (podobně

jako TFN má celou škálu útoků DoS, podobně jako TFN2K šifruje komunikaci a

podobně jako Trin00 používá tři úrovně komunikace). Stacheldraht využívá

protokoly TCP a ICMP. Jeho největší výhodou oproti ostatním nástrojům je ale

fakt, že má schopnost se upgradovat – dokáže své stávající soubory smazat a na

jejich místo stáhnout z předem určeného systému nové verze.

Jeden z novějších pokusů o vytvoření DDoS nástroje je Shaft, který svým způsobem

představuje vylepšený Stacheldraht. Především ale umožňuje přepínat tzv. handler

servery a porty, což činí útočníka obtížněji detekovatelným.





Obrana před DoS a DDoS

Různým tipům a radám, jak se proti DoS/DDoS útokům bránit, se věnujeme v

samostatném vloženém článku. Takže si připomeňme jen několik zásadních rad.

Především: nejlepší problém je takový, který nenastane, takže věnujte maximální

pozornost prevenci.

Stát se cílem podobného útoku je totiž nepříjemné, neboť většina běžných

opatření jej nezastaví. Proč tomu tak je? Protože DoS/DDoS využívá zpravidla

korektní požadavky, ovšem se záměrem dosažení nekorektních cílů (odepření

služby). A eliminovat korektní prostředky je vysoce nežádoucí.

Nicméně výše uvedené samozřejmě neznamená, že musíme trpělivě čekat s rukama

složenýma v klíně, až se nějaký podobný útok objeví. Mezi základní preventivní

opatření přitom patří třeba notoricky opakované záplatování nebo používání

nejnovějších verzí operačních systémů či programů (které se zpravidla poučí z

chyb minulých a počítají s nimi). Rozhodně ale mějme připravený „krizový scénář“

– co dělat v případě, že se DoS útok objeví. Předem připravené postupy a

komunikační linky jej totiž dokáží zcela eliminovat nebo alespoň výrazně omezit

následky.



Nejčastější chyby, které vedou k DoS

útokům, jsou následující:

n Spoléhání se pouze na firewall.

n Spoléhání se na skutečnost, že bezpečnostní problém sám od sebe pomine/zmizí,

bude-li ignorován.

n Uplatňování impulzivních opatření, která sice jsou účinná, ale pouze ve velmi

krátkodobém horizontu. Problém se tak rychle objeví znovu.

n Neschopnost vypořádat se s operačními aspekty bezpečnosti. Jinými slovy: jsou

provedeny nějaké úpravy, ale nejsou vytvořené „na míru“ operačním potřebám

příslušného systému, takže buď omezují provoz, nebo se zcela míjejí účinkem.

n Neschopnost určit skutečnou hodnotu některých komodit a následné podcenění

problému („DoS útok pro nás nepředstavuje žádnou hrozbu, nemůže nic ohrozit“).



Jak už bylo uvedeno výše, ani sebedůslednější dodržování různých doporučení a

opatření nikdy nezaručí, že se nestanete obětí DoS útoku. To je bohužel daň za

koncepci protokolů TCP/IP, která na jedné straně přispěla ke skutečně masovému

rozšíření internetu – na straně druhé však má i svá slabší místa. Proto je

důležité být připravený, neboť připraveným – jak známo – štěstí přeje. 5s0043/jp

o





Kapitoly z historie DoS útoků



1995 – Hackeři na internetu dokázali způsobit „shození“ některých počítačů

pomocí útoku Ping of Death. Přestože DoS útoky byly teoreticky popsané už dříve,

teprve nyní přešly do praxe.

1998 – Objevují se další typy útoků, především smurf attack.

květen 1998 – Objevují se první útoky DDoS, tedy již dříve známé útoky DoS,

ovšem vedené z více míst pro zvýšení účinnosti. Jen o něco později jsou podobným

způsobem napadeny počítače NASA, amerického námořnictva a desítek univerzit.

1999 – První varovné zprávy o útocích vedených z počítačů, na které hackeři

umístili své programy bez vědomí majitelů/uživatelů. Vznikají tak zombie.

září 1999 – Zveřejněna první analýza DDoS programu Trin00.

říjen 1999 – Zveřejněna analýza DoS programu TFN.

únor 2000 – Velký koordinovaný DDoS útok vyřazuje na několik hodin z provozu

servery jako Yahoo!, eBay, Amazon a několik desítek dalších. Úřady dokázaly

útočníka zadržet: byl jím patnáctiletý Kanaďan s přezdívkou mafiaboy, který

dokázal k provedení útoku zneužít počítače v University of California.

červenec 2001 – Internetový červ CodeRed se rozšířil na statisíce počítačů a

odtud zahajuje útok proti doméně www.whitehouse.gov.

říjen 2002 – Mohutný DDoS útok zasahuje třináct root serverů internetu na světě,

přičemž pět z nich krátkodobě vyřazuje z provozu a několik dalších je citelně

zasaženo. Kdyby došlo k dlouhodobějšímu vyřazení všech třinácti, mělo by to pro

internet velmi neblahé následky (praktickou nemožnost dlouhodobě komunikovat

právě pomocí internetu).

březen 2003 – Červ Deloader infikoval během jediného dne 18 tisíc počítačů, z

nichž obratem vytvořil síť zombie pro DDoS útoky.

srpen 2003 – Červ Blaster a několik jeho verzí infikovalo zhruba půl miliónu

počítačů, z nichž byly následně napadeny stránky společnosti Microsoft.





Jak se před DoS/DDoS útoky chránit?

Pravidelně kontrolujte instalování dostupných bezpečnostních záplat. Toto je

ostatně pravidlo, které platí nejen pro případ prevence proti DoS/DDoS útokům,

ale i proti dalším bezpečnostním hrozbám. Stejně tak se doporučuje používat

nejnovější verze programů a systémů, které byly navrhovány už s přihlédnutím k

odolnosti vůči určitým typům útokům.

n Na routeru je vhodné nastavit pravidlo, že žádný první paket z jakékoliv IP

adresy není vpuštěn. Toto příliš nepomáhá u DoS, ale hodně u DDoS, které často

falšují IP adresu odesílatele (a zpravidla ji používají právě pouze jednou, než

vygenerují další). Přitom regulérní komunikace dotčena není, protože TCP

zajišťuje při běžném provozu poslání prvního paketu i podruhé.

n Aktivujte na firewallu službu filtrující všechny UDP požadavky. Nedoporučuje

se zakázat všechny UDP (v interní síti totiž můžete odmítnout i legitimní

aplikace), ale stačí zákaz přístupu UDP služeb z internetu. Tím zabráníte

příchodu UDP paketů s podvrženými parametry.

n Vypněte nepoužívané nebo nepotřebné služby, čímž snížíte šanci, že právě ty

budou zneužity útočníky pro napadení systému.

n Implementujte filtry směrování. Toto sníží zranitelnost vůči některým typům

útoků, které využívají jejich absence (třeba útoky smurf attack zneužívají toho,

že jsou schopné zahltit síť kvůli absenci routerů).

n Znemožněte zápis na disk (jakýkoliv zápis na disk rovná se zvýšené riziko

přivlastnění systémových zdrojů útočníkem, protože prostor na disku je konečný)

a zaveďte kvóty (časové, velikostní aj.), aby jejich absenci nemohl útočník

využít ve svůj prospěch.

n Nastavte kontrolu nezvykle vysokého využití procesoru, pevného disku, paměti

apod., protože na DoS útok je nejlépe být včas upozorněni.

n Dbejte na fyzickou bezpečnost, aby neměl útočník usnadněný přístup k vašemu

hardwaru!

n Investujte do záložních zdrojů, které budou ihned k dispozici pro případ

odstavení běžně využívaných prostředků.

n Pravidelně zálohujte, a to nejen data, ale především konfigurační parametry

systému.

n Vytvořte a dodržujte kvalitní politiku přístupu k systému na administrátorské

úrovni.

n Používejte systémy IDS (Intrusion Detection System), které jsou schopné

detekovat průniky/pokusy o průnik.

n Nezapomeňte se připravit na možnost DoS útoku a vypracovat krizový plán pro

případ, že by k něčemu podobnému došlo. V jeho rámci si zajistěte kvalitní

kontakt na poskytovatele připojení, protože s jeho pomocí je možné incident

zvládnout mnohem rychleji a jednodušeji.





Malý slovníček DoS útoků

Agent – Počítač připojený k internetu, který útočník infikoval některým ze svých

programů a který mu následně poslouží k provedení DDoS útoku.

Démon (daemon) – Proces běžící na agentovi (viz agent), odpovědný za přijímání a

provádění příkazů vydaných klientem. Někdy je též nazývaný bcast (broadcast

program).

DoS (Denial of Service) – Odepření služby.

DDoS (Distributed DoS ) – Distribuovaný (z více míst vedený) útok DoS.

Handler – Hostitelská stanice/server, na které běží klient (někdy také

označována jako master). Používá se při tříúrovňovém útoku, kdy je mezi oběť a

útočníka vložena struktura těchto počítačů, které urychlují útok a komplikují

detekci útočníka.

Klient (client) – Aplikace používaná k zahajování vlastních útoků posláním

příkazů, někdy též označovaná jako útočník nebo vetřelec.

Master – viz Handler.

Oběť (victim) – Cíl útoku; může se jednat o počítač, server nebo síť.

Útočník (attacker) – Označení osoby (hackera) nebo jejího systému, který používá

pro instalaci, spuštění nebo řízení DoS útoku.

Vetřelec (intruder) – viz Klient.

Zombie – viz Agent.nku o určité

kapacitě a někdo se rozhodne, že ji vyřadí z provozu útokem DoS. Takže do ní

začne posílat nepřetržitý proud e-mailů ze své schránky. Ale to by pravděpodobně

nestačilo, proud je proto několikanásobný – z mnoha různých schránek (toto je

vlastně princip útoku DDoS, Distributed DoS). Vy se nejprve pokusíte tyto

e-maily odfiltrovat (což je obtížné, pokud útočník dokáže u každého z nich

poměrně jednoduchým způsobem zfalšovat parametry jako adresu odesílatele nebo

předmět zprávy). Možná i zvětšíte velikost schránky, abyste byli schopni se s

touto záplavou vypořádat.

Po krátké chvíli však zjistíte, že příval e-mailů sílí a že váš server se s ním

není schopen vypořádat – prostě může přijmout třeba deset tisíc e-mailů za

hodinu, ale někdo vám jich posílá desetkrát tolik. Server pak devadesát tisíc

e-mailů odmítne přijmout – a mezi nimi jde o devadesát procent regulérních

e-mailů (třeba dotazy obchodních partnerů, objednávky, vyžádané nabídky apod.).

Pokud se útok nepodaří zastavit, můžete svoji e-mailovou schránku odepsat,

nechat ji napospas útočníkům a založit novou.

Tento příklad je velmi výstižný. Hacker se vaší schránky v podstatě ani nedotkl,

a přesto ji vyřadil z provozu. Přitom velkým nebezpečím útoků DoS je, že jsou

relativně jednoduché. Rozhodně jsou jednodušší než pokusy o proniknutí do

systému. Zpravidla také jde o zlomyslný, záměrný a předem pečlivě připravený

útok. Situaci pak útočníkům usnadňuje i skutečnost, že neexistuje dlouhodobě

spolehlivá ochranná metoda.

U e-mailové schránky je problém s nedostupností snadno pochopitelný, ale co na

tom, že nějaký útok vyřadí www server nebo router? Celý problém se v žádném

případě nedá odbýt mávnutím ruky, protože mnoho firem má internet jako hlavní a

vlastně i jediné pole působnosti: Amazon, eBay, Google, Yahoo! apod. (Příklady

podobných firem na internetu bytostně závislých přitom najdete i u nás.) Každá

hodina mimo provoz je přitom pro podobné firmy drahá a mnohdy znamená odliv

zákazníků, kteří nechtějí čekat, ke konkurenci.

Kromě toho se na internetu nachází mnoho kritických služeb. Jde třeba o

ověřování totožnosti při bankovních transakcích, kontrola solventnosti, privátní

sítě VPN, lékařské konzultace, daňové záležitosti aj. Ve chvíli, kdy se chystáte

podat po internetu daňové přiznání a blíží se poslední možná „hodina H“, tak vás

jistě nefunkční server nepotěší. Stejně tak vám neudělá radost, když budete

chtít odeslat těsně před uzávěrkou nějakého výběrového řízení svoji nabídku a

zjistíte, že je komunikační linka „ucpaná“, protože na ní „sedí“ hacker.

Dokonce už byly v této oblasti zaznamenány i vyděračské útoky. Společnost

(zpravidla úzce provázaná s internetem) se stala cílem intenzivního, leč

krátkého DDoS útoku. A vzápětí jí byla učiněna nabídka – pokud máte zájem na

tom, aby se tato situace neopakovala ve větším a především déle trvajícím

měřítku, zaplaťte takovou a takovou částku.

V současné době je moderní v souvislosti se všemi útoky na internetu připomínat

terorismus, který je v reálném světě na vrcholu zájmu. Nejinak je tomu i v

případě DoS útoků. Faktem je, že zatím nikdy nebyly použity k opravdovému

kyberteroristickému útoku, ale na druhé straně nesmíme zapomínat, že tato

možnost existuje. Naše společnost je založena na komunikaci a výměně informací.

Pokud by se někomu podařilo zmapovat a následně zablokovat komunikační kanály

třeba u některé významné burzy, mělo by to pro ekonomiku celého světa alespoň

krátkodobě významné následky.

Navíc nejméně jednou už došlo k ohrožení lidských životů po útoku DoS – když se

jeho cílem staly servery jistého texaského přístavu, které měly připlouvajícím a

odplouvajícím lodím poskytovat informace o počasí a navigační údaje. Problém se

naštěstí podařilo vyřešit dříve než mohlo dojít ke skutečné kata-

strofě, nicméně k vážnému ohrožení opravdu došlo.

Stejně jako jsou pestré způsoby DoS útoků (viz níže), jsou pestré i pohnutky,

které vedou k jejich provedení. Často je to msta (zneuznaný bývalý zaměstnanec),

vyjádření osobního postoje (slavné vzájemné výpady příznivců různých operačních

systémů apod.), pomoc někomu (v rámci nekalého konkurenčního boje) nebo třeba

snaha o restart systému (po předchozí instalaci trojského koně či jiného

škodlivého kódu). Ztráty přitom vznikají v různých oblastech: útok snižuje

dostupnost určité služby, což v mnoha případech vede k odlivu tržeb či

návštěvníků (tedy možných zákazníků). Dále pak lze ke ztrátám přičíst nutnost

provedení následné analýzy a především vlastní řešení problému.





Kvarteto základních DoS útoků

V současné době rozeznáváme čtyři základní způsoby DoS útoků, s nimiž se lze v

praxi setkat. První z nich je útok pomocí obsazení přenosové kapacity. Je to

velmi účinná a jednoduchá metoda, kdy dojde k zablokování přístupu k určité

službě. Útočník prostě vytvoří takový provoz, který plně vytíží přístupovou

cestu, čímž vytěsní ostatní (regulérní) uživatele. Jednou z možností je zahltit

přístupovou

cestu, pokud má útočník k dispozici silnější linku. To je ale spíše vzácnost, a

tak využije několika slabších linek k tomu, aby přístup zahltil nebo alespoň

výrazně ztížil. Druhá varianta je ale zase složitější na koordinaci a znalosti

útočníka.

Dalším typem útoku je přivlastnění systémových zdrojů. „Cílem hry“ v daném

případě není zahltit přístupovou linku, ale spotřebovat limitované zdroje oběti.

Tedy třeba procesorový čas, paměť serveru či volné místo na disku. Útočník v

takovém případě vytváří (korektně či nekorektně) stav, kdy získává podstatnou

část systémových zdrojů, takže na regulérní uživatele zbude jen zanedbatelná

kapacita.

Třetím typem DoS útoku je zneužití chyb v programech. Tyto chyby přitom mohou

být známé nebo nově objevené. V prvním případě jde zpravidla o servery, jejichž

správci zanedbávají záplatování. Vlivem chyby nedokáže program reagovat na

neobvyklou situaci a dochází k jeho zhroucení, zacyklení, pádu či jinému

nekorektnímu chování. Důsledek je ale zřejmý: regulérní uživatel služby k ní

nemůže získat přístup.

Čtvrtým a zároveň posledním typem DoS útoku je napadení DNS a systémů směrování

paketů. V podstatě dojde k tomu, že na DNS serverech dojde ke změnám záznamů o

IP adresách – tyto jsou změněny tak, že veškerý provoz je upraven ve prospěch

útočníka nebo spřízněného subjektu (který ze situace samozřejmě získává nemalý

prospěch), nebo že žádosti vedou do „slepé uličky“ (tady sice útočník přímý

prospěch nezískává, ale postižený subjekt utrpí škodu). Při provedení tohoto

útoku je zneužívána skutečnost, že manipulace se směrovacími tabulkami není

nijak obtížná, neboť protokoly RIPv1 nebo BGPv4 mají velmi slabou autentizaci. K

akceptování změny jim tak stačí jen požadavek z podvržené IP adresy, která bývá

pohříchu jediným autentizačním prvkem. Útočník pak relativně snadno umístí

nesprávnou informaci do odkládací paměti jmenného serveru. A všem žadatelům jsou

následně poskytovány mylné informace ohledně směrování.

Někdy se také uvádí ještě pátý případ DoS útoku, a to útok na DNS servery,

jejichž vyřazení z provozu znamená ztrátu většiny internetového i e-mailového

provozu. Ve skutečnosti ale nejde o pátý typ útoku, nýbrž o cíl útoku. Vlastní

DoS útok proti DNS serverům je pokaždé vedený některým z výše uvedených způsobů.

Speciálním typem DoS útoků jsou pak již výše zmíněné distribuované útoky –

Distributed DoS, zkráceně DDoS. Jejich nebezpečnost se násobí tím, že jsou

vedeny z různých směrů, přičemž zpravidla využívají metody obsazení přenosové

kapacity. V případě DDoS je velmi obtížné zastavit útočníka, protože své síly

rozloží tak, aby působily z mnoha směrů. Podobný útok ovšem vyžaduje značné

technologické znalosti. Navíc je zde problém distribuce útočných nástrojů a

koordinace jejich aktivity. Běžné DoS útoky totiž zvládne díky snadno dostupným

nástrojům na internetu kdekdo. „Odměnou“ útočníkovi za zvládnutí technologie a

techniky DDoS je pak skutečnost, že výsledný útok je zpravidla úspěšný a těžko

odstranitelný.

Krásně je to vidět na příkladu různých internetových červů, kdy se třeba CodeRed

(objevený v červenci 2001) dokázal rozšířit na něco kolem 350 000 serverů a

následně spustil DDoS útok vůči doméně www.whitehouse.gov. Nebo Blaster (srpen

2003) zaútočil z několika set tisíc strojů proti doméně www.windowsupdate.com. V

prvním případě řešili správci problém tak, že změnili IP adresu příslušné

domény, protože útok směřoval vůči ní – když pak došlo k napadení (CodeRed se

připravil o výhodu momentu překvapení tím, že neútočil ihned, ale až po nějakém

čase), útok směřoval do prázdna. V případě kódu Blaster pak byla situace trochu

problematičtější, protože útok směřoval přímo proti dotyčnému názvu. Majitel

domény ji proto musel uzavřít a veškerý provoz směřovat na subdomnénu

windowsupdate.microsoft.com. To nebyl zase tak velký problém, protože původní

doména sloužila stejně spíše k přesměrovávání na tuto adresu. Mimochodem tato

událost byla posledním impulsem, který přiměl největšího světového výrobce

softwaru k vypsání odměny za informace vedoucí k dopadení pisatelů škodlivých

kódů.





Takto vypadají DoS útoky…

Každý útok se skládá ze dvou fází. První je příprava, druhou je vlastní

provedení. Příprava zahrnuje jednak mapování terénu (nechráněné porty,

zranitelné služby, chyby v operačním systému…) a jednak instalaci příslušných

útočných programů (třeba i pomocí trojských koní a červů apod.). Poté už jsou

dveře vlastnímu útoku otevřené.

Hojně vyžívaným typem DoS útoku je tzv. Smurf Attack (šmoulí útok). Ač jeho

název nezní kdovíjak hrůzostrašně, je velmi nepříjemnou záležitostí. Jedná se o

útok, jehož cílem je pomocí dalších počítačů zahltit určitý server. V praxi jsou

možné dva modely šmoulího útoku. Především je zde možnost poslat ICMP echa (tzv.

ping) se spoofovanou (podvrženou) adresou na velké množství počítačů. Každá z

nich pak přebere pakety a odpoví na ně. Tedy odpoví na podvrženou adresu – a

protože odpoví korektním způsobem, je výsledný tok dat vyšší než tok dat

odeslaný hackerem. Proto se těmto počítačům využívaným k provedení útoku někdy

také říká „amplifiers“ – zesilovače útoku.

Druhý způsob útoku smurf attack je možné provádět proti host serveru. Spočívá v

tom, že útočník vytvoří velké množství speciálních ICMP požadavků, které pošle

na příslušný server. Vzhledem k tomu, že veřejný paket nemá konkrétního

adresáta, je následně přebrán všemi adresami v síti, které na něj odpovídají (a

nevědomky tak slouží jako zesilovače útoku). Konečný efekt je tedy stejný jako v

předchozím případě.

Velmi podobným typem útoku je tzv. Fraggle, který funguje v podstatě stejně, ale

nepo-

užívá pakety ICMP, nýbrž UDP. Vlastně se nejedná o žádnou novinku, ale o

jednoduchý přepis zdrojového kódu smurfu. Takže není divu, že se vzápětí objevil

i tzv. Papasmurf Attack („útok taťky šmouly“). Ten zvládá zneužití ICMP i UDP

(může přitom pracovat buď s oběma, nebo pouze s jedním vybraným). Mimochodem,

oběti tohoto typu útoku jsou vždy dvě – jednak je to vlastní cíl a jednak

počítače použité k jeho provedení (zesilovače).

Zjistit, zda konkrétní počítač či počítače není možné zneužít k výše uvedeným

útokům jako „zesilovače“, lze poměrně snadno na www.

netscan.org. Obranou je mimo jiné zákaz všech paketů s všeobecnou adresou na

firewallu.

Výše uvedené útoky řadíme do kategorie útoků provedených hrubou silou – a sem

můžeme zařadit i UDP Flood (UDP záplava). Spočívá ve zneužití služby, která pro

testovací účely dokáže generovat pro každý přijatý paket sérii znaků – a pokud k

tomu dokážete přidat UDP echo službu jiného systému, která odpovídá na každý

přijatý znak, neštěstí je hotovo. Výsledkem je totiž nepřetržitý proud dat mezi

dvěma systémy.

Pokud chcete útoku UDP Flood zabránit, máte dvě možnosti. První je zakázat UDP

na každém uzlu sítě, druhou je aktivovat na firewallu službu filtrující všechny

UDP požadavky. Nedoporučujeme zakázat všechny UDP (v interní síti totiž můžete

odmítnout i legitimní aplikace), ale stačí zákaz přístupu UDP služeb z

internetu. Tím zabráníte příchodu UDP paketů s podvrženými parametry.

Dále jsou zde útoky, které využívají nedostatky ve specifikaci TCP/IP. Jinými

slovy: jde o útoky, které se zaměřují na nedokonalosti v příslušných

protokolech. Příkladem budiž tzv. SYN attack. Než si jej popíšeme, pojďme se

podívat na způsob, jakým TCP/IP navazu-

je spojení. Tento proces je označovaný jako Three Way Handshake („třícestné

potřesení rukou“) a probíhá tak, že aplikace, která chce komunikovat, posílá

příjemci synchronizační paket SYN. Příjemce odpovídá potvrzovacím paketem

SYN-ACK s požadavkem synchronizace. A nakonec iniciátor posílá zpět

synchronizační a potvrzovací paket ACK. Spojení je navázáno a je možné vyměňovat

data.

Ještě je potřeba podotknout, že v praxi cílový systém používá tzv. backlog queue

(frontu nevyřízených požadavků). Tato obsahuje všechny požadavky, na které byla

zaslána odpověď SYN-ACK a od kterých se očekává akceptace ACK. Kamenem úrazu

přitom je, že tato fronta bývá zpravidla relativně malá a že jakmile je plná,

systém musí ignorovat všechny nově příchozí požadavky o komunikaci SYN, protože

si je nemá kam odkládat. (SYN-ACK jsou vyřazeny z fronty jen v případě, že

přijde akceptace ACK nebo vyprší časový limit, který je ovšem zpravidla nastaven

na relativně dlouhou dobu.)

Správně začínáte tušit, že cílem SYN útoku je zaplnit backlog queue požadavky,

na které se systém nemůže dočkat odpovědi a které následně znemožní příjem

korektních požadavků o komunikaci. Hacker zkrátka posílá velké množství

požadavků SYN (nejlépe s neexistující IP adresou, čímž je zaručeno, že na

SYN-ACK požadavky nemůže dorazit odpověď), čímž zahltí příslušný server pro

regulérní provoz. Backlog queue je stále plná „legitimních“ požadavků a ostatní

zájemci o komunikaci mají zkrátka smůlu.

Podrobnosti o SYN útoku plus informace o obraně lze nalézt ve článku „Internet

Server Unavailable Because of Malicious SYN Attacks“ na

http://support.microsoft.com/sup­port/kb/articles/q142/6/41­.asp. Obranou je též

instalovat bezpečnostní záplaty a používat nejnovější verze softwaru, protože

SYN útok je velmi jednoduchý a primitivní, takže se s ním dokáží výrobci

aplikací vypořádat (úpravami délky fronty nebo časového limitu pro její

vyprazdňování). Ke škodě není ani překonfigurování firewallu tak, aby zachytával

všechny pakety s neplatnými IP adresami.

Variací SYN útoku je Land Attack, kdy dochází ke zfalšování IP adresy tak, že se

tváří jako IP adresa serveru, na který je vznášený požadavek. Ten tak posílá

SYN-ACK sám sobě – ale protože se nesnažil komunikovat, neodpovídá na ně.

Výsledek je stejný jako u SYN útoku: přeplněná fronta a nemožnost komunikace s

korektními uživateli.

Posledními typy útoků, s nimiž se lze běžně setkat a o nichž bude dnes řeč, jsou

útoky využívající chyby v implementaci protokolů TCP/IP. Prvním z nich je Ping

of Death (ping smrti). Jak víme, ping se běžně používá pro zjištění, jestli

nějaký server či počítač pracuje. Ve specifikaci IP protokolu je ale povolená

maximální velikost pingového paketu 65 536 bajtů. S jejím překročením se mnoho

systémů nedokázalo vypořádat, takže když hacker poslal ping větší než výše

uvedená hodnota (pro korektní poslání takovéhoto pingu není důvod), způsobil

havárii, restart či „zatuhnutí“ tázaného systému.

Chybu v implementaci TCP/IP využívá také Teardrops Attack (útok kapek slz). Také

zde hacker provádí úkon, ke kterému v běžném provozu není důvod a který by neměl

nastat. IP paket bývá totiž z různých důvodů po cestě internetem rozdělen na

menší části, z nichž je na cílovém počítači složen do původní podoby a

velikosti. Každá z těchto částí pak obsahuje položku s informací o tom, kterou

část paketu nese (např. tento IP paket obsahuje bajty 201 až 400 z původního

paketu). Při Teardrops Attacks je nějaký IP paket záměrně rozdělen do několika

částí, a to tak, aby se navzájem překrývaly. Zatímco v korektním provozu na sebe

navazují, v tomto případě je cílový stroj nedokáže zpracovat, neboť s touto

situací nemusí počítat – výsledek je stejný jako v předchozím případě (havárie,

restart, zatuhnutí systému).

Oba posledně jmenované typy útoků jsou už starší záležitostí, takže by si s nimi

měly všechny nové aplikace s příslušnými záplatami bez potíží poradit.





Další úroveň:

DDoS útoky

Na předchozích řádcích jsme zmínili nástroje používané k DoS útokům. Pro

realizaci útoků DDoS jsou používány nástroje víceméně stejné, ale přece jen tu

je drobný rozdíl: před vlastním útokem je zapotřebí zajistit jejich instalaci na

několik tisíc, nezřídka i desítek tisíc počítačů. Z nich je pak útok veden. Pro

usnadnění takovéto rozsáhlé distribuce vzniklo několik nástrojů, které se v

hackerské komunitě značně rozšířily.

DDoS útoky jsou ve většině případů dvouúrovňové: útočník řídí ze svého hlavního

počítače (master), kterých může být výjimečně i více, celou svoji síť „spících

agentů“ zombie. Těm se zpravidla už při instalaci zadá IP adresa, na kterou

budou útočit, a čas, kdy se tak stane. Novější nástroje umožňují tyto parametry

průběžně měnit, takže jednou infikovaný počítač zombie je použitelný k

opakovaným útokům na různé IP adresy nebo je možné intenzitu útoku průběžně

měnit.

Jedním z nejpoužívanějších nástrojů je TFN (Tribe Flood Network), který byl

původně vytvořen jistým německým hackerem s cílem ukázat zranitelnost

počítačových sítí. Pro svoji jednoduchost a snadnou obsluhu se ovšem velmi

rychle rozšířil a získal v hackerské komunitě nebývalou popularitu, mimo jiné

stál za řadou masivních útoků proti známým světovým serverům.

TFN byl historicky první nástroj pro provádění DDoS útoků, když využíval

dvouúrov-

ňovou strukturu: útočník infikoval a ovládal přímo svoji skupinu zombie počítačů

(při tří-

úrovňové struktuře je mezi ním a skupinou zombie ještě menší skupinka pomocných,

tzv. master počítačů, takže ovládání zombie je rychlejší a útočník se hůře

stopuje). Té dával příkazy, kdy, proti jakému cíli a jakým způsobem (SYN attack,

Ping of Death, UDP Flood aj. – viz výše) zaútočit. Samozřejmou vlastností

programu je podvržení IP adresy. TFN komunikuje pomocí paketů ICMP ECHO a ICMP

ECHO REPLY.

Z nástroje TFN se postupem času vyvinul TFN2K (Tribal Flood Network 2000), což

je jeden z nejsofistikovanějších nástrojů pro provádění DDoS útoků. Podobně jako

TFN je schopen provádět celou škálu DoS útoků. Co je ale zajímavé: komunikace

(děje se pomocí TCP, UDP a ICMP paketů) mezi útočníkem a počítači zombie probíhá

šifrovaně pomocí algoritmu ČÁST, takže se špatně odhaluje nebo dekóduje. Pokud

je útok objeven, odvádí pozornost na smyšlené cíle pomocí podvržených paketů.

Program TFN2K byl původně vytvořen pro unixové prostředí, ale nedávno se dočkal

své konverze i pro Windows, což z něj činí výrazně větší problém než doposud.

Dalším DDoS nástrojem je Trin00, který sice patří mezi starší nástroje, ale

dodnes velmi hojně používané. A to i díky opakované aktualizaci – starší

generace třeba používaly jednoduše zašifrovaná hesla, takže útočníky bylo možné

relativně snadno vystopovat, v novějších verzích už tomu tak není. Trin00 použí-

vá tříúrovňovou architekturu (viz výše), čímž útočníka ještě více chrání.

Typicky komunikuje na portech 1524 TCP, 27665 TCP, 27444 UDP a 31335 UDP. Přes

svoji rozšířenost ovšem nemá tento program další pokročilé funkce jako třeba

maskování komunikace nebo zdrojových adres. Zvládne pouze jediný DoS útok, a to

UDP Flood.

Ostnatý drát, alias Stacheldraht je pokračovatelem výše zmíněných útoků (podobně

jako TFN má celou škálu útoků DoS, podobně jako TFN2K šifruje komunikaci a

podobně jako Trin00 používá tři úrovně komunikace). Stacheldraht využívá

protokoly TCP a ICMP. Jeho největší výhodou oproti ostatním nástrojům je ale

fakt, že má schopnost se upgradovat – dokáže své stávající soubory smazat a na

jejich místo stáhnout z předem určeného systému nové verze.

Jeden z novějších pokusů o vytvoření DDoS nástroje je Shaft, který svým způsobem

představuje vylepšený Stacheldraht. Především ale umožňuje přepínat tzv. handler

servery a porty, což činí útočníka obtížněji detekovatelným.





Obrana před DoS a DDoS

Různým tipům a radám, jak se proti DoS/DDoS útokům bránit, se věnujeme v

samostatném vloženém článku. Takže si připomeňme jen několik zásadních rad.

Především: nejlepší problém je takový, který nenastane, takže věnujte maximální

pozornost prevenci.

Stát se cílem podobného útoku je totiž nepříjemné, neboť většina běžných

opatření jej nezastaví. Proč tomu tak je? Protože DoS/DDoS využívá zpravidla

korektní požadavky, ovšem se záměrem dosažení nekorektních cílů (odepření

služby). A eliminovat korektní prostředky je vysoce nežádoucí.

Nicméně výše uvedené samozřejmě neznamená, že musíme trpělivě čekat s rukama

složenýma v klíně, až se nějaký podobný útok objeví. Mezi základní preventivní

opatření přitom patří třeba notoricky opakované záplatování nebo používání

nejnovějších verzí operačních systémů či programů (které se zpravidla poučí z

chyb minulých a počítají s nimi). Rozhodně ale mějme připravený „krizový scénář“

– co dělat v případě, že se DoS útok objeví. Předem připravené postupy a

komunikační linky jej totiž dokáží zcela eliminovat nebo alespoň výrazně omezit

následky.



Nejčastější chyby, které vedou k DoS

útokům, jsou následující:

n Spoléhání se pouze na firewall.

n Spoléhání se na skutečnost, že bezpečnostní problém sám od sebe pomine/zmizí,

bude-li ignorován.

n Uplatňování impulzivních opatření, která sice jsou účinná, ale pouze ve velmi

krátkodobém horizontu. Problém se tak rychle objeví znovu.

n Neschopnost vypořádat se s operačními aspekty bezpečnosti. Jinými slovy: jsou

provedeny nějaké úpravy, ale nejsou vytvořené „na míru“ operačním potřebám

příslušného systému, takže buď omezují provoz, nebo se zcela míjejí účinkem.

n Neschopnost určit skutečnou hodnotu některých komodit a následné podcenění

problému („DoS útok pro nás nepředstavuje žádnou hrozbu, nemůže nic ohrozit“).



Jak už bylo uvedeno výše, ani sebedůslednější dodržování různých doporučení a

opatření nikdy nezaručí, že se nestanete obětí DoS útoku. To je bohužel daň za

koncepci protokolů TCP/IP, která na jedné straně přispěla ke skutečně masovému

rozšíření internetu – na straně druhé však má i svá slabší místa. Proto je

důležité být připravený, neboť připraveným – jak známo – štěstí přeje. 5s0043/jp

o





Kapitoly z historie DoS útoků



1995 – Hackeři na internetu dokázali způsobit „shození“ některých počítačů

pomocí útoku Ping of Death. Přestože DoS útoky byly teoreticky popsané už dříve,

teprve nyní přešly do praxe.

1998 – Objevují se další typy útoků, především smurf attack.

květen 1998 – Objevují se první útoky DDoS, tedy již dříve známé útoky DoS,

ovšem vedené z více míst pro zvýšení účinnosti. Jen o něco později jsou podobným

způsobem napadeny počítače NASA, amerického námořnictva a desítek univerzit.

1999 – První varovné zprávy o útocích vedených z počítačů, na které hackeři

umístili své programy bez vědomí majitelů/uživatelů. Vznikají tak zombie.

září 1999 – Zveřejněna první analýza DDoS programu Trin00.

říjen 1999 – Zveřejněna analýza DoS programu TFN.

únor 2000 – Velký koordinovaný DDoS útok vyřazuje na několik hodin z provozu

servery jako Yahoo!, eBay, Amazon a několik desítek dalších. Úřady dokázaly

útočníka zadržet: byl jím patnáctiletý Kanaďan s přezdívkou mafiaboy, který

dokázal k provedení útoku zneužít počítače v University of California.

červenec 2001 – Internetový červ CodeRed se rozšířil na statisíce počítačů a

odtud zahajuje útok proti doméně www.whitehouse.gov.

říjen 2002 – Mohutný DDoS útok zasahuje třináct root serverů internetu na světě,

přičemž pět z nich krátkodobě vyřazuje z provozu a několik dalších je citelně

zasaženo. Kdyby došlo k dlouhodobějšímu vyřazení všech třinácti, mělo by to pro

internet velmi neblahé následky (praktickou nemožnost dlouhodobě komunikovat

právě pomocí internetu).

březen 2003 – Červ Deloader infikoval během jediného dne 18 tisíc počítačů, z

nichž obratem vytvořil síť zombie pro DDoS útoky.

srpen 2003 – Červ Blaster a několik jeho verzí infikovalo zhruba půl miliónu

počítačů, z nichž byly následně napadeny stránky společnosti Microsoft.





Jak se před DoS/DDoS útoky chránit?

Pravidelně kontrolujte instalování dostupných bezpečnostních záplat. Toto je

ostatně pravidlo, které platí nejen pro případ prevence proti DoS/DDoS útokům,

ale i proti dalším bezpečnostním hrozbám. Stejně tak se doporučuje používat

nejnovější verze programů a systémů, které byly navrhovány už s přihlédnutím k

odolnosti vůči určitým typům útokům.

n Na routeru je vhodné nastavit pravidlo, že žádný první paket z jakékoliv IP

adresy není vpuštěn. Toto příliš nepomáhá u DoS, ale hodně u DDoS, které často

falšují IP adresu odesílatele (a zpravidla ji používají právě pouze jednou, než

vygenerují další). Přitom regulérní komunikace dotčena není, protože TCP

zajišťuje při běžném provozu poslání prvního paketu i podruhé.

n Aktivujte na firewallu službu filtrující všechny UDP požadavky. Nedoporučuje

se zakázat všechny UDP (v interní síti totiž můžete odmítnout i legitimní

aplikace), ale stačí zákaz přístupu UDP služeb z internetu. Tím zabráníte

příchodu UDP paketů s podvrženými parametry.

n Vypněte nepoužívané nebo nepotřebné služby, čímž snížíte šanci, že právě ty

budou zneužity útočníky pro napadení systému.

n Implementujte filtry směrování. Toto sníží zranitelnost vůči některým typům

útoků, které využívají jejich absence (třeba útoky smurf attack zneužívají toho,

že jsou schopné zahltit síť kvůli absenci routerů).

n Znemožněte zápis na disk (jakýkoliv zápis na disk rovná se zvýšené riziko

přivlastnění systémových zdrojů útočníkem, protože prostor na disku je konečný)

a zaveďte kvóty (časové, velikostní aj.), aby jejich absenci nemohl útočník

využít ve svůj prospěch.

n Nastavte kontrolu nezvykle vysokého využití procesoru, pevného disku, paměti

apod., protože na DoS útok je nejlépe být včas upozorněni.

n Dbejte na fyzickou bezpečnost, aby neměl útočník usnadněný přístup k vašemu

hardwaru!

n Investujte do záložních zdrojů, které budou ihned k dispozici pro případ

odstavení běžně využívaných prostředků.

n Pravidelně zálohujte, a to nejen data, ale především konfigurační parametry

syst

Autor článku