Hlavní navigace

Denial of Service útoky: reflektivní a zesilující typy

17. 10. 2006
Doba čtení: 9 minut

Sdílet

 Autor: 29
V dnešním dílu se podíváme na nejmodernější reflektivní a zesilující útoky. Jedná se o nebezpečné typy útoků, které dovolují zahltit linku oběti, i když má větší kapacitu než vaše linka. Podíváme se zde na útoky Smurf, Fraggle, TTL Expiration, SYN Flood a DNS Amplification Attack. Poslední jmenovaný útok je zvláště nebezpečný a lze jej považovat za novinku.

Reflektivní útoky

Jedná se o útoky, které se snaží zahltit linku oběti, ovšem k útoku používají jiné počítače (nebo routery) jako prostředníky. Tito prostředníci nemusí být kompromitováni, to znamená, že útočník je nejdřív nepotřebuje napadnout. Tyto útoky se provádí hlavně distribuovaně.

Pojmenování těchto útoků je o dost mladší než útoky samotné. S největší pravděpodobností vzniklo označení „reflektivní útoky“ podle článku Distributed Reflection Denial of Service (tento článek vám doporučuji přečíst, je velice zajímavý), který vyšel v roce 2002 . Ovšem nejstarší reflektivní útok Smurf byl znám již v roce 1998.

Největší výhodou tohoto útoku je minimální možnost vystopování útočníka. Data (použitá k zahlcení) totiž netečou stále stejnou cestou, protože se při útoku mění počítače, od kterých se útok „odráží“ (proto se jim říká reflektivní). Vyhledávání útočníka se provádí tak, že se od oběti postupuje postupně po routerech směrem k útočníkovi. Vždy se na routeru zjistí, ze kterého portu útok přichází, a toto se provede znovu na routeru, který je připojen k tomu portu, a takto stále dokola (z toho důvodu, že útočník téměř vždy falšuje svoji IP adresu).

Reflektivni DoS

Schéma reflektivního DoS útoku

Obycejny DoS utok

Schéma běžného DoS útoku

Jak takový útok probíhá?

Útočník si nejprve potřebuje udělat seznam síťových zařízení, která k útoku použije. Nejčastěji k tomu použije nějaký skript nebo program. Poté zahájí útok pomocí nějakého programu. Ten vezme první IP adresu ze seznamu, pošle na ni deset paketů (deset paketů je pouze příklad, nikoliv pravidlo), poté vezme druhou a znovu na ni pošle deset paketů, a tak pořád dokola. U všech paketů, které posílá, zfalšuje zdrojovou adresu a nastaví ji na IP adresu oběti.

Tyto pakety nemohou být ledajaké, musí se jednat vždy o určitý typ (typ záleží na útoku), a to proto, aby na ně síťové zařízení odpovědělo a tím se tato data dostala k oběti. Počet odesílaných paketů na každou IP adresu je záměrně malý, aby nebudil pozornost, jelikož takové množství se v log souborech ztratí (pokud to vůbec bude zalogováno).

Zesilující útoky

Jedná se o útoky, kdy pošlete data o určité velikosti a k oběti přijdou data o větší velikosti. Je tedy jasné, že tato data se musí někde „zesílit“. Proto jsou zesilující útoky možné pouze u reflektivních útoků, kde se používá nějaký prostředník, ostatně sami to uvidíte při vysvětlování jednotlivých útoků. Tyto útoky jsou v současné době nejsilnějšími záplavovými útoky.

Nejspíš už máte ve všech těch druzích útoků trochu zmatek, proto si je raději zkusme rozdělit. Toto rozdělení je mojí prací a nemusí být úplně korektní (pokud naleznete chybu nebo nedostatek, ozvěte se prosím v názorech pod článkem), ovšem nikde jsem žádné jiné rozdělení nenašel.

DoS utoky - cleneni

Rozdělení DoS útoků

Smurf

Začneme hezky od nejstaršího útoku. Jedná se o reflektivní zesilující útok. Jeho princip je podobný jako ICMP Flood, ovšem přidává k tomuto útoku zesílení. Toho je docíleno tím, že místo pingu přímo na útočníka je poslán ping na IP adresu sítě s nastavením zdrojové IP adresy na IP adresu oběti. Následně všechny počítače z cílové sítě odpoví paketem „ICMP Echo reply“ oběti. Z toho vyplývá, že zesílení závisí na počtu počítačů v dané síti.

