Ping of death je typ síťového útoku , při kterém počítač oběti obdrží speciálně podvržený požadavek na echo ( ping ), po kterém přestane vůbec reagovat ( DoS ). Tato zranitelnost byla rozšířena v polovině 90. let na různých operačních systémech a síťových zařízeních, včetně Unixu , Linuxu , Macu , Windows , síťových tiskáren a směrovačů . K provedení tohoto útoku stačil jeden příkaz z Windows 95 nebo NT : [1]
ping -l 65510 example.com [2]Velká většina systémů byla opravena v letech 1997-1998 , takže tato zranitelnost je nyní historická.
Normální požadavek na echo je dlouhý 64 bajtů (plus 20 bajtů hlavičky IP ). Podle standardu RFC 791 IPv4 nesmí celková velikost paketu přesáhnout 65 535 bajtů . Odeslání paketu ICMP této velikosti nebo větší může způsobit přetečení síťového zásobníku počítače a odmítnutí služby . Takový paket nelze přenášet po síti jako celek, ale pro přenos může být fragmentován do několika částí, jejichž počet závisí na MTU fyzického kanálu.
Během fragmentace obdrží každá část ofset fragmentace, což je pozice začátku obsahu části vzhledem k původnímu paketu a zabírá 13 bitů v hlavičce IP paketu. To vám umožní získat maximální offset 65 528 bajtů , tj. fragment s maximálním offsetem nesmí překročit 7 bajtů ( ), jinak překročí povolenou velikost IP paketu, což může způsobit přetečení vyrovnávací paměti PC oběti , jejíž velikost se počítá pro standardní paket, a zhroucení počítače .
Tato chyba zabezpečení je použitelná pro jakýkoli transportní protokol, který podporuje fragmentaci ( TCP , UDP , IGMP , ICMP atd.).
Řešením tohoto problému je zavedení dodatečné kontroly velikosti shromážděného paketu při příjmu, která sčítá offsety fragmentace všech souvisejících paketů. Pokud součet překročí 65 535, paket je považován za neplatný a zahozen. Podobnou kontrolu lze provést také ve firewallech .