ICMP (Internet Control Message Protocol)

ICMP (Internet Control Message Protocol) est un protocole de rapport d’erreur que les périphériques réseau tels que les routeurs utilisent pour générer des messages d’erreur vers l’adresse IP source lorsque des problèmes de réseau empêchent la livraison de paquets IP. ICMP crée et envoie des messages à l’adresse IP source indiquant qu’une passerelle vers Internet, telle qu’un routeur, un service ou un hôte, ne peut pas être atteinte pour la livraison de paquets. Tout périphérique réseau IP a la capacité d’envoyer, de recevoir ou de traiter des messages ICMP.

ICMP n’est pas un protocole de transport qui envoie des données entre systèmes.

Bien qu’ICMP ne soit pas utilisé régulièrement dans les applications utilisateur final, il est utilisé par les administrateurs réseau pour dépanner les connexions Internet dans les utilitaires de diagnostic, notamment ping et traceroute.

Dans quel cas ICMP est-il utilisé?

ICMP est un protocole de couche réseau utilisé par les routeurs, les périphériques intermédiaires et les hôtes pour communiquer des informations d’erreur ou des mises à jour à d’autres routeurs, périphériques intermédiaires et hôtes.

Les messages ICMP sont envoyés dans plusieurs scénarios. Par exemple, si un périphérique envoie un message trop volumineux pour que le destinataire puisse le traiter, le destinataire déposera ce message et renverra un message ICMP à la source. Un autre exemple est lorsque la passerelle réseau trouve un itinéraire plus court sur lequel le message doit voyager. Lorsque cela se produit, un message ICMP est envoyé et le paquet est redirigé vers la route la plus courte.

ICMP est également utilisé pour les diagnostics de réseau, en particulier les utilitaires ping et traceroute terminal.

 diagramme de message d'écho
Lorsque l’hôte envoie un message d’écho de type 8, le serveur répond avec un message de réponse d’écho de type 0 car il est accessible.
  • Traceroute. L’utilitaire traceroute est utilisé pour afficher le chemin de routage physique entre deux périphériques Internet communiquant entre eux. Il trace le trajet d’un routeur à un autre sometimes parfois appelé un saut. L’utilisation de traceroute pour diagnostiquer les problèmes de réseau peut aider les administrateurs à localiser la source d’un retard réseau.
  • Ping. L’utilitaire ping est une traceroute plus simple. Il envoie des pings – également appelés messages de demande d’écho -, puis mesure le temps nécessaire au message pour atteindre sa destination et revenir à la source. Ces réponses sont appelées messages de réponse d’écho. Les Pings sont utiles pour collecter des informations de latence sur un périphérique spécifique. Contrairement à traceroute, cependant, ping ne fournit pas de cartes d’images de la disposition de routage. L’utilitaire ping est souvent exploité pour certaines attaques par déni de service (DoS).

La version 4 du protocole Internet largement utilisée, ou classe d’adresse IPv4, et l’IPv6 plus récent utilisent des versions similaires du protocole ICMP – ICMPv4 et ICMPv6, respectivement.

 Diagramme de destination inaccessible
L’hôte A tente d’envoyer un paquet IP à l’hôte B. L’hôte B est inaccessible, de sorte que le routeur répond avec un message ICMP de type 3.

Comment fonctionne l’ICMP?

ICMP est l’un des principaux protocoles de la suite IP. Cependant, ICMP n’est associé à aucun protocole de couche de transport, tel que TCP (Transmission Control Protocol) ou UDP (User Datagram Protocol). Il s’agit d’un protocole sans connexion, ce qui signifie qu’un périphérique n’a pas besoin d’ouvrir une connexion avec le périphérique cible avant d’envoyer un message. Cela contraste avec TCP, par exemple, où une connexion doit être établie avant qu’un message puisse être envoyé, établissant que les deux périphériques sont prêts via une prise de contact TCP.

Les messages ICMP sont transmis sous forme de datagrammes et consistent en un en-tête IP qui encapsule les données ICMP. Un datagramme, tout comme un paquet, est une entité indépendante autonome de données. Considérez-le comme un paquet portant un message plus important sur le réseau. Les paquets ICMP sont des paquets IP avec ICMP dans la partie données IP. Les messages ICMP contiennent également l’en-tête IP entier du message d’origine, de sorte que le système final sait quel paquet a échoué.

L’en-tête ICMP apparaît après l’en-tête de paquet IPv4 ou IPv6 et est identifié comme le protocole IP numéro 1. Le protocole contient trois paramètres, expliqués ci-dessous. Les trois paramètres suivants sont les données ICMP et l’en-tête IP d’origine identifiant le paquet ayant échoué.

