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/support/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/support/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