ICMP (Internet Control Message Protocol)

ICMP (Internet Control Message Protocol) è un protocollo di segnalazione degli errori che i dispositivi di rete come i router utilizzano per generare messaggi di errore all’indirizzo IP di origine quando problemi di rete impediscono la consegna di pacchetti IP. ICMP crea e invia messaggi all’indirizzo IP di origine che indicano che un gateway per Internet, come un router, un servizio o un host, non può essere raggiunto per la consegna dei pacchetti. Qualsiasi dispositivo di rete IP ha la capacità di inviare, ricevere o elaborare messaggi ICMP.

ICMP non è un protocollo di trasporto che invia dati tra sistemi.

Mentre ICMP non viene utilizzato regolarmente nelle applicazioni dell’utente finale, viene utilizzato dagli amministratori di rete per risolvere i problemi delle connessioni Internet nelle utilità di diagnostica, tra cui ping e traceroute.

Per che cosa si usa ICMP?

ICMP è un protocollo a livello di rete utilizzato da router, dispositivi intermedi e host per comunicare informazioni sugli errori o aggiornamenti ad altri router, dispositivi intermedi e host.

I messaggi ICMP vengono inviati in diversi scenari. Ad esempio, se un dispositivo invia un messaggio troppo grande per l’elaborazione del destinatario, il destinatario rilascia il messaggio e invia un messaggio ICMP all’origine. Un altro esempio è quando il gateway di rete trova un percorso più breve per il messaggio su cui viaggiare. Quando ciò accade, viene inviato un messaggio ICMP e il pacchetto viene reindirizzato al percorso più breve.

ICMP viene utilizzato anche per la diagnostica di rete, in particolare le utilità ping e traceroute terminal.

diagramma dei messaggi echo
Quando l’host invia un messaggio echo di tipo 8, il server risponde con un messaggio di risposta echo di tipo 0 perché è raggiungibile.
  • Traceroute. L’utilità traceroute viene utilizzata per visualizzare il percorso di routing fisico tra due dispositivi Internet che comunicano tra loro. Traccia il viaggio da un router all’altro sometimes a volte chiamato hop. L’utilizzo di traceroute per diagnosticare i problemi di rete può aiutare gli amministratori a individuare l’origine di un ritardo di rete.
  • Ping. L’utilità ping è un traceroute più semplice. Invia ping – noto anche come messaggi di richiesta echo-e quindi misura la quantità di tempo che impiega il messaggio per raggiungere la sua destinazione e tornare all’origine. Queste risposte sono chiamate messaggi di risposta echo. I ping sono utili per raccogliere informazioni sulla latenza su un dispositivo specifico. A differenza di traceroute, però, ping non fornisce mappe immagine del layout di routing. L’utilità ping viene spesso sfruttata anche per alcuni attacchi denial of Service (DoS).

Il protocollo Internet ampiamente utilizzato versione 4, o classe di indirizzo IPv4, e il più recente IPv6 utilizzare versioni simili del protocollo ICMP-ICMPv4 e ICMPv6, rispettivamente.

Diagramma destinazione irraggiungibile
Host A tenta di inviare un pacchetto IP all’host B. L’host B è irraggiungibile, quindi il router risponde con un messaggio ICMP di tipo 3.

Come agisce ICMP?

ICMP è uno dei principali protocolli della suite IP. Tuttavia, ICMP non è associato a nessun protocollo di livello di trasporto, come Transmission Control Protocol (TCP) o User Datagram Protocol (UDP). Si tratta di un protocollo senza connessione, il che significa che un dispositivo non ha bisogno di aprire una connessione con il dispositivo di destinazione prima di inviare un messaggio. Ciò contrasta con TCP, ad esempio, in cui è necessario stabilire una connessione prima che un messaggio possa essere inviato, stabilendo che entrambi i dispositivi sono pronti tramite un handshake TCP.

I messaggi ICMP vengono trasmessi come datagrammi e consistono in un’intestazione IP che incapsula i dati ICMP. Un datagramma, molto simile a un pacchetto, è un’entità indipendente indipendente di dati. Pensate a come un pacchetto che trasporta un pezzo di un messaggio più grande attraverso la rete. I pacchetti ICMP sono pacchetti IP con ICMP nella porzione di dati IP. I messaggi ICMP contengono anche l’intera intestazione IP del messaggio originale, quindi il sistema finale sa quale pacchetto non è riuscito.

L’intestazione ICMP appare dopo l’intestazione del pacchetto IPv4 o IPv6 ed è identificata come protocollo IP numero 1. Il protocollo contiene tre parametri, spiegati di seguito. Seguendo i tre parametri sono i dati ICMP e l’intestazione IP originale che identifica quale pacchetto non è riuscito.

Parametri ICMP

