Denial of service

Denial-of-service (DoS) (česky odepření služby) je typ útoku na internetové služby nebo stránky, jehož cílem je cílovou službu znefunkčnit a znepřístupnit ostatním uživatelům; může k tomu dojít zahlcením obrovským množstvím požadavků či využitím nějaké chyby, která sice útočníkovi neumožní službu ovládnout, ale umožní ji znefunkčnit. Podtypem útoku DoS je tzv. distributed denial-of-service (DDoS), při kterém je pro zahlcení cílové služby požadavky využito velké množství počítačů z různých geografických lokalit ("distribuovaných").

Projevy

United States Computer Emergency Readiness Team definuje příznaky DDoS útoku takto:

  • neobvyklé zpomalení služby (při otvírání souborů nebo prostém přístupu),
  • celková nedostupnost části nebo celých stránek,
  • nemožnost se ke stránkám připojit a
  • extrémní nárůst obdrženého spamu.

Splnění některých podmínek ale ještě neznamená DoS útok, může jít o prostý výpadek zaviněný hardwarem nebo softwarem samotného serveru bez cizího zavinění.

Typy útoku

Všechny typy se vyznačují několika společnými charakteristikami:

  • zaplavení provozu na síti náhodnými daty, které zabraňují protékání skutečných dat,
  • zabránění nebo přerušení konkrétnímu uživateli v přístupu ke službě,
  • narušení konfiguračního nastavení,
  • extrémnímu zatížení CPU cílového serveru,
  • vsunutím chybových hlášení do sekvence instrukcí, které mohou vést k pádu systému,
  • pád samotného operačního systému.

ICMP floods

Smurf attack spočívá na chybné konfiguraci systému, který dovolí rozeslání paketů všem počítačům zapojených v síti přes broadcast adresu. Pak stačí aby odeslaný paket měl dostatečnou velikost aby nebyl odfiltrován a všechny počítače v síti ho budou muset přijmout a zpracovat.

Ping-flood stojí na zahlcení cílového počítače žádostmi o odezvu ping (protokol ICMP). Základním předpokladem je, že útočník má k dispozici rychlejší připojení k internetu s možností většího objemu dat. Tento druh útoku je nejjednodušší ve svém provedení, stačí použít „ping -t hostname/ip adresa cíle“ k odesílání nekonečného proudu žádostí na cílový počítač.

SYN flood zasílá záplavu TCP/SYN paketů s padělanou hlavičkou odesílatele. Každý takový paket je serverem přijat jako normální žádost o připojení. Server tedy odešle TCP/SYN-ACK packet a čeká na TCP/ACK. Ten ale nikdy nedorazí, protože hlavička odesílatele byla zfalšována. Takto polootevřená žádost nějakou dobu blokuje jiné, legitimní žádosti o připojení.

Teardrop útok

Tento typ útoku zahrnuje zaslání IP fragmentu s překrývajícím se příliš velkým nákladem dat na cílový počítač. Chyba v TCP/IP při přeskládání takového paketu může na starších operačních systémech vést až k jejich pádu.

Peer-to-peer útok

Peer-to-peer útok je využití masivního množství lidí na P2P sítích. Prakticky jde o zneužití chyby v klientu (většinou se jako příklad uvádí DC++) k odpojení od stávajícího serveru a pokusu o připojení k oběti. Při dobře provedeném útoku může být oběť vystavena najednou až 750.000 žádosti o připojení. I když tento útok se dá snadno odfiltrovat pomocí identické hlavičky p2p klienta, při masivním útoku i sama filtrace může vyústit v pád systému.

Nukes

Nukes jsou speciální pakety určené k zničení cílového počítače. Ne vždy je totiž pro DoS třeba server zahltit, občas se v něm nalézá chyba, která zapříčiní pád při zpracování jediného paketu. Typickým příkladem je WinNuke, který využívá chybu v NetBIOS handleru systému Windows 95.

Distributed DoS

Útok Distributed DoS (česky distribuovaný DoS, zkráceně DDoS) je charakterizován větším množstvím počítačů, snažících se najednou zahltit cíl útoku. Často je tento útok veden bez vědomí majitelů útočících počítačů a jedná se o důsledek napadení a úspěšného infikování těchto systémů.

Jeden způsob je infikování počítače malwarem, který má v sobě pevně danou IP adresu oběti útoku a datum, kdy se program pokusí na cíl zaútočit. Po úspěšném infikování počítače tedy již útočník s daným systémem nemusí nijak komunikovat a útok proběhne automaticky. Příkladem takovéto infekce může být program MyDoom.

