Ping of death
Z Multimediaexpo.cz
Ping of Death je v počítačové síti varianta útoku typu Denial of Service využívající chyby v implementaci protokolu TCP/IP.
Program ping se běžně používá pro ověření, zda vzdálený server pracuje. Mnoho počítačových systémů neumělo zpracovat ping vetší než 65535 bajtů, což je maximální velikost paketu v protokolu IP. Tento abnormálně velký paket pak útočník pošle do určité sítě, kde může způsobit chyby (obvykle tzv. přetečení zásobníku) vedoucí k selhání systémů, které nejsou proti takovým chybným paketům odolné.
Tato chyba byla relativně lehce zneužitelná. Poslat ping o nedovolené velikosti standardně není možné. Pokud je však paket fragmentovaný, lze poslat i vetší než povolenou velikost. Jakmile ho cílový počítač defragmentuje, může dojít ke zmíněnému přetečení zásobníku a pádu systému.
Tato chyba postihla mnoho systémů včetně Unixu, Linuxu, Macu, Windows, ale také tiskárny a routery (směrovače). V letech 1997–1998 byla však drtivá většina systémů opravena, takže se dnes jedná spíše o historickou chybu.
Časem se však rozšířil další druh útoku, tzv. ping flood. Ve zkratce jde o to, že se cílová linka zahltí ping pakety. Ve snaze odpovědět na ping dojde i k zahlcení odchozí komunikace cílové linky.
Technické vysvětlení
RFC 791 definuje, že maximální velikost IP paketu je 65535 bajtů. Limit vychází z toho, že na popis velikosti paketu je určeno číslo o šířce 16 bitů (216 -1).
U ethernetu je maximální velikost přenášeného fragmentu 1500 bajtů (viz MTU). Proto jsou větší pakety děleny (fragmentovány), aby splnily daný limit. Příjemce tyto fragmenty spojí zpět do jednoho paketu a zpracuje ho.
Pokud dojde k fragmentaci, každý IP fragment musí obsahovat informaci, na jaké místo v kterém paketu patří. Tato informace se nachází v 13bitové části Fragment offset v IP hlavičce. Neobsahuje nic jiného než offset – posun tohoto fragmentu v původním IP paketu – v jednotkách 8 bajtů, čímž lze zapsat maximální offset 65 528 (213 -1 × 8). Znamená to, že IP fragment s maximálním offsetem by neměl obsahovat data větší než 7 bajtů, jinak by paket překročil povolenou velikost.
Útočník však může poslat IP fragment s maximálním offsetem a daty mnohem většími než 7 bajtů. Jakmile je příjemce spojí, dostane IP paket mnohem větší, než je povolená velikost 65535 bajtů. Dojde k přetečení paměťového prostoru, který byl vyhrazen pro paket. To může způsobit mnoho problémů.
Z popisu vyplývá, že se tento problém týká zpracování IP fragmentů a nikoliv ICMP. Proto se může vyskytnout i u jiných protokolů (TCP, UDP, IGMP atd.)
Řešením je kontrolovat spojování IP fragmentů. Musí platit, že součet polí Fragment Offset a Total Length v IP hlavičce každého fragmentu je menší než 65535 bajtů. Pokud je součet větší, paket je neplatný a IP fragment je zahozen. Tento součet poskytují například některé firewally. Je tu i možnost použít ke spojení IP fragmentů větší paměťový prostor např. 32-bitový (dochází k porušení specifikací pro daný protokol, navíc je zde možná podpora paketů o velikosti skoro 1 MB).
Externí odkazy
Náklady na energie a provoz naší encyklopedie prudce vzrostly. Potřebujeme vaši podporu... Kolik ?? To je na Vás. Náš FIO účet — 2500575897 / 2010 |
---|
Informace o článku.
Článek je převzat z Wikipedie, otevřené encyklopedie, do které přispívají dobrovolníci z celého světa. |