Le protocole ARP et pourquoi il est sensible
Une machine qui veut envoyer un paquet à une autre sur le même réseau local connaît son adresse IP, mais les trames Ethernet, elles, ont besoin d'une adresse MAC. Qui fait le lien ? Un protocole très ancien, très simple, et sans aucune authentification : ARP. Comprendre pourquoi il est sensible est un excellent exercice pour saisir comment une confiance excessive devient une faille.
Dans la leçon précédente, vous avez appris à capturer et filtrer du trafic. Nous allons maintenant observer en direct le protocole ARP dans votre propre laboratoire d'essai, et analyser pourquoi les défenseurs le surveillent.
Le problème que résout ARP
Sur un réseau local, deux machines ne se parlent pas avec des adresses IP mais avec des adresses MAC : c'est ce qu'utilisent les switches. Quand votre ordinateur (192.168.1.25) veut joindre l'imprimante (192.168.1.40), il doit donc découvrir l'adresse MAC associée à cette adresse IP. C'est le rôle d'ARP (Address Resolution Protocol).
Le dialogue se déroule en deux temps :
- La requête ARP, envoyée en diffusion (à tout le réseau local) : « Qui possède l'adresse 192.168.1.40 ? Répondez à 192.168.1.25. »
- La réponse ARP, envoyée directement à l'émetteur : « C'est moi : 192.168.1.40 est à l'adresse MAC 08:00:27:ab:cd:ef. »
L'ordinateur mémorise ce résultat dans sa table ARP (un cache) pour éviter de reposer la question à chaque paquet. Chaque entrée expire au bout d'un temps assez court.
Notez bien ceci : ARP ne concerne que le réseau local. Pour joindre une machine d'un autre réseau, votre ordinateur envoie le paquet à la passerelle par défaut, donc il résout l'adresse MAC de la passerelle, pas celle de la destination finale.
Observer ARP chez soi
Vous pouvez consulter la table ARP de votre machine avec ces commandes :
ip neigh # Linux
arp -a # macOS, Windows, et Linux avec net-tools
Vous y verrez des paires « adresse IP, adresse MAC », parfois avec un état (REACHABLE, STALE…). Dans Wireshark, le filtre arp isole ces échanges : la requête a pour destination ff:ff:ff:ff:ff:ff (adresse de diffusion), la réponse est adressée à la machine qui a posé la question.
Pourquoi ARP est-il sensible ?
ARP date d'une époque où l'on partageait un réseau local avec des personnes de confiance. Résultat, deux choix de conception lui valent une réputation de faiblesse :
- Aucune authentification : le protocole ne vérifie pas que la réponse vient bien de la machine légitime. Toute machine du réseau local peut prétendre posséder n'importe quelle adresse IP.
- Des réponses acceptées sans demande : la plupart des systèmes acceptent de mettre à jour leur cache à la réception d'une réponse ARP, même s'ils n'ont posé aucune question.
Conséquence : une machine malveillante connectée au réseau local peut envoyer de fausses réponses ARP pour se faire passer, aux yeux des autres, pour la passerelle ou pour un autre équipement. Le trafic transite alors par elle avant d'arriver à destination : c'est ce qu'on appelle l'usurpation ARP (ARP spoofing ou ARP poisoning) et l'attaque de l'homme du milieu (Man-in-the-Middle) qui peut en découler. L'attaquant peut alors lire, voire modifier, tout ce qui n'est pas chiffré.
Il est important de bien situer cette menace : elle suppose que l'attaquant se trouve déjà sur le même réseau local que sa victime (le même Wi-Fi, le même VLAN). C'est pourquoi les réseaux Wi-Fi publics sont un environnement à risque, et pourquoi le principe de la défense en profondeur est précieux : même si le réseau est hostile, le chiffrement de bout en bout (HTTPS, SSH, VPN) protège le contenu.
Cadre légal et éthique. Cette leçon explique le principe de la faiblesse, sans fournir de mode d'emploi. Détourner le trafic d'autrui sur un réseau que vous ne possédez pas est une atteinte à un système de traitement automatisé de données et à la confidentialité des correspondances, punie par la loi (articles 323-1 et suivants du Code pénal, que nous détaillerons au chapitre 7). Toute expérimentation sur ce sujet se fait uniquement entre machines virtuelles de votre propre laboratoire isolé, jamais sur un réseau partagé avec d'autres personnes.
Comment se défendre et détecter
Pour un administrateur, plusieurs mesures permettent de réduire le risque :
- Segmenter le réseau (VLAN, sous-réseaux) pour limiter le nombre de machines pouvant se parler directement : c'est le thème de la leçon suivante.
- Utiliser la sécurité des ports du switch : limiter le nombre d'adresses MAC par port, désactiver les ports inutilisés.
- Activer l'inspection ARP dynamique sur les équipements qui la proposent : le switch compare les réponses ARP avec une base de correspondances fiables (souvent alimentée par le DHCP) et rejette celles qui sont incohérentes.
- Utiliser des entrées statiques pour les équipements critiques comme la passerelle (solution limitée aux petits réseaux).
- Chiffrer les communications partout où c'est possible, pour que l'interception soit inutile.
- Surveiller : une même adresse IP qui apparaît soudain avec deux adresses MAC différentes, ou une avalanche de réponses ARP non sollicitées, sont des signaux d'alerte. Des outils de supervision et de détection d'intrusion savent les repérer.
Du côté de l'utilisateur, un message d'avertissement de certificat inattendu en navigant est un indice à ne jamais ignorer : une interception HTTPS sans certificat valide déclenche une alerte dans le navigateur. N'acceptez jamais ces avertissements par habitude.
Ce qu'on retient de l'étude d'ARP
ARP est un cas d'école. Il illustre une idée qui reviendra dans tout le parcours : un protocole conçu sans notion de sécurité devient exploitable dès que son environnement n'est plus de confiance. On retrouve le même schéma avec d'autres protocoles historiques (certains services de partage, des protocoles de découverte automatique, le courrier électronique à l'origine). La réponse des défenseurs est toujours la même : réduire la confiance implicite, segmenter, chiffrer, journaliser.
En IPv6, ARP est remplacé par un mécanisme similaire, la découverte de voisins (NDP), qui a ses propres sensibilités et ses propres protections ; nous y reviendrons dans la dernière leçon de ce chapitre.
À vous de jouer
Exercice 1. Affichez votre table ARP. Identifiez l'entrée de votre passerelle (comparez avec l'adresse notée au chapitre 1). Combien d'autres machines connaît-elle ?
Exercice 2. Lancez une capture Wireshark sur votre interface principale avec le filtre d'affichage arp. Videz le cache de l'entrée de la passerelle si votre système le permet (sous Linux : sudo ip neigh flush dev <interface>, en remplaçant <interface> par le nom de votre interface, par exemple eth0), puis exécutez ping vers votre passerelle. Repérez la requête et la réponse ARP.
Exercice 3 (réflexion). Un utilisateur se connecte à un Wi-Fi public et consulte uniquement des sites en HTTPS. Quelle est la protection réelle contre une usurpation ARP, et que reste-t-il visible pour l'attaquant ?
Voir une solution
Exercice 1. La passerelle apparaît avec son adresse IP (par exemple 192.168.1.1) et une adresse MAC ; le nombre d'autres entrées dépend de l'activité récente de votre machine.
Exercice 2. Vous voyez d'abord une requête « Who has 192.168.1.1? Tell 192.168.1.25 » diffusée à ff:ff:ff:ff:ff:ff, puis la réponse « 192.168.1.1 is at aa:bb:cc:… ». Ensuite seulement, les paquets ICMP du ping apparaissent (filtre icmp).
Exercice 3. Le chiffrement HTTPS protège le contenu et l'intégrité des échanges : l'attaquant ne peut pas les lire ni les modifier sans que le navigateur affiche un avertissement de certificat. Il peut cependant voir les adresses IP contactées, les volumes et, selon les cas, les noms de domaine demandés. C'est une protection forte pour le contenu, partielle pour les métadonnées.
À retenir
- ARP associe une adresse IP à une adresse MAC sur le réseau local ; les résultats sont mémorisés dans une table (cache).
- ARP n'authentifie pas les réponses : c'est une faiblesse structurelle, exploitée par l'usurpation ARP (attaque de l'homme du milieu).
- L'attaque suppose d'être déjà sur le même réseau local : segmentation et défiance envers les réseaux partagés sont des défenses importantes.
- Défenses : inspection ARP dynamique, sécurité des ports, entrées statiques ciblées, surveillance, et surtout chiffrement de bout en bout.
- Toute expérience sur ce sujet reste confinée à votre laboratoire isolé.
ARP montre pourquoi limiter la taille d'un réseau local est une bonne idée. Voyons comment on y parvient concrètement : par la segmentation, notamment grâce aux VLAN.