Protocole:ICMP

From aldeid
Jump to navigation Jump to search

Le protocole ICMP

Définition

Le protocole ICMP (Internet Control Message Protocol) permet de gérer les informations relatives aux erreurs du protocole IP. Il ne permet pas de corriger ces erreurs, mais d'en informer les différents émetteurs des datagrammes en erreurs. Chaque pile IP, que ce soit des routeurs ou des stations de travail, gèrent ICMP par défaut.

Ce protocole est considéré comme faisant partie de l'ensemble des protocoles TCP/IP. Cependant, contrairement à TCP et UDP, il se situe en couche 3 et donc, il est encapsulé dans IP. Le mot "Encapsulation" relate clairement la confusion du placement d'ICMP dans les 7 couches OSI.

Les messages d'erreur ICMP sont transportés sur le réseau sous forme de datagrammes, comme n'importe quelle donnée. Ainsi, les messages d'erreurs peuvent eux-mêmes être sujet aux erreurs. Toutefois, en cas d'erreur sur un message ICMP, aucune trame d'erreur n'est délivrée pour éviter un effet "boule de neige".

Structure de l'en-tête ICMP

Les paquets ICMP présentent la caractéristique d'être encapsulés dans des datagrammes IP.

En-tête IP
En-tête ICMP Données

Avec le détail suivant :

Image:icmp-001.png

Champ (abréviation) Description
Type (type=) Type de message ICMP
Code (code=) Code de l'erreur
Checksum (chksum=) Somme de contrôle (16 bits), calculée sur la partie spécifique à ICMP (sans l'en-tête IP)

Types de messages ICMP

Type Message Commentaires Code
0 Echo Reply
(Réponse d'ECHO)
Réponse au message de type 8
  • 0
3 Destination Unreachable
(Destinataire inaccessible)
Le code dépend de la cause du problème
  • 0 : le réseau n'est pas accessible
  • 1 : la machine n'est pas accessible
  • 2 : le protocole n'est pas accessible
  • 3 : le port n'est pas accessible
  • 4 : fragmentation nécessaire mais impossible à cause du drapeau (flag) DF
  • 5 : le routage a échoué
  • 6 : réseau inconnu
  • 7 : machine inconnue
  • 8 : machine non connectée au réseau (inutilisé)
  • 9 : communication avec le réseau interdite
  • 10 : communication avec la machine interdite
  • 11 : réseau inaccessible pour ce service
  • 12 : machine inaccessible pour ce service
  • 13 : communication interdite (filtrage)
  • 14 : priorité d'hôte violé
  • 15 : limite de priorité atteinte
4 Source Quench
(Extinction de la source)
  • 0
5 Redirect
(Redirection)
  • 0 : un réseau
  • 1 : un hôte
  • 2 : un réseau et un service
  • 3 : un hôte et un service
8 Echo Request
(Requête d'ECHO)
demande de renvoi d'informations, avec la commande ping par exemple
  • 0
11 Time Exceeded
(Temps dépassé)
ce message est envoyé lorsque le temps de vie d'un datagramme ou le temps de réassemblage des parties d'un datagramme est dépassé. L'en-tête du datagramme est renvoyé pour que l'utilisateur sache quel datagramme a été détruit
  • 0 : temps dépassé
  • 1 : temps de ré-assemblage des fragments d'un datagramme dépassé
12 Paraméter Problem : Bad IP header
(En-tête erroné)
ce message est envoyé lorsqu'un champ d'un en-tête est erroné. La position de l'erreur est retournée
  • 0
13 Timestamp request
(Demande d'heure)
une machine demande à une autre son heure et sa date système (universelle)
  • 0
14 Timestamp reply
(Réponse d'heure)
la machine réceptrice donne son heure et sa date système afin que la machine émettrice puisse déterminer le temps de transfert des données
  • 0
15 Information Request
(Demande adresse IP)
ce message permet de demander au réseau une adresse IP
  • 0
16 Information Reply
(Réponse adresse IP)
ce message répond au message précédent
  • 0
17 Address Mask Request
(Demande masque sous réseau)
ce message permet de demander au réseau un masque de sous réseau
  • 0
18 Address Mask Reply
(Réponse masque sous réseau)
ce message répond au message précédent
  • 0

Failles d'ICMP

Types 3 et 4

L'argentin Fernando Gont, professeur, administrateur système et chercheur en réseau, a découvert en août 2004 plusieurs failles de sécurité dans le protocole ICMP : Les messages ICMP de type 3 pour les codes 2 ou 3 (voire 4) peuvent clore une connexion TCP
Un envoi répété de message ICMP de type 4 (code 0) ralentit grandement le débit d'une connexion.
Le message ICMP de type 3 pour le code 4 ralentit une connexion en passant le MTU au minimum (68 octets) puis en l'augmentant progressivement

Type 5

Les messages ICMP de type 5 (redirection) peuvent être utilisés de manière malhonnête pour traverser un pare-feu. L'attaque consiste à faire passer un ordinateur par un chemin détourné qui va éviter le pare-feu. La solution consiste à configurer l'ordinateur pour ignorer ce genre de message.

Outils

  • Icmp-quench : permet d'envoyer des messages ICMP divers à un hôte distant
  • Icmp-reset : permet d'envoyer des messages d'erreur ICMP dans le but de fermer des sessions distantes
  • Packetforge-ng : permet de forger des paquets ARP, UDP, ICMP ou personnalisés
  • Scapy : permet de forger des paquets personnalisés, dot ICMP

Exploits