Vous êtes sur la page 1sur 7

23/10/2014

Prsentation &
Analyse du
Protocole ARP
Address Resolution Protocol

Enzo Rideau & Xavier Bonabel


BTS SIO

PRESENTATION & ANALYSE DU PROTOCOLE ARP

Synopsis : Un quipement est identifi, dans le domaine Internet, par son adresse IP (sur 32 Bits).
Or cet quipement (ou plutt la carte rseau associe) possde aussi une adresse physique utilise
par le protocole daccs rseau. Parmi les protocoles daccs au rseau, nous avons le protocole
Ethernet et chaque carte Ethernet est identifie par une adresse physique (sur 48 bits). Ainsi, deux
quipements sur le rseau Ethernet ne peuvent communiquer que sils connaissent leurs adresses
physiques mutuelles.

Quest-ce que lARP ?


ARP pour Address Resolution Protocol ou plus prcisment, Protocole de rsolution dadresse est
un protocole effectuant la traduction dune adresse de protocole de couche rseau (IPv4) en une
adresse MAC.
Ce protocole se situe sur la couche 3 du modle OSI. On lassimile parfois un protocole de couche
2 et demi car il assure la liaison entre le protocole IP qui utilise les adresses IP pour construire ses
paquets et les trames Ethernet qui elles, utilisent les adresses MAC.
En clair, cest un protocole qui permet de retrouver une adresse MAC partir dune adresse IP.
Le protocole ARP est indispensable au bon fonctionnement dIPv4 utilis au-dessus dun rseau de
type Ethernet.
Vous pouvez retrouver la description plus dtaill de ce protocole dans la RFC 826.
Information supplmentaire, en IPv6 cest le protocole NDP (Neighbor Discovery Protocol) qui prend
le relais dARP.

Fonctionnement du protocole ARP


Comme dit prcdemment, avant toute communication utilisant un protocole TCP/IP ou suprieur, la
carte rseau va mettre cette communication en attente afin de chercher savoir ladresse MAC du
destinataire afin de pouvoir former les enttes Ethernet de ses trames. Cest partir de ce moment
que notre protocole ARP entre en jeu.
Lorsquune machine doit communiquer avec une autre, elle consulte la table de correspondance. Si
ladresse demande ne se trouve pas dans la table, le protocole ARP met une requte sur le rseau
de type broadcast . Lensemble des machines du rseau vont comparer cette adresse la leur. Si
lune dentre-elles se reconnait, la machine va rpondre la source pour que cette dernire puisse
stocker le couple dadresse IP-MAC dans sa table ARP

1|Page

PRESENTATION & ANALYSE DU PROTOCOLE ARP

Exemple concret :
Pour comprendre et mieux analyser comment se comporte le protocole ARP, nous allons examiner,
tape par tape, la faon dont sexcute ce protocole. Pour cela, on dispose de deux VM sur un
rseau priv, nous allons tablir une communication (ping) entre les deux.
Premire tape : Request
Aprs avoir lanc notre ping sur ladresse suivante : 192.168.1.2, le PC source se rend compte quil ne
possde pas de correspondance IP-MAC pour ladresse quil vient de ping. Il effectue donc une
requte ARP en demandant qui possde ladresse 192.168.1.2 , traduit de la faon suivante sous
WireShark : Who has 192.168.1.2 ? Tell 192.168.1.3 . Le PC source donne son adresse IP pour que
le propritaire de ladresse IP puisse lui rpondre.

A travers ce Screenshot , on remarque que la destination du paquet est en broadcast. Le PC


source va donc interroger tous les PC du rseau. Bien-sr, ce dernier noublie pas de signer avec sa
propre adresse MAC pour quil puisse recevoir une rponse.

2|Page

PRESENTATION & ANALYSE DU PROTOCOLE ARP


Deuxime partie : Rponse du PC possdant ladresse 192.168.1.2 Reply
On constate que cette rponse possde la mme structure que notre question . En revanche
quelques changements ont t effectus. Tout dabord, on retrouve ladresse IP 192.168.1.2 avec
son adresse MAC. Nous allons donc analyser en dtail cette trame.

