L’usurpation d’adresse IP est un problème vieux qui a fait couler beaucoup de pixels, mais qui pourtant reste d’actualité. Pouvoir se faire passer pour un autre sur un réseau donne beaucoup de pouvoir et donc beaucoup de potentiel de nuisance.

L’IP spoofing concerne donc les usurpations du niveau 3 du modèle OSI.

Voici les risques auxquels vous vous exposez si vous n’empêchez pas l’usurpation d’adresse IP :

– INTERCEPTION INTERNE: Rediriger le trafic vers une machine pirate qui enregistre tout

Le pirate substitue l’adresse légitime de la passerelle réseau par celle d’une machine pirate configurée pour tout retransmettre à la vraie passerelle, mais en enregistrant au passage tout le trafic (mots de passe, communautés SNMP, etc.).

– DENI DE SERVICE : Empêcher le trafic d’aboutir

Le pirate substitue l’adresse légitime de la passerelle réseau par celle d’une machine qui « drop » tous les paquets (sauf éventuellement ceux qui lui sont destinés). Plus aucun échange n’est alors possible sur le réseau.

– DENI DE SERVICE : Rediriger le trafic vers une machine en vue de la saturer

Le pirate substitue l’adresse légitime de la passerelle réseau par celle d’un serveur qui va alors recevoir tout le trafic destiné à la passerelle et qui est susceptible de saturer sous l’importance du flux.

– INTERCEPTION EXTERNE: Rediriger les requêtes DNS vers un serveur pirate renvoyant vers des sites d’hameçonnage

Le pirate substitue l’adresse légitime du DNS par celle d’un serveur pirate. Quand un client demande l’adresse IP de www.unsite.fr, le DNS pirate lui donne l’adresse d’un site de hameçonnage imitant le site www.unsite.fr et enregistrant les identifiants de connexion de la victime (login, mot de passe, numéro de carte bancaire, etc.).

Il existe, entre autres, deux méthodes permettant de réaliser cette usurpation qui sont bien connues mais malheureusement pas assez souvent prises en compte : le DHCP spoofing et l’ARP spoofing.

Celles-ci sont assez anciennes pour que des contre-mesures existent. Néanmoins, nous n’observons que trop peu souvent, lors de nos audits, la présence de ces protections.

Elles peuvent être déployées sur des commutateurs (switches) ou des routeurs/pare-feu, mais ne sont que rarement activées dans la configuration par défaut des principaux fabricants. C’est donc de la responsabilité de l’administrateur du réseau de s’assurer de leur mise en place.

Il est nécessaire d’enfoncer quelques portes ouvertes sur ces deux protocoles bien connus, afin de pouvoir expliciter les faiblesses qui sont exploitées. Nous nous concentrerons, dans cet article, sur l’ARP. 

Address Resolution Protocol (ARP)

Protocole

Le protocole ARP permet de faire la liaison entre la couche 2 (adresse MAC) et la couche 3 (adresse IP) du modèle OSI. Le comportement attendu est le suivant :

  1. Une machine cliente veut joindre une adresse IP spécifique, mais elle ne possède pas son adresse MAC dans son cache ARP. Elle émet alors une requête en broadcast (donc tout le segment réseau peut la capter) stipulant l’adresse IP recherchée et sa propre adresse MAC (pour que l’on puisse lui répondre).
  2. La machine ayant l’adresse IP recherchée effectue deux actions :
    1. Pour être sûre de répondre à la bonne machine, elle met à jour son propre cache ARP avec l’adresse MAC et l’IP de la machine qui a fait la demande.
    2. Elle envoie une réponse ARP stipulant son adresse IP et son adresse MAC à destination de la machine qui a fait la demande.
  3. La première machine reçoit la réponse et met son cache ARP à jour avec la nouvelle association reçue. Elle connait alors l’adresse MAC de l’IP qu’elle voulait joindre.

Le protocole ARP peut s’utiliser de plusieurs façon différentes, celle-ci n’en est qu’une parmi d’autres. Une autre très intéressante concerne les paquets « ARP announcements » (ou gratuitous ARP).

Ils sont utilisés lorsqu’une machine A vient de changer d’adresse IP. Plutôt que d’attendre que les autres machines fassent une requête ARP ou se trompent en envoyant des paquets à l’ancienne adresse IP, A envoie une « annonce » stipulant sa nouvelle association adresse MAC/adresse IP. Toutes les autres machines mettent donc leurs tables ARP à jour.

Attaques

Un des problèmes principaux du protocole ARP est qu’il est sans état (stateless). Une machine mettra donc toujours son cache ARP à jour lorsqu’elle reçoit une réponse ARP même si elle n’a pas initié de requête.