V dnešní době je používání adres sítí v Internetu filtrováno, ovšem pořád je spousta výjimek. Jestli máte chuť si vyzkoušet, zda to funguje, neměl by to být velký problém. Stačí si spustit Ethereal nebo jiný program na zachytávání paketů. Následně se podívat do databáze sítí, které mohou být použity k tomuto útoku. Tu najdete na adrese http://www.po­wertech.no/smur­f. Zde si vyberete nějakou síť, například 202.202.12.0/24. Následně spustíte program ping ping –n 1 202.202.12.0 nebo ping –n 1 202.202.12.255. Tím se odešle jeden požadavek na Echo. Vy se poté podíváte na program Ethereal a zde uvidíte, kolik přišlo odpovědí.

Vlastnosti: stále použitelný záplavový reflektivní zesilující útok, u nějž se pohybuje zesílení až v desetinásobcích. V současné době jsou silnější útoky, ovšem stále je použitelný.

Fraggle

Jedná se o útok od autora útoku Smurf a je mu také velice podobný. V základu se využívá posílání dat na IP adresu sítě, ovšem již se nepoužívá protokol ICMP, nýbrž se používá UDP protokolu a služby Echo a Chargen. Pošle se tedy UDP datagram (paket) s cílovou IP adresou nastavenou na síť, kterou použijeme k odražení dat, a jako port se zvolí 7 (Echo) nebo 19 (Chargen). Služba Echo vrátí data zpět, služba Chargen vrací data také zpět, ovšem jiná. V současné době již tyto služby nejsou skoro používány (dá se říci téměř vůbec), proto je tento útok spíše otázkou minulosti.

Vlastnosti: záplavový reflektivní zesilující útok, jenž měl menší zesílení než Smurf (jelikož všechny počítače nenabízely služby, jichž využíval), v současné době se dá označit jako nepoužitelný.

TTL Záplava (TTL Expiration flood)

Jedná se o reflektivní útok, jehož použití nevyžaduje si dopředu vytvářet seznam síťových zařízení, která budou využívána. K tomuto útoku se využívá hodnoty TTL (Time to live) u IP protokolu.

Nejdříve si vysvětlíme, k čemu tato hodnota slouží. Všechna data, která od vás odchází, mají nastavenou hodnotu TTL. Tuto hodnotu určuje operační systém, ale dá se většinou změnit (některé programy si ji umí nastavit sami). Její hodnota bývá nastavena v rozmezí 64 až 255. Data jdou dále na nějaký router poskytovatele vašeho internetového připojení. Tento router sníží hodnotu TTL o jedna a pošle je dál. Tak to jde pořád dál, než data dorazí k cíli. Je důležité si uvědomit, že hodnotu snižují pouze zařízení, která pracují s protokolem IP.

V normálním případě dorazí data k cíli a TTL je menší průměrně o 10. Pokud by se na cestě data ztratila a různě bloudila, tak by se hodnota TTL dostala na 0. Jakmile některé zařízení sníží TTL z 1 na 0, tak už data nikam dál nepošle, ale pošle odesílateli zprávu, že během cesty vypršela doba životnosti (vypršel TTL) dat. Tuto zprávu vám nemusí poslat všechna zařízení, jelikož jsou tyto zprávy často filtrovány firewallem.

Jeden důvod, k čemu je to dobré, je již zřejmý – zabezpečuje, aby po sítí neběhala do nekonečna ztracená data. Další použití je při trasování (zjišťování trasy k cíli). Princip je jednoduchý, posíláte nějaká data k cíli a hodnotu TTL nastavujete od 1 a vždy o 1 větší, dokud se data nedostanou k cíli.

Jak se to používá k útoku? Jednoduše, jako IP adresu odesílatele nastavíte IP adresu oběti, nastavíte malé TTL a data posíláte náhodnému cíli. Datům následně vyprší TTL a oběti je o tom poslána zpráva. Zesílení je tady minimální, zhruba 1,7krát. Vše si můžete odzkoušet sami. Stačí spustit ping –l 0 –i 5 LIBOBOLNÁ_IP_ADRESA (pokud vám ping napíše, že vypršel časový limit žádosti, snižte parametr i) a ověřovat Etherealem, jaká chodí data. Sami uvidíte, že ICMP Echo request pakety, které od vás odchází, mají 42 bytů, a pakety, které k vám přicházejí, mají 70 bytů. Parametrem i jsme nastavovali hodnotu TTL a parametrem l nastavujeme co nejmenší ICMP Echo request paket.

Vlastnosti: záplavový reflektivní útok, jednoduše implementovatelný, s malým zesílením. Tento útok bude možné provádět ještě řadu let.

SYN Záplava (SYN Flood)

