Útoky DoS a DDoS Projektování distribuovaných systémů Ing. Jiří ledvina, CSc.
Přehled napadení
Lokální útoky
Přetečení bufferu Prolomení hesla
Vzdálené útoky
Spoofing SYN Flood Smurf Attack Frangle Attack Ping of Death Teardrop Application Attack
Útoky - spoofing
Spoofing – navádění k nepravosti je metoda falšování internetové
adresy. Útočník používá falešnou IP adresu s cílem přesměrovat tok dat do cílové sítě napadaného uzlu nebo podvést server a přesvědčit jej aby identifikoval útočníka jako legitimní uzel. Útočník vychází ze znalosti odpovědí, které nemůže dostávat od napadeného uzlu, protože jsou (odpovědi) směrovány originálnímu (podstrčenému) systému. Jestliže je spoofing použit pro DoS útok, stává se cílová adresa obětí. Spoofing je používán ve většině DoS útoků. Mnoho útočníků začíná DoS útokem, aby zahltili vybraný uzel a mohli převzít jeho adresu. IP Hijacking (IP únos) je hlavní metoda používaná pro útočení na zabezpečenou síť. Dalším možností je útok typu Man in the Middle.
Útoky – SYN Flood
SYN Flood – Zaplavení SYNy je metoda, kdy útočník posílá sérii SYN požadavků směrem k oběti. Cíl odpovídá SYN ACK a čeká na ACK aby mohl ukončit navázání spojení. Místo odpovědí s ACK přichází další SYN a otevírá další spojení. To způsobí vznik front a naplnění vyrovnávacích pamětí napadeného uzlu, takže jsou legitimní uživatelé odmítáni. Toho může útočník využít a "unést - spoof" IP adresu napadeného počítače. Tento útok neslouží pouze k zahlcení přístupu k uzlu, ale může být útokem sám o sobě. Je obecně používán jako DoS ve virech a je velmi jednoduché jej vytvořit.
Útoky – Smurf Attack, Fraggle Attack
Smurf Attack – Smurf a Fraggle útoky jsou nejsnadnější z pohledu prevence. Útočník posílá velké množství ICMP echo paketů na všeobecnou IP adresu a s falešnou zdrojovou adresou. Zdroj (napadená adresa) je zahlcena mnoha odpověďmi. Jednoduchá prevence spočívá v zablokování zprávy se všeobecnou adresou z cizích sítí. Fraggle Attack – tento typ útoku je tentýž jako Smurf s tím rozdílem, že používá UDP. Poslání UDP echo na všeobecnou adresu způsobí zaslání odpovědí ze všech cílových adres sítě na napadenou adresu. Obranou je opět blokování zpráv se všeobecnou adresou ze vzdálených sítí.
Útoky – Ping of Death, TearDrop a Application Attack
Ping of Death – útočník posílá do sítě nelegální ICMP echo pakety delší než 65536 slabik s cílem síť zničit. Tyto útoky jsou zastaralé a vážou se k NT4 a Win95. Teardrop – známý jako útok s IP fragmentací je DoS útok orientovaný na systémy pracující pod NT4.0, Win95 nebo Linux do 2.0.32. Podobně jako předchozí útok není dnes efektivní. Application Attack – Tyto DoS útoky mají za cíl využít zranitelných míst aplikačních programů pro pád systému nebo jeho restartování.
Denial of Services (DoS)
Architektura Útočící systém Oběť Zesilovač (mumie) Původní technologie DoS Generování a posílání paketů Jeden zdroj, jeden cíl Jeden zdroj, více cílů Více zdrojů, jeden cíl Více zdrojů, více cílů
Denial of Services (DoS) …
Útok záplavou paketů Zatížení přístupových cest Zatížení hostitelského systému Používají se pakety několika typů TCP – (TCP floods) – proud paketů s různě nastavenými příznaky (SYN, ACK, RST) ICMP – ICMP echo (ping floods) – tok ICMP paketů UDP – (UDP floods) – tok UDP echo paketů
Denial of Services (DoS) …
Změny atributů v paketu Zdrojová IP adresa IP spoofing – falešná IP zdrojová adresa Skrytí skutečné IP adresy zdroje Posílání odpovědí na IP adresu oběti Zdrojové/cílové porty TCP a UDP flooding útok (záplavou) Ztížení filtrování paketů Jiné hodnoty IP záhlaví Náhodný obsah parametrů IP záhlaví, cílová adresa zůstává konzistentní
Distribuovaný DoS (DDoS)
Automatizace útoku
Skenování systémů oběti s cílem identifikace (operační systém, běžící programy) Generování seznamu potenciálně napadnutelných systémů Generování seznamu kompromitovaných systémů Instalace prostředků pro útok
Modely automatické propagace
Propagace z centrálního zdroje Kopírování prostředků z centrálního zdroje do obětí (kompromitace systému) Přenos dat pomocí HTTP, FTP, RPC… Útok v další fázi
Distribuovaný DoS (DDoS) …
Propagace zpětným zavedením Inicializace zavedení prostředků z napadeného systému Prostředky v napadeném systému vyvolají spojení a natáhnou soubory Použití TFTP, http Rozšíření prostředků pro útok je decentralizované Autonomní propagace Metody napadaní zahrnují umístění instrukcí pro útok přímo do oběti Inicializace útoku cyklicky bez obnovy souborů z externího zdroje
Distribuovaný DoS (DDoS) …
Zesilování útoku Využití direkt broadcastů pro útok Univerzity a Ethernet – 200 počítačů v lok. Síti Ve směrovačích – test na totožnost příchozího a odchozího rozhraní Smurf – útok ICMP echo na broadcastů Fraggle – modifikace, UDP echo Pepsi attack – UDP na diagnostické porty síťových zařízení
DRDoS Distributed Reflection DoS
koordinátor útoku pošle TCP/SYN pakety na množinu serverů uvede falešnou zdrojovou adresu (adresu napadaného stroje) servery posílají TCP/SYN-ACK na napadený stroj ztracené pakety se posílají znovu – další navýšení provozu obelhané servery nemusí být napadeny, chovají se podle pravidel nebezpečí pro BGP směrovače (TCP/179) obrana serverů – bezestavové navazování spojení (cookies)
DNS reflection attacks, DNS zesilování
využívá rekurze DNS serverů open resolver – příjem požadavků od systémů mimo oblast velké množství napadených DNS serverů dlouhé UDP pakety (omezení 512) – fragmentace (60/4000) zesílení – požadavek 60 slabik, odpověď 512 nalezeno 580 000 otevřených resolverů v Internetu útočník vytvoří dotaz na všechny záznamy v doméně, velký UDP buffer
Útok na TCP – snížení rychlosti
Shrew attack – rejsek minRTO = 1s RTT = 10ms až 100ms útok na RTT – slow start – opakování startu od začátku vysílání krátkých pulzů, zatěžujících síť (DoS) 50ms/1s vede ke ztrátám paketů – opakování přenosu TCP synchronizuje restarty – zpomalení těžko detekovatelné
Scanování portů (ftp, telnet, smtp, finger, http)
TCP connect scanning – základní způsob scanování portů. Útočník se zkusí připojit voláním connect ke každému portu – pokud na portu naslouchá démon, spojení se podaří. Výhodou je rychlost (lze scanovat více portů paralelně), velkou nevýhodou je ovšem snadné rozpoznání scanu cílovým strojem.
Scanování portů …
TCP SYN scanning – nedochází k úplnému navázání spojení, proto se této metodě říká „half-open scanning“. Útočník vyšle paket s nastaveným příznakem SYN, který indikuje snahu navázat spojení. Cílový počítač odpoví buď paketem SYN|ACK (značí, že daný port naslouchá) nebo RST (port je uzavřen). Pokud se útočníkovi vrátí SYN|ACK, vyšle okamžitě paket RST, který spojení přeruší. Uvedený způsob scanování je zalogován mnohem menším množstvím systémů, a proto je pro hackery daleko vhodnější. Potenciální nevýhodou je nutnost mít administrátorská privilegia na stroji, odkud se útok provádí.
Scanování portů …
TCP FIN scanning – jak jsem již zmínil, ani TCP SYN scanování není dostatečně tajné a je velmi často logováno. Některé firewally registrují příchozí pakety SYN a také IDS (Intrusion Detection Software) si jich obvykle všimne. Například pakety FIN však mohou někdy proklouznout nepovšimnuty. Uzavřené porty totiž na paket FIN odpovídají paketem RST, zatímco otevřené porty příchozí pakety FIN ignorují. Bohužel to není pravidlem – některé systémy odpovídají paketem RST, ať je port otevřený nebo ne. Využitelnost této metody je tedy pro útočníky malá.
Scanování portů …
Fragmentation scanning – jedná se o modifikaci již zmíněných metod. Místo poslání celého paketu ho rozdělíme do několika malých fragmentů, které nepůsobí podezřele. Metoda nefunguje u paketových filtrů a firewallů, které hromadí příchozí pakety do fronty, nicméně je úspěšná ve velkém množství případů.
Scanování portů …
TCP reverse ident scanning – tzv. ident protokol ([RFC 1413]) umožňuje zjistit, pod jakým uživatelským jménem běží proces na některém z otevřených portů. Můžeme tak scanovat všechny porty a zjišťovat, zda služby na těch otevřených běží s administrátorskými privilegii. Jedná se o cennou informaci – hacker nebude napadat službu, která není spuštěna s právy superuživatele.
Scanování portů …
TCP Null scanning – útočník posílá pakety se sekvenčním číslem, ale bez nastavených příznaků (FIN, SYN, PSH…). Uzavřené porty odpoví paketem RST, otevřené porty budou pakety ignorovat.
Scanování portů …
UDP ICMP port unreachable scanning – scanování UDP portů je složitější než u TCP portů, protože otevřené UDP porty nemusí posílat potvrzení jako odpověď na naše pakety a ani uzavřené porty nemusí nijak odpovědět. Naštěstí cílová stanice odpoví ICMP_UNREACH_PORT při pokusu o navázání spojení s uzavřeným portem; seznam otevřených portů tedy získáme vylučovací metodou. Musíme však také vzít v potaz eventuální ztrátu paketů a do scanneru implementovat opakované zaslání paketu. Metoda je navíc dost pomalá, protože frekvence odpovědí ICMP_UNREACH_PORT není příliš velká (aby nedošlo ke zbytečné alokaci dostupných prostředků). UDP scanner není hackery příliš využíván, ale zkušenosti ukazují, že v některých případech (např. u systémů Solaris) může být pro ně užitečný.
Příklady programů
Trino – inicializuje UDP útoky na náhodné porty. Je distribuovaný, typu master/slave, pro nešifrovanou komunikaci používá porty 1524/TCP, 17665/TCP, 27444/UDP, 31335/UDP, ale ty mohou být snadno změněny. TFN (Tribal Flood Network) – decentralizovaný, používá IP spoofing. Pro výměnu zpráv používá ICMP Echo replay, komunikace není šifrovaná.
Příklady programů …
TFN 2K – je vylepšenou variantou TFN. Používá šifrovanou komunikaci, agent je těžko zjstitelný, protože nekomunikuje. Ke komunikaci nepoužívá vyhrazené porty, ty jsou vybrány náhodně programem. Stracheldracht – (německy ostnatý drát) je prostředek pro DDoS útok, vycházející z TFN a kombinující výhody Trino s výhodami TFN. Komunikace mezi útočníky je šifrovaná. Je zajištěn automatická obnova agentů. Pro komunikaci se používá TCP a ICMP. Pro komunikaci se používají implicitně porty 1660/TCP, 65000/TCP, ICMP Echo, ICMP Echo Replay, ale mohou být jednoduše změněny.