La mise à jour écrase systématiquement l’entrée précédente associée à une IP si elle existe et il n’y a pas de mécanisme d’authentification possible pour ARP.

Le principe d’une attaque est donc simple : si l’on a une adresse MAC A et que l’on veut se faire passer pour une autre machine qui a une adresse MAC B et une adresse IP C, il suffit d’envoyer à tout le monde une réponse ARP contenant l’association A/C.

Les machines vont alors écraser l’ancienne association B/C de leur table ARP et la remplacer par la nouvelle. Le trafic adressé à l’adresse IP C sera donc acheminé à la machine ayant l’adresse MAC A.

En plus de l’usurpation, il est également possible de s’en prendre à des machines tierces. Toutes les nuisances de l’IP spoofing sont donc réalisables, plus :

–   DENI DE SERVICE : Intercepter le trafic destiné à une machine tierce

Le pirate inonde le réseau de réponses ARP associant son adresse MAC à l’adresse IP de sa victime. Tout le trafic destiné à cette dernière ne lui parviendra donc pas, elle ne pourra pas initier de connexion avec d’autres services (elle peut émettre des requêtes mais ne recevra pas les réponses).

Ce type d’attaque demeure réalisable seulement dans le champ des adresses du broadcast, les paquets ARP n’étant pas routés, il n’est pas donc pas possible d’infecter d’autres segments du réseau.

Contre-mesures

Dynamic ARP Inspection (DAI)

L’inspection dynamique des parquets ARP utilise la base du DHCP snooping (voir l’article) pour vérifier la conformité des réponses ARP envoyées.

Le commutateur disposant de la base d’associations [Adresse IP / Adresse MAC / Port], il est à même d’inspecter tous les paquets ARP qui transitent par lui ou qui lui sont adressés.

Il lui suffit de lire l’association IP/MAC proposée dans le paquet ARP et de s’assurer qu’elle correspond bien à celle attribuée par le serveur DHCP (via la base de DHCP snooping). Le cas échéant le paquet est supprimé (il peut également être journalisé et un administrateur contacté), sauf s’il provient d’un port de confiance (trusted) pour permettre par exemple au serveur DHCP de propager sa nouvelle adresse IP s’il en a changé.

Si l’adresse IP concernée n’a jamais été attribuée, elle ne se trouvera pas dans la base de DHCP snooping, il ne s’agit donc pas d’une mauvaise correspondance mais d’une absence de correspondance. Il demeure préférable de supprimer le paquet

Suivant les constructeurs, quelques subtilités peuvent apparaitre dans le comportement du DAI, notamment concernant des tests supplémentaires sur le port de provenance du paquet ARP ou sur le comportement à adopter en cas d’adresse absente de la base du DHCP snooping.

DHCP filtering

Cette contre-mesure est proposée par plusieurs constructeurs et se base également sur la base du DHCP snooping.

Cela consiste à vérifier, au niveau du commutateur, le port de provenance de chaque paquet. En consultant la base d’associations IP/MAC/port du DHCP snooping, on compare l’IP émettrice du paquet à celle, légitime, attribuée par le serveur DHCP. S’il y a divergence, le paquet est supprimé.

Il s’agit dont d’une mesure à posteriori de l’usurpation d’adresse IP (l’attaquant a déjà pu forger une trame illégitime) mais permettant de prévenir son utilisation malveillante.

Conclusion

L’usurpation d’adresse IP s’appuie généralement sur les faiblesses intrinsèques des deux protocoles DHCP et ARP qui n’ont pas été conçus à la base pour répondre à des problématiques de sécurité.

La sécurité a donc été déportée au niveau des nœuds du réseau (commutateurs, routeurs/pare-feu) qui surveillent et analysent les requêtes et les réponses pour y déceler les tentatives d’abus de DHCP ou d’ARP.

Seulement ces mécanismes sont trop peu souvent activés par défaut, l’administrateur réseau doit donc avoir la présence d’esprit de prendre en compte les menaces sur son réseau et d’activer les mécanismes adéquats en fonction.

Ce type d’attaque est pourtant très utilisé lors des audits de sécurité interne. Il permet généralement de récupérer tous les mots de passe circulant en clair (FTP, SNMP, messagerie, etc.) et éventuellement ceux qui sont chiffrés si l’utilisateur ignore l’alerte de mauvais certificat (ce qui arrive invariablement au moins une fois).

Les constructeurs comme Cisco, HP, Dell, Juniper, H3C ou encore Allied telesis embarquent ces contre-mesures.

Rédigé par D.S – Expert Sécurité ITrust