Nous retrouvons l, plusieurs lments essentiels : tout dabord, LOpcode est pass en reply .
On voit galement que les champs dadresse MAC sont remplis et donc que les deux parties vont
pouvoir incrmenter leur table ARP. Le PC possdant ladresse 192.168.1.2 (le Sender )
communique son adresse MAC sa cible (la Target qui est tout simplement le PC avec lequel
nous avons initialis la communication (le ping).
3|Page

PRESENTATION & ANALYSE DU PROTOCOLE ARP


Aprs avoir reu cette rponse, notre PC va pouvoir mettre jour son cache (ou table ARP) et il
possdera donc une correspondance MAC-IP de ladresse 192.168.1.2.
Pour vrifier la vracit de nos propos, nous allons grce une invite commande faire un arp a :

On retrouve donc bien notre adresse IP et ladresse physique (MAC) qui lui correspond.

192.168.1.2

00-0c-29-5f-98-e6

Commandes ARP
La commande arp permet la consultation et parfois la modification de la table ARP dans certains
systmes dexploitation. Nous allons vous prsentez les principales commandes :

arp a : Affiche toutes les entres dans le cache ARP.


arp a @ip : Dans le cas o il y a plusieurs cartes rseau, on peut faire laffichage du cache
associe une seule @ip
arp s @ip @MAC : Ajout manuel dune entre statique permanente dans le cache (ce besoin
se manifeste si on appelle rgulirement des htes, pour rduire le trafic rseau)

4|Page

PRESENTATION & ANALYSE DU PROTOCOLE ARP

La faille du protocole ARP

ARP cache Poisoning :


Cette attaque consiste exploiter la faille du protocole ARP situ en couche 3 du modle OSI.
Il consiste bombarder un routeur de requte ARP en lui faisant croire que lon est
quelquun dautre. Au bout dun moment, cela va provoquer la mise jour du cache ARP. Le
but est de se placer en la victime et son routeur afin de capturer tout le trafic entre deux
machines distantes.

Exemple :
Soit une machine Xavier, qui souhaite intercepter les messages de Khalis vers Enzo,
toutes appartenant au mme sous-rseau. Lattaque consiste pour Xavier envoyer un
paquet arp who-has la machine de Khalis. Ce paquet spcialement construit contiendra
comme IP source, ladresse IP de la machine Enzo dont nous voulons usurper lidentit (ARP
spoofing) et ladresse MAC de la carte rseau de Xavier. La machine de Khalis va ainsi crer
une entre associant notre adresse MAC ladresse IP de la machine IP dEnzo. Khalis
destinataire de larp who-has , utilise le paquet pour crer une entre dans sa table MAC.
Si Khalis veut communiquer avec Enzo au niveau IP, cest Xavier qui recevra les trames de
Khalis puisque notre adresse MAC est enregistre dans le cache empoisonn de Khalis
comme quivalence pour lIP du poste Enzo.
Ces attaques peuvent permettre une coute des communications entre deux machines, le
vol de connexion, une surcharge des commutateurs servant de structure au rseau
informatique ou dni de service. (Il suffit de faire une attaque de type MITM Man In The
Middle puis de refuser les paquets)
Solutions :

Mettre en place des entres statiques dans le cache ARP de chaque machine du rseau. Ceci
nest applicable qu faible nombre de machines.
Limiter les adresses MAC sur chaque port (renseignement statique) des commutateurs sils le
permettent. Certaines switch de niveau 3 offrent la possibilit de paramtrer des
associations port/MAC/Ip mais cela rend la gestion du parc compliqu.
Surveiller les messages ARP sur le rseau.

En revanche, chaque entre dans la table ARP a une dure de vie, ce qui oblige lattaquant
corrompre rgulirement le cache de la victime. Certains systmes dexploitation comme Solaris
permettent de modifier la valeur de ce temps dexpiration. Une valeur courte rendra donc la
corruption plus facilement visible.

5|Page

PRESENTATION & ANALYSE DU PROTOCOLE ARP

Structure de lentte ARP

Network type : Ce champ est plac en premier afin dindiquer quel est le format de lentte
ARP
Protocol type : Ce champ indique quel le type de protocole couche 3 qui utilise ARP.
Hardware Address Length : Ce champ correspond la longueur de ladresse physique.
Logical Address Length : Ce champ correspond la longueur de ladresse rseau
Opration : Permet de connaitre la fonction du message et donc son objectif
Sender hardware Address : Ce champ indique ladresse physique de lmetteur. Ladresse
MAC

Sender Internet Address : Ce champ indique ladresse rseau de lmetteur.


Target Hardware Address : Correspond ladresse MAC du destinataire. Dans le cadre dune
requte ARP ce champ sera 0 quand on ne connait pas ladresse MAC du destinataire.
Target Internet Address : Ce champ indique ladresse rseau du destinataire. Correspond
ladresse IP destination.
6|Page