I parametri ICMP esistono nell’intestazione del pacchetto e aiutano a identificare gli errori nel pacchetto IP a cui appartengono. I parametri sono come un’etichetta di spedizione su un pacchetto. Forniscono informazioni identificative sul pacchetto e sui dati che contiene. In questo modo, i protocolli e gli strumenti di rete che ricevono il messaggio ICMP sanno come gestire il pacchetto.

I primi 32 bit dell’intestazione del pacchetto di ogni messaggio ICMP contengono tre campi informativi o parametri. Questi tre parametri sono i seguenti:

  1. Tipo. I primi 8 bit sono i tipi di messaggio. Alcuni tipi di messaggi comuni includono quanto segue:
      1. Tipo 0 — Echo reply
      2. Tipo 3 — Destination unreachable
      3. Tipo 8 — Echo
      4. Tipo 5 — Redirect

    Il tipo fornisce una breve spiegazione di ciò che il messaggio è per tanto la ricezione del dispositivo di rete sa perché è il messaggio e come trattarla. Ad esempio, un Echo di tipo 8 è una query inviata da un host per verificare se è disponibile un potenziale sistema di destinazione. Dopo aver ricevuto un messaggio Echo, il dispositivo ricevente potrebbe inviare una risposta Echo (Tipo 0), indicando che è disponibile.

    Internet Assigned Numbers Authority (IANA) fornisce un elenco di tutti i tipi di messaggi utilizzati dai pacchetti ICMP.

  2. Codice. I prossimi 8 bit rappresentano il codice del tipo di messaggio, che fornisce ulteriori informazioni sul tipo di errore.
  3. Checksum. Gli ultimi 16 bit forniscono un controllo di integrità del messaggio. Il checksum mostra il numero di bit nell’intero messaggio e consente allo strumento ICMP di verificare la coerenza con l’intestazione del messaggio ICMP per assicurarsi che l’intera gamma di dati sia stata consegnata.

La parte successiva dell’intestazione ICMP è il puntatore. Consiste di 32 bit di dati che indicano il problema nel messaggio IP originale. In particolare, il puntatore identifica la posizione del byte nel messaggio IP originale che ha causato la generazione del messaggio problematico. Il dispositivo ricevente esamina questa parte dell’intestazione per individuare il problema.

La sezione finale del pacchetto ICMP è il datagramma originale. È composto da un massimo di 576 byte in IPv4 e 1.280 byte in IPv6 e include una copia del messaggio IP originale contenente errori.

Diagramma pacchetto ICMP
L’intestazione pacchetto ICMP viene dopo l’intestazione IPv4 o IPv6. Contiene tre parti: tipo, codice e checksum. L’intestazione è seguita dal puntatore, che identifica il problema nel messaggio originale, quindi viene fornito il datagramma originale.

ICMP negli attacchi DDoS

Negli attacchi DOS distribuiti (DDoS), gli aggressori sommergono il bersaglio con traffico indesiderato, in modo che il bersaglio non possa fornire servizio ai propri utenti. Esistono diversi modi in cui un utente malintenzionato può utilizzare ICMP per eseguire questi attacchi, tra cui i seguenti:

  • Ping della morte. L’attaccante invia un pacchetto IP più grande del numero di byte consentiti da IP. Sulla strada verso la destinazione prevista, il pacchetto sovradimensionato è frammentato. Tuttavia, quando il dispositivo ricevente lo riassembla, la dimensione supera il limite, causando un overflow del buffer e il blocco o l’arresto anomalo della macchina ricevente. I dispositivi più recenti hanno difese contro questo attacco di tipo precedente, ma i dispositivi di rete legacy sono ancora vulnerabili ad esso.
  • Attacco di inondazione ICMP. A volte chiamato un attacco ping flood, l’obiettivo di questo attacco è quello di sopraffare il dispositivo di destinazione con pacchetti di richiesta echo. Ogni pacchetto di richiesta echo deve essere elaborato dalla destinazione e risposto con messaggi di risposta echo. Questo fa schifo tutte le risorse del computer di destinazione, e provoca un denial of service a tutti gli altri utenti del computer di destinazione.
  • Attacco Puffo. In un attacco Smurf, l’attaccante invia un pacchetto ICMP con un indirizzo IP di origine falsificato, e l’apparecchiatura di livello di rete risponde al pacchetto, inviando l’indirizzo falsificato una marea di pacchetti. Come il ping della morte, gli attacchi di Puffo hanno maggiori probabilità di lavorare su attrezzature legacy indifese.

Gli attacchi DDoS basati su ICMP sono diventati un attacco informatico sempre più diffuso. Scopri di più sugli attacchi DDoS in generale e su come sono diventati più diversificati tatticamente negli ultimi anni.

Leave a Reply