Il Ping of Death (in italiano “ping della morte”) è un attacco alla rete che ha una lunga storia e com­por­ta­va un crash immediato sui sistemi vul­ne­ra­bi­li. Tuttavia, dal 1998 circa l’attacco non funziona più sulla maggior parte dei di­spo­si­ti­vi.

L’attacco Ping of Death utilizza l’Internet Control Message Protocol (ICMP), anche se in linea di principio si possono uti­liz­za­re anche altri pro­to­col­li basati su IP. Poiché i sistemi moderni sono protetti contro il Ping of Death, gli hacker ma­lin­ten­zio­na­ti tendono oggi ad avvalersi del correlato – almeno nel nome – ping flood per gli attacchi.

Cos’è il Ping of Death?

Il Ping of Death è uno degli attacchi Denial of Service (DoS). Per innescare l’attacco, un hacker invia un pacchetto di dati maligni al computer target. Quando il sistema di de­sti­na­zio­ne elabora il pacchetto dati, si attiva un errore che provoca il crash del sistema.

Con­cet­tual­men­te, il Ping of Death è pa­ra­go­na­bi­le a un pacchetto bomba: se la vittima apre il pacchetto, il mec­ca­ni­smo si attiva e il bersaglio viene attaccato o distrutto. Il comando ping, da cui prende il nome, viene so­li­ta­men­te uti­liz­za­to per ve­ri­fi­ca­re se una macchina è di­spo­ni­bi­le in rete. Tec­ni­ca­men­te, il comando ping si basa sull’Internet Control Message Protocol (ICMP). Il pro­to­col­lo viene uti­liz­za­to per co­mu­ni­ca­re in­for­ma­zio­ni di stato in Internet.

Sotto il termine generico di attacchi Denial of Service sono clas­si­fi­ca­ti diversi tipi di attacchi: il Ping of Death, così come il SYN flood, è uno degli attacchi di pro­to­col­lo. Inoltre, ci sono gli attacchi al livello dell’ap­pli­ca­zio­ne, che includono l’HTTP flood, e gli attacchi vo­lu­me­tri­ci, che inondano il bersaglio con un flusso di dati. Questi ultimi includono il ping flood, con cui il Ping of Death condivide in parte il nome, e l’UDP flood, che è diventato famoso con l’attacco DDoS “death star” e il “Low Orbit Ion Cannon”.

Come funziona il Ping of Death

Per eseguire un attacco ping della morte, l’hacker genera un pacchetto ICMP più grande del con­sen­ti­to. Il pacchetto viene suddiviso in frammenti più piccoli per il trasporto. Quando si ricompone dalla parte del de­sti­na­ta­rio, l’ultimo frammento supera la di­men­sio­ne con­sen­ti­ta. Questo causa un buffer overflow sui sistemi non protetti. Il risultato: il sistema si blocca o collassa com­ple­ta­men­te; si verifica così un Denial of Service.

Un pacchetto ICMP di tipo “echo” ha so­li­ta­men­te una di­men­sio­ne di 56 byte. Al contrario, un pacchetto Ping of Death con i suoi minimi 65.535 byte è oltre mille volte più grande. La li­mi­ta­zio­ne a una di­men­sio­ne totale di 65.535 byte per pacchetto è ri­con­du­ci­bi­le al sot­to­stan­te pro­to­col­lo Internet (IP).

Per generare un pacchetto Ping of Death, un hacker usa il comando ping della riga di comando. Il fattore decisivo è un parametro opzionale il cui valore specifica le di­men­sio­ni del campo dati ICMP. Nei sistemi Windows, l’opzione si chiama ‘-l’ (per load “carico”). Su altri sistemi viene invece uti­liz­za­ta l’opzione ‘-s’ (per size “di­men­sio­ne”).

Ping of Death su Windows:

ping <indirizzo ip> -l 65500 -w 1 -n 1

Ping of Death su Linux/UNIX/macOS:

ping < Indirizzo IP> -s 65500 -t 1 -n 1

Misure di difesa contro gli attacchi Ping of Death

Il Ping of Death è un attacco storico. Dalla scoperta dell’attacco nel 1997 sono state apportate modifiche al software del server e ai sistemi operativi. Ulteriori controlli as­si­cu­ra­no che non venga superata la di­men­sio­ne massima dei pacchetti quando i frammenti IP vengono uniti insieme. In al­ter­na­ti­va, l’utilizzo di un buffer più grande può pro­teg­ge­re dal temuto buffer overflow. La maggior parte dei sistemi odierni non è quindi più vul­ne­ra­bi­le al Ping of Death.

Anche i pacchetti dannosi vengono filtrati mentre passano at­tra­ver­so la rete. Questo può essere fatto a livello di router e firewall o uti­liz­zan­do un Content Delivery Network (CDN). Per ogni frammento IP ne viene ana­liz­za­to l’header. La formula “Fragment Offset + Total length ≤ 65.535 Bytes” deve essere valida per ogni frammento. Se un frammento IP viola questa formula, la di­men­sio­ne totale con­sen­ti­ta verrebbe superata durante la ri­com­po­si­zio­ne. Il pacchetto viene invece respinto.

In sintesi

Dal momento che i sistemi moderni sono di solito protetti contro il Ping of Death, esso non rap­pre­sen­ta oggi una minaccia per gli utenti.

Vai al menu prin­ci­pa­le