Systém může být také napaden programem (botem), který poté běží jako rezidentní proces a čeká na příkazy útočníka (tvůrce bota). Takto napadený systém se nazývá jako zombie a společně s ostatními počítači, napadenými stejným programem, tvoří takzvaný botnet. Typickým příkladem nástroje pro vykonání DDoS útoku je program Stacheldraht. Tento program vytváří vícevrstvou strukturu, kde útočník (správce botnetu) přes několik prostředníků (napadený systém, který rozesílá příkazy zombie počítačům) ovládá celý botnet a pomocí klasických DoS útoků, jako např. SYN flood, smurf attack, vykonávaných těmito zombie počítači, zahltí cílový systém. Na rozdíl od pevně zakódovaných DDoS útoků, botnet může být kdykoliv využit k napadení libovolné IP adresy zaslané zombie počítačům.

Distribuovaný DoS útok má oproti normálnímu útoku několik výhod. Za prvé, větší množství útočníků (zombie počítačů v botnetu) může generovat větší množství síťového provozu, než jeden počítač, a tím způsobí větší zatížení cílového systému. Za druhé, útok více útočníků je těžší ošetřit (vystopovat útočící systémy a odfiltrovat je od normálního provozu serveru) např. i proto, že více jednotlivých útočících systémů může být méně agresivních, než kdyby byl útok veden jen jedním systémem, což může ztížit jejich odhalení. Výhodou je také škálovatelnost útoku, kdy útočník může snadno měnit počet útočících počítačů, takže například, pokud oběť zvýší přenosovou kapacitu svého internetového připojení nebo zvětší výpočetní výkon napadeného počítače (CPU, RAM), může útočník jednoduše přidat k útoku další zombie počítače.

V některých případech může být počítač součástí DDoS útoku s majitelovým vědomím. Příkladem může být incident z prosince roku 2010, kdy přívrženci projektu WikiLeaks uspořádali DDoS útok na servery majoritních platebních společností (např. PayPal a další) v takzvané „Operation Avenge Assange“ (Operace pomstěte Assangeho). V takovýchto případech sami majitelé počítačů stáhnou a spustí příslušný program, aby se připojili k útoku.

Některé útoky (jako například SYN flood) mohou imitovat rozsáhlý DDoS útok tím, že jednotlivé pakety přicházejí zdánlivě z mnoha různých IP adres. Vzhledem k tomu, že zdrojová IP adresa se dá relativně jednoduše podvrhnout, mohou tyto pakety pocházet z mnohem menšího počtu útočících systémů, než by se zdálo, nebo dokonce mohou pocházet všechny z jediného zdroje.

Reflected / Spoofed útok

Odražený / podvržený distribuovaný DoS útok (DRDoS, anglicky Distributed Reflected Denial of Service attack) spočívá v rozeslání podvržených požadavků na velké množství počítačů, které poté na tyto požadavky odpoví. Podvržené požadavky mají jako zdrojovou adresu uvedenou adresu oběti, která je pak zahlcena odpověďmi na tyto požadavky.

Za určitou formu odraženého útoku může být považován také ICMP Echo útok (takzvaný Smurf attack), kdy útočník zašle podvržený požadavek Echo request na broadcast adresy nevhodně nakonfigurovaných sítí. Výsledkem pak je velké množství odpovědí na tento Echo požadavek, které jsou díky podvržené zdrojové adrese nasměrovány na systém oběti.

K provedení odraženého útoku může být využito mnoho síťových služeb, jedna z metod například využívá DNS servery k zesílení účinku útoku (DNS Amplification útoky).

Obrana

SYN cookies

SYN cookies vnitřně modifikují chování TCP protokolu tak, že k vlastním zdrojům serveru se přistupuje až po ověření platnosti adresy. Tímto postupem se dá velmi účinně předejít SYN Flood útoku. Implementace této obrany je běžná na Solaris a Linux systémech.

Firewall

Přestože obsahuje jednoduché procesy k blokování IP adres či celých protokolů, z logiky věci nemůže být účinný absolutně. Nelze zcela zablokovat port, protože by tím byli od služby odříznuti i legitimní uživatelé.

Intrusion Prevention System

Intrusion Prevention System je účinný pouze v případě, že útok má shodný podpis (například část hlavičky) s již dříve provedeným útokem. Podle podpisu totiž může začít okamžitě filtrovat pokusy o DoS od normálního provozu na síti.

Externí odkazy