O tomto útoku již byla řeč ve třetím díle. Jediné, co se na něm změnilo, je zfalšování zdrojové IP adresy, která se nastaví na adresu oběti. Útočník si sestaví seznam počítačů, které k útoku využije. Následně na ně začne posílat TCP pakety s nastaveným příznakem SYN a zdrojovou IP adresou nastavenou na IP adresu oběti. Tyto servery si myslí, že se s nimi oběť snaží navázat komunikaci a pošlou jí zpět TCP paket s příznaky SYN a ACK. Oběť ovšem nic takového nečeká a normálně by poslala TCP paket s příznakem RST, ovšem v dnešní době toto pravidlo není dodržováno, nebo je filtrováno, takže oběť nic takového neodešle.

Server (použitý jako prostředník) si myslí, že jeho TCP paket s příznaky SYN a ACK se asi někde ztratil, tak jej pošle znovu, a tak to jde dál. Většinou se celkově pošlou čtyři pakety, ale záleží na nastavení serveru. To znamená, že tento útok má čtyřnásobné zesílení. Rozhodně již se jedná o velmi nebezpečný útok, jak uvádí například článek o distribuovaných reflektivních DoS útocích. Tento útok má také výhodu ve snadné dostupnosti počítačů, které mohou být použity jako prostředníci komunikace.

Vlastnosti: záplavový reflektivní útok s dobrým zesílením a možností využívat téměř všechny počítače jako prostředníky. Bude tu s námi ještě pěknou řádku let.

DNS zesilující útok (DNS Amplification Attack)

Tento útok se dá označit za horkou novinku, první velký útok byl zjištěn v říjnu 2005. V současné době se o tomto útoku dost píše. Jako zajímavý adroj vám mohu doporučit článek DNS Amplification attacks [PDF, 220 KB].

Útok spočívá v posílání DNS dotazů se zdrojovou IP adresou nastavenou na IP adresu oběti. Tento útok se dá považovat za nejsilnější funkční útok, jelikož jeho zesílení může dosáhnout více jak 70 násobku původních dat. Jediná věc, kterou k němu potřebujete, je veřejný relay DNS server. To je takový DNS server, který provede dohledání záznamu (o který žádáte) a je dostupný všem počítačům v Internetu.

Normální DNS server pracuje s protokoly TCP a UDP. Standardně se používá protokol UDP, který umožňuje posílat DNS odpovědi do velikosti 512 B. To znamená, že pokud zažádáte o nějaký překlad, žádost má průměrně velikost 80 B (pokud se ptáte šikovně, můžete se dostat i pod 70 B), můžete dostat odpověď velikou až 512 B. Čímž získáte sedminásobné zesílení.

Což je velice dobré, ale může to být lepší, použijete-li EDNS, což je rozšířené DNS, které umožňuje odpovědi větší než 4 KB. Další věc je: na co se ptát, aby byla odpověď takto veliká? Tento problém nebyl příliš složitý; pokud si totiž koupíte doménu, můžete si spravovat svoje záznamy. Útočníci spíše většinou nějakou doménu nabourali („vyhackovali“) a vložili si tam svoje záznamy. Především používají dlouhý textový záznam, který normálně slouží jako komentář.

Útočník tedy vytvoří potřebné záznamy ve své doméně. Následně vytvoří seznam veřejných relay DNS serverů, které bude využívat. Poté začne těmto serverům posílat dotazy na svoji předem připravenou doménu, u dotazů změní IP adresu odesílatele na IP adresu oběti. DNS servery budou posílat oběti odpovědi, které budou až 73krát větší než dotazy. Tím dojde k zahlcení linky oběti.

Schema DNS u DoS

Schéma DNS

Pokud si chcete zkusit, že to tak doopravdy je, pusťte si program Ethereal a použijte linuxový program dig DOMENA any. Sami uvidíte, jak bude velký dotaz a jak odpověď. Uživatelé Windows mohou použít program nslookup, spustí ho přes příkazovou řádku, následně zadají set type=any a poté napíší jméno domény, například lupa.cz.

BRAND24

Vlastnosti: záplavový reflektivní zesilující útok s obrovským zesílením. Tento útok je považován za vysoce nebezpečný a obrana proti němu je velice těžká. O tomto útoku určitě ještě uslyšíme.

Závěr

Doufám že se vám tento seriál o DoS útocích líbil. Pokud máte nějaké nápady, dotazy, nebo vám přijde, že jsem na něco zapomněl, zanechte mi zprávu v názorech pod článkem a já se vám pokusím odpovědět.

Jak se vám líbil tento seriál? (známkování jako ve škole)

Byl pro vás článek přínosný?

Autor článku

Autor je spolumajitelem firmy PATRON-IT a celým srdcem technik. Specializuje se na kybernetickou bezpečnost a má zkušenosti etického hackera. Věří, že aby mohl síť dobře zabezpečit, musí ji nejprve umět prolomit.

Upozorníme vás na články, které by vám neměly uniknout (maximálně 2x týdně).