Paramètres ICMP

Les paramètres ICMP existent dans l’en-tête de paquet, et ils aident à identifier les erreurs dans le paquet IP auquel ils se rapportent. Les paramètres sont comme une étiquette d’expédition sur un colis. Ils fournissent des informations d’identification sur le paquet et les données qu’il contient. De cette façon, les protocoles et les outils réseau recevant le message ICMP savent comment gérer le paquet.

Les 32 premiers bits de l’en-tête de paquet de chaque message ICMP contiennent trois champs ou paramètres d’information. Ces trois paramètres sont les suivants:

  1. Type. Les 8 premiers bits sont les types de messages. Certains types de messages courants sont les suivants:
      1. Type 0 reply Réponse d’écho
      2. Type 3 Destination Destination inaccessible
      3. Type 8 Echo Écho
      4. Type 5 Redirect Redirection

    Le type fournit une brève explication de ce à quoi sert le message afin que le périphérique réseau récepteur sache pourquoi il reçoit le message et comment le traiter. Par exemple, un écho de type 8 est une requête qu’un hôte envoie pour voir si un système de destination potentiel est disponible. Lors de la réception d’un message d’écho, le dispositif de réception peut renvoyer une réponse d’écho (type 0), indiquant qu’elle est disponible.

    Internet Assigned Numbers Authority (IANA) fournit une liste de tous les types de messages que les paquets ICMP utilisent.Code

  2. . Les 8 bits suivants représentent le code de type de message, qui fournit des informations supplémentaires sur le type d’erreur.
  3. Somme de contrôle. Les 16 derniers bits fournissent un contrôle d’intégrité des messages. La somme de contrôle indique le nombre de bits dans le message entier et permet à l’outil ICMP de vérifier la cohérence avec l’en-tête du message ICMP pour s’assurer que toute la gamme de données a été fournie.

La partie suivante de l’en-tête ICMP est le pointeur. Il se compose de 32 bits de données qui signalent le problème dans le message IP d’origine. Plus précisément, le pointeur identifie l’emplacement de l’octet dans le message IP d’origine à l’origine de la génération du message de problème. Le périphérique de réception examine cette partie de l’en-tête pour identifier le problème.

La dernière section du paquet ICMP est le datagramme d’origine. Il comprend jusqu’à 576 octets en IPv4 et 1 280 octets en IPv6 et comprend une copie du message IP original contenant une erreur.

 Diagramme de paquets ICMP
L’en-tête de paquet ICMP vient après l’en-tête IPv4 ou IPv6. Il contient trois parties: type, code et somme de contrôle. L’en-tête est suivi du pointeur, qui identifie le problème dans le message d’origine, puis vient le datagramme d’origine.

ICMP dans les attaques DDoS

Dans les attaques DoS distribuées (DDoS), les attaquants submergent la cible avec du trafic indésirable, de sorte que la cible ne peut pas fournir de service à ses utilisateurs. Il existe plusieurs façons dont un attaquant peut utiliser ICMP pour exécuter ces attaques, notamment les suivantes:

  • Ping de la mort. L’attaquant envoie un paquet IP supérieur au nombre d’octets autorisés par IP. Sur le chemin de sa destination prévue, le paquet surdimensionné est fragmenté. Cependant, lorsque le dispositif destinataire le réassemble, la taille dépasse la limite, provoquant un débordement de tampon et le gel ou le crash de la machine réceptrice. Les appareils plus récents disposent de défenses contre cette attaque de type plus ancien, mais les appareils réseau hérités y sont toujours vulnérables.
  • Attaque d’inondation ICMP. Parfois appelée attaque ping flood, l’objectif de cette attaque est de submerger le périphérique cible avec des paquets de demandes d’écho. Chaque paquet de demande d’écho doit être traité par la cible et répondu avec des messages de réponse d’écho. Cela aspire toutes les ressources de l’ordinateur cible et provoque un déni de service pour tous les autres utilisateurs de l’ordinateur cible.
  • Attaque de schtroumpf. Dans une attaque Schtroumpf, l’attaquant envoie un paquet ICMP avec une adresse IP source usurpée, et l’équipement de la couche réseau répond au paquet, envoyant à l’adresse usurpée un flot de paquets. Comme le ping de la mort, les attaques de schtroumpfs sont plus susceptibles de fonctionner sur des équipements hérités non défendus.

Les attaques DDoS basées sur ICMP sont devenues une cyberattaque de plus en plus répandue. En savoir plus sur les attaques DDoS en général et comment elles se sont diversifiées tactiquement ces dernières années.

Leave a Reply