Ping of death är en typ av nätverksattack där offrets dator får en speciellt förfalskad ekoförfrågan ( ping ), varefter den slutar svara alls ( DoS ). Denna sårbarhet var utbredd i mitten av 1990-talet på olika operativsystem och nätverksenheter, inklusive Unix , Linux , Mac , Windows , nätverksskrivare och routrar . För att utföra denna attack räckte ett kommando från Windows 95 eller NT : [1]
ping -l 65510 example.com [2]De allra flesta system korrigerades 1997-1998 , så denna sårbarhet är nu historisk.
En normal ekobegäran är 64 byte lång (plus 20 byte av IP- huvudet). Enligt RFC 791 IPv4- standarden får den totala storleken på ett paket inte överstiga 65 535 byte . Om du skickar ett ICMP- paket av den här storleken eller större kan datorns nätverksstack svämma över och orsaka överbelastning . Ett sådant paket kan inte överföras över nätverket som helhet, men för överföring kan det fragmenteras i flera delar, vars antal beror på den fysiska kanalens MTU .
Under fragmentering får varje del en fragmenteringsförskjutning, vilket är positionen för början av innehållet i delen i förhållande till originalpaketet och upptar 13 bitar i IP-pakethuvudet. Detta gör att du kan få en maximal offset på 65 528 byte , dvs. ett fragment med en maximal offset får inte överstiga 7 byte ( ), annars kommer det att överskrida den tillåtna storleken på IP-paketet, vilket kan orsaka att offrets PC- buffert översvämmar , vars storlek beräknas för ett standardpaket, och krascha datorn .
Denna sårbarhet är tillämplig på alla transportprotokoll som stöder fragmentering ( TCP , UDP , IGMP , ICMP , etc.).
Lösningen på detta problem är att införa en extra kontroll av storleken på det insamlade paketet vid mottagandet, som summerar fragmenteringsförskjutningarna för alla relaterade paket. Om summan överstiger 65 535 anses paketet vara ogiltigt och kasseras. En liknande kontroll kan också utföras i brandväggar .