ICMP è stato progettato per aiutare a determinare le caratteristiche della rete. PING è un'applicazione di ICMP.
ICMP ha due modalità di funzionamento:
- Interrogare la rete richiedendo pacchetti e interpretando la risposta
- Segnala condizioni di errore non transitorio tramite i messaggi di errore
Gli errori sono prodotti in condizioni speciali come:
- La rete non è raggiungibile: ciò aiuterebbe a mappare la rete.
- L'host è irraggiungibile: mostrerebbe quali host sono online
- Protocol non raggiungibile: mostra quali protocolli sono supportati
- Porta non raggiungibile: alcuni server indicano attraverso questo messaggio di errore che nessun processo è in ascolto su quella porta
- Il datagramma è troppo grande: mostrerebbe quale tecnologia viene utilizzata nella rete.
- E molti altri, ad esempio per distinguere tra il kernel di Linux e quello del dispositivo di rete, possono essere utilizzati il metodo di misurazione delle impronte digitali delle dimensioni dell'errore ICMP Quoting
Utilizzando i messaggi e gli errori ICMP è possibile raccogliere informazioni sostanziali sulla rete:
- Rilevamento host
- Topologia di rete
- Rilevamento ACL
- Rilevamento filtro pacchetti
- Impronta digitale OS
I messaggi di errore ICMP non sono in genere coinvolti nell'attacco diretto alla rete, ma aiuterebbero un utente malintenzionato a capire meglio la rete e sapere come e dove attaccare. Pertanto questa informazione non dovrebbe lasciare la rete perché non dovrebbe essere disponibile per le persone esterne alla rete.