Ping_of_death

 

Ping smrti je typ útoku na počítač, který zahrnuje odeslání poškozené nebo jinak škodlivý ping do počítače.

Správně tvořil ping zpráva je obvykle 56 bajtů ve velikosti, nebo 84 bajtů, kdy Internet Protocol je považován [IP] záhlaví. Historicky, mnoho počítačových systémů nemohl správně zpracovat ping paket větší než maximální IPv4 velikost paketu 65 535 bajtů . Větší pakety by zhroucení cílového počítače.

V prvních implementací TCP / IP , tato chyba se snadno zneužít. Tento exploit ovlivněny širokou škálu systémů, včetně Unix , Linux , Mac , Windows , tiskáren a routerů .

Obecně platí, že posílání 65536 bajtů ping paket porušuje Internet Protocol jak je uvedeno v RFC 791 , ale paket takové velikosti může být zaslána, pokud je roztříštěný; když cílový počítač sestavuje paket, přetečení vyrovnávací paměti může dojít, což často způsobuje zhroucení systému .

V uplynulých letech, jiný druh ping útoku stal se rozšířený, ping záplavy prostě zaplaví oběť tolik ping provozu, že normální provoz nedosahuje systému. To představuje základní denial-of-service útok .

Podrobné informace
Jak je definováno v RFC 791 , maximální délka paketu z paketu IPv4 včetně IP hlavičky je 65535 (2 16 - 1) bajtů, omezení předložený použití 16-bitové celé IP hlavičky, která popisuje celkovou délku paketu.

Podkladových dat Link Layer téměř vždy představuje omezení na maximální velikost rámce (viz MTU ). V Ethernetu , je to obvykle 1500 bajtů. V takovém případě, velký IP paket je rozdělen na více IP paketů (také známý jako fragmenty IP), tak, aby každý fragment IP se bude shodovat s uloženou limit. Přijímač fragmentů IP bude znovu sestavit je do kompletního IP paketu, a bude pokračovat ve zpracování jako obvykle.

Když fragmentace se provádí každý fragment IP musí nést informaci o tom, které části původního IP paketu, které obsahuje. Tyto informace jsou uloženy v Fragment Offset pole v hlavičce IP. Toto pole je 13 bitů dlouhá a obsahuje offset dat v aktuálním fragment IP, v původním IP paketu. Offset je uvedena v jednotkách 8 bajtů. To umožňuje maximální posun 65528 ((2 13 -1) * 8). To znamená, že fragment IP s maximální offset by měl mít údaje ne větší než 7 bajtů, jinak by došlo k překročení limitu maximální délku paketu. Uživatel se zlými úmysly může poslat fragment IP s maximální offset a mnohem více dat než 8 bajtů (tak velké, jako fyzické vrstvě umožňuje být).

Když přijímač sestavuje všechny fragmenty IP, bude to skončit s IP paketu, který je větší než 65535 bajtů. To může případně přetečení vyrovnávací paměti, který přijímač přidělené pro paket, a může způsobit různé problémy.

Jak je zřejmé z výše uvedeného popisu, problém nemá nic společného s ICMP . Je to problém v montážního procesu fragmentů IP, které může obsahovat jakýkoli typ protokolu ( TCP , UDP , IGMP , atd.).

Oprava tohoto problému je přidat kontrol v montážního procesu. Kontrola za každou příchozí IP fragment je zajištěno, že součet "Fragment Offset" a "Celková délka" pole v IP hlavičce každého fragmentu IP je menší než 65,535. Je-li tento součet větší, pak paket je neplatný, a fragment IP je ignorována. Tato kontrola je prováděna některými firewally , ochrana počítače, které nemají Opravena chyba. Další oprava tohoto problému je použití vyrovnávací paměti větší než 65535 bajtů pro opětovné sestavení paketu. (To je v podstatě lámání specifikace, protože to přidává podporu pro pakety větší než ty, povoleno.)