Technique d’attaque d'un réseau : ARP Poisoning PDF Imprimer Email
Articles - Dossiers
Écrit par Jean-Bernard KONDOSZEK   
Dimanche, 25 Mai 2008 06:02

L’usurpation d’identité est une des techniques les plus courantes du piratage notamment lorsqu’il s’agit d’obtenir des informations. Pour cela, l’attaquant utilise généralement les moyens fournis par le réseau qu’il infiltre. L’ARP Poisoning se base donc comme son nom l’indique sur l’ARP pour parvenir à ses fins.

Egalement connue sous ARP Spoofing ou APR (ARP Poisoning Routing), l’ARP Poisoning est une technique de détournement de flux, c'est-à-dire qu’elle sert à rediriger tout ou une partie du flux du réseau attaqué vers un client, un serveur ou une autre machine utilisée par le pirate. Cette technique autorise alors le pirate ainsi installé à écouter passivement tout le trafic du réseau (Passive Sniffing), le corrompre avant de le propager (attaque MitM, Man in the Middle signifiant l’Homme du Milieu) ou encore à le bloquer (attaque DoS, Denial of Service signifiant Déni de Service).

L’ARP, acronyme de Address Resolution Protocol (en français Protocole de Résolution d’Adresse), est un protocole qui permet d’obtenir l’adresse Ethernet d’un hôte d’un réseau à partir de l’adresse IP. Les données ARP qui contiennent une table d’association adresse IP – adresse Ethernet sont stockées dans un cache. Lors d’un échange entre deux machines, si l’entrée correspondante est manquante, alors un paquet ARP demandant à la machine ayant l’adresse IP connue de renvoyer une réponse ARP contenant son adresse Ethernet.

Exemple d’échange ARP capturé par TCPDump (les X ont été ajouté volontairement pour masquer les informations)
[root@XXX-XXX]# tcpdump -ennqti eth0 \( arp or icmp \)
tcpdump: listening on eth0
0:11:d8:XX:XX:XX ff:ff:ff:ff:ff:ff 42: arp who-has 192.168.0.205 tell 192.168.0.5 [1]
0:80:c8:XX:XX:XX 0:11:d8:XX:XX:XX 60: arp reply 192.168.0.205 is-at 0:80:c8:XX:XX:XX [2]
0:11:d8:XX:XX:XX 0:80:c8:XX:XX:XX 98: 192.168.0.5 > 192.168.0.205: icmp: echo request (DF) [3]
0:80:c8:XX:XX:XX 0:11:d8:XX:XX:XX 98: 192.168.0.205 > 192.168.0.5: icmp: echo reply [4]

[1] Il s’agit ici d’une demande broadcast ARP concernant l’hôte d’adresse 192.168.0.205 envoyé par l’hôte 192.168.0.5
[2] L’hôte concerné renvoie un paquet ARP contenant son adresse MAC à l’hôte solliciteur.
[3] Une vérification par écho ICMP est envoyé pour vérifier la validité de l’adresse.
[4] Pour terminer l’échange, la réponse à l’écho ICMP est retournée pour valider l’adresse.

Avec ce protocole, on peut identifier n’importe quel hôte d’un réseau à partir de son adresse IP. La réciproque est possible avec le RARP (Reverse Address Resolution Protocol). Le principe de l’ARP Poisoning est de créer de faux paquets ARP afin de subtiliser une adresse IP d’un hôte.

 


Figure 1 : Une requête ARP est envoyée en broadcast sur le réseau par une machine quelconque.

 


Figure 2 : Le pirate crée un message de réponse ARP contenant l’adresse Ethernet de la machine du pirate combiné à l’adresse IP de la machine dont il cherche à s’approprier l’identité.

 


Figure 3 : La réponse est reçue par la machine qui a envoyé la requête et créer alors une entrée incorrecte associant l’adresse IP usurpée à l’adresse Ethernet du pirate. Cette entrée est enregistrée dans le cache ARP. On dit que le cache ARP du récepteur est empoisonné.

 

 


Figure 4 : Désormais, tout trafic utilisant l’adresse IP usurpée sera envoyé au pirate.


Pour se protéger définitivement de cette attaque, le seul moyen est d’utiliser des entrées ARP statiques. Cependant, la mise en œuvre devient très vite difficile sur des réseaux importants. On peut utiliser alors d’autres moyens moins radicaux mais plus souples : une durée de vie du cache plus courte oblige le pirate à corrompre trop souvent le trafic ARP, rendant la corruption visible, et s’exposant ainsi rapidement. La détection par des outils de surveillance tel ARPWatch ou XArp généralement incorporée dans des systèmes de détection d’intrusion (IDS pour Intrusion Detection System) permet également une protection élevée. Enfin une autre solution est d’utiliser un serveur DHCP avec une liste statique de correspondance entre adresses Ethernet et IP. Basée sur la première solution, la liste exhaustive des adresses physiques est centralisée sur le serveur DHCP. On peut ensuite configurer un service pour que toute requête DHCP relative à une adresse MAC inconnue génère un courrier vers l'administrateur système.

Commentaires (0)Add Comment

Ecrivez un commentaire
quote
bold
italicize
underline
strike
url
image
quote
quote
smile
wink
laugh
grin
angry
sad
shocked
cool
tongue
kiss
cry
Réduire l'éditeur | Agrandir l'éditeur

busy