ARP spoofing : des failles de sécurité dans la sécurité du réseau

Les entreprises de pare-feu, de serveurs proxy et de zones démilitarisées (DMZ) déploient de plus en plus de tactiques de ce type pour protéger leurs réseaux privés des dangers d’Internet. Mais toutes les attaques ne viennent pas de l’extérieur. Le maillon faible de la chaine est le LAN (Local Area Network). Un pirate qui se trouve déjà dans le réseau dispose de mille façons pour accéder au trafic de données et le manipuler à sa guise. Les pirates internes tirent profit de la vulnérabilité des protocoles ARP. Ceci est utilisé avec les réseaux Ethernet basés sur IPv4 pour résoudre des adresses IP en adresses MAC, et rapporter les problèmes de sécurité à des administrateurs.

Les entrées ARP peuvent facilement être manipulées en utilisant des paquets de données falsifiées. On parle alors d’ARP spoofing (de l’anglais spoof, qui signifie échanger), un type d’attaque de l’homme du milieu, qui permet aux pirates d’échanger deux systèmes de communication en passant inaperçus. Nous présentons ici comment la résolution d’adresse en particulier peut être manipulée via ARP, ainsi que les mesures à prendre pour éviter ou résoudre ce genre de problème.

Définition ARP spoofing

l’ARP spoofing désigne les attaques de l'homme du milieu sur les tables ARP de réseaux locaux. Dans ce type d'attaque, les hackeurs envoient de faux paquets ARP afin de passer inaperçu entre deux systèmes communicants, pour intercepter ou manipuler leur trafic de données.

ARP : l’adressage dans le LAN

Contrairement à ce qui se passe avec Internet, les appareils dans le LAN ne communiquent pas directement grâce à des adresses IP. À la place, ils utilisent des adresses physiques pour adresser en réseaux locaux IPv4. Ces adresses MAC (Media Access Control) sont des nombres uniques de 48 bits, et permettent d’identifier chaque appareil du LAN grâce à sa carte réseau.

Exemple d‘une adresse MAC : 00-80-41-ae-fd-7e

Les adresses MAC sont attribuées par les fabricants de matériel respectifs, et chacune est unique au monde. En théorie, elles sont adaptées à un adressage global, mais ceci ne fonctionne pas dans la pratique, car les adresses IPv4 sont trop courtes pour représenter complètement les adresses MAC. Dans les réseaux basés sur IPv4, la résolution des adresses via ARP n’est donc pas disponible.

Si un ordinateur A veut entrer en communication avec un ordinateur B au sein du même réseau, il doit d’abord déterminer quelle est l’adresse MAC pour son adresse IP. Ceci fait appel à l’ARP (Address Resolution Protocol), un protocole réseau qui opère en fonction du scénario de requête et de réponse.

Après avoir trouvé la bonne adresse MAC, l’ordinateur A envoie une demande de broadcast (également appelée demande ARP) à tous les appareils du réseau. Cette demande contient les informations suivantes :

Un ordinateur avec l’adresse MAC xx-xx-xx-xx-xx-xx et l’adresse IP yyy.yyy.yyy.yyy souhaite entrer en contact avec l’ordinateur à l’adresse IP zzz.zzz.zzz.zzz et a besoin de l’adresse MAC correspondante.

La demande ARP est reçue par tous les appareils du LAN. Pour éviter que la requête ARP ne soit d’abord soumise à l’envoi de chaque paquet de données, chaque ordinateur du réseau produit une table locale, le cache ARP. Dans ces tables, toutes les adresses MAC connues sont temporairement sauvegardées aux côtés de leurs adresses IP.

De cette façon, tous les ordinateurs du réseau enregistrent la requête broadcast en même temps que l’adresse d’envoi correspondante. On attend seulement de l’ordinateur B qu’il réponde à la demande de broadcast. La réponse ARP contient les informations suivantes : 

Message du système à l’adresse IP zzz.zzz.zzz.zzz. L’adresse MAC demandée est aa-aa-aa-aa-aa-aa.

Si cette réponse ARP est délivrée à l’ordinateur A, il dispose alors de toutes les informations nécessaires pour envoyer les paquets de données à l’ordinateur B, et plus rien n’empêche la communication au sein du réseau local.

Mais que se passe-t-il si l’ordinateur visé ne répond pas, et que la réponse provient d’un autre appareil contrôlé par un pirate interne ? C’est ici que l’ARP spoofing entre en jeu.

Qu’est-ce que l‘ARP spoofing ?

Le scénario de requête et de réponse du protocole ARP est organisé de façon à ce que la première réponse à la demande ARP soit acceptée et enregistrée. Dans le cadre de l’ARP spoofing, les pirates tentent de devancer l’ordinateur visé en envoyant une réponse contenant des informations incorrectes pour manipuler la table ARP de l’ordinateur qui envoie la demande. On appelle ceci l’ARP poisoning, ou la contamination du cache ARP. En règle générale, ces paquets de données contiennent l’adresse MAC d’un appareil du réseau contrôlé par des pirates. Le système visé guide l’IP vers la mauvaise adresse hardware, et envoie tous les paquets de données futures vers le système contrôlé par les pirates, qui sont alors en mesure d’enregistrer ou de manipuler le trafic des données.

Pour que cette supercherie ne soit pas découverte, le trafic intercepté est transmis au système initialement visé. Le pirate devient alors l’homme du milieu. Si les paquets de données interceptés, au lieu d’être transférés, sont supprimés, on parle alors d’une attaque par déni de service. L’ARP spoofing fonctionne aussi bien dans les environnements LAN que WLAN. Même le chiffrement d’un réseau sans fil via un accès wifi protégé (WPA), n’offre pas de protection suffisante. Pour communiquer dans des réseaux IPv4 locaux, tous les appareils connectés doivent résoudre les adresses MAC, ce qui ne peut se faire que via l’ARP.

Cain&Abel est un logiciel particulièrement connu pour se tapir derrière les demandes de broadcast et pour envoyer des ARP factices. Mais pour « contaminer » le cache ARP d’un appareil réseau, un pirate n’a pas forcément besoin d’attendre les demandes d’ARP. Une autre stratégie consiste en effet à bombarder le réseau de fausses réponses ARP. Si la plupart des systèmes ignorent les paquets de réponses qui ne sont pas liées à une demande, ceci n’est plus valable dès qu’un ordinateur dans le LAN envoie une requête ARP, et qu’il est donc dans l’attente d’une réponse. En fonction de la chronologie, la fausse réponse peut arriver avant celle du système visé. Ce modèle d’attaque peut être automatisé grâce à des programmes comme Ettercap.

Aperçu des programmes d‘attaques ARP

Les programmes qui opèrent dans le cadre de l’ARP spoofing sont en général présentés comme des outils de sécurité, et disponibles gratuitement sur le Web. Les administrateurs peuvent utiliser le programme pour tester leur réseau, et le protéger contre les modèles d’attaques les plus fréquents. Les applications les plus courantes sont ARP0c/WCI, Arpoison, Cain&Abel, Dsniff, Ettercap, FaceNiff et NetCut :

  • ARP0c/WCI : selon le fournisseur, ARP0c/WCI est un outil qui utilise l’ARP spoofing pour intercepter des connexions dans un réseau privé. Pour ce faire, le logiciel envoie des faux paquets de réponses ARP, qui redirigent le trafic vers le système exploitant ARP0c/WCI. Les paquets qui ne sont pas délivrés localement sont transférés par ARP0c/WCI vers le routeur approprié. Une attaque de l’homme du milieu n’est généralement pas détectée. Le programme, disponible pour Windows et Linux, peut être téléchargé gratuitement sur le site du fournisseur.
  • Arpoison : l’outil de ligne de commande Arpoison génère des paquets ARP définis par les utilisateurs, dans lesquels ils peuvent définir les adresses de l’expéditeur et du destinataire. Arpoison peut être utilisé pour l’analyse de réseau, mais on s’en sert également comme d’un programme de cyberattaque. L’outil est disponible gratuitement et opère sous la licence GNU.
  • Cain&Abel : l’outil de récupération de mots de passe Cain&Abel offre la possibilité d’intercepter des réseaux et de déchiffrer leurs mots de passe sécurisés. Depuis la version 2.5, le programme contient également des fonctionnalités d‘ARP poisoning, qui interceptent le trafic IP dans les LAN échangés. Même les connexions SSH et HTTPS ne constituent pas un obstacle pour Cain&Abel. Pour analyser le trafic d’un réseau WLAN, le programme est compatible avec l’adaptateur AirPcap depuis la version 4.0, ce qui permet une lecture passive du trafic de données dans le WLAN. La version 4.9.1 a également rendu possible les attaques contre les réseaux sans fil sécurisés avec WPA.
  • Dsniff : Dsniff est un ensemble de programmes fournissant des outils pour l’analyse de réseaux et les tests de pénétration : grâce à Dsniff, Filesnarf, Mailsnarf, Msgsnarf, Urlsnarf et Webspy, il est possible d’espionner les réseaux et d’intercepter des données, des emails ou des mots de passe. Arpspoof, Dnsspoof et Macof permettent de détecter des données qui ne sont normalement pas accessibles dans les réseaux commutés. Les attaques de l’homme du milieu dans les connexions sécurisées SSH et SSL/TLS sont permises grâce à des programmes comme shmitm et Webmitm.
  • Ettercap : l’outil d’ARP spoofing Ettercap, tourné vers la convivialité utilisateur, est d’abord utilisé pour des attaques de l’homme du milieu. Le programme est compatible avec plusieurs distributions Linux ainsi qu’avec Mac OS X (Snow Leopard & Lion). Il est possible de l’installer aussi sous Windows, mais ceci requiert des réglages supplémentaires. En plus de l’interface utilisateur, il existe des interfaces graphiques GTK2-GUI et des frontends ncurses. Ce programme permet d’automatiser des piratages tels que le sniffing, les attaques ARP et la collecte de mots de passe. Ettercap permet de manipuler les données interceptées et d’attaquer des connexions sécurisées via SSH ou SSL. Officiellement, il est présenté comme un programme de sécurité, et utilisé pour les tests de produits.
  • FaceNiff : l’application Android FaceNiff permet aux utilisateurs de lire les sessions de cookies dans les réseaux WLAN. Les pirates utilisent cet outil pour pirater des comptes Facebook, Amazon ou Twitter, donc il importe finalement peu que le réseau sans fil soit ouvert ou chiffré via WEP, WPA-PSK ou WPA2-PSK. Le protocole d’identification EAP (Extensible Authentication Protocol), comme le SSL, constitue une protection efficace contre FaceNiff. Le programme est basé sur l’extension Firefox Firesheep, et peut être utilisé sur smartphone, en combinaison avec les navigateurs préalablement installés.
  • Netcut : avec le logiciel de gestion de réseau Netcut, les administrateurs peuvent gérer leur réseau sur la base de l’ARP. L’outil détecte tous les appareils connectés au réseau et affiche leurs adresses MAC. Un simple clic sur l’une de ces adresses permet de déconnecter l’appareil correspondant du réseau. NetCut est particulièrement adapté aux attaques DoS, pourvu que le pirate se trouve dans le même réseau que la victime ; il ne permet en revanche pas de mettre en œuvre des attaques de l’homme du milieu.

ARP spoofing et chiffrement

Si un pirate parvient à s’insérer entre deux partenaires de communication, il a les mains libres pour disposer de la connexion non protégée. Dans la mesure où toute la communication d’une connexion piratée s‘exécute sur le système des hackeurs, ils peuvent lire et manipuler les données à leur guise. Certaines techniques de chiffrement et des certificats d’authentification assurent néanmoins une protection efficace contre l’espionnage des données. Si des pirates interceptent uniquement des données codées, le pire des scenarii se limite à un déni de service par suppression des paquets de données. Il est toutefois nécessaire d’implémenter en permanence un chiffrement fiable des données.

De nombreux outils utilisés pour les attaques de l’homme du milieu offrent également la possibilité de commettre des ARP spoofing, ainsi que d’implémenter des serveurs et clients pour SSL/TLS, SSH et d’autres protocoles de chiffrement. Ils sont en mesure d’imiter les certificats nécessaires, et d’établir des connexions chiffrées. Cain&Abel, par exemple, simule un serveur Web SSL, qui envoie ensuite de faux certificats SSL au système de la victime. Si les utilisateurs sont souvent mis en garde dans ces cas-là, ces avertissements sont en général ignorés ou mal interprétés. C’est pourquoi la gestion des certificats numériques devrait être intégrée au sein des formations au sujet de la sécurité des réseaux.

Contre-mesures

Puisque l’ARP spoofing exploite l’adress resolution protocol, tous les réseaux IPv4 sont sujets à des attaques de ce type. L’implémentation d’IPv6 n’a pas non plus permis de résoudre ce problème en profondeur. Le nouveau standard IP renonce à l’ARP et contrôle à la place la résolution d’adresse dans le LAN via NDP (Neighbor Discovery Protocol), qui est également vulnérable aux attaques de spoofing. La faille de sécurité pourrait être comblée grâce à au protocole Neighbor Discovery (SEND), mais ce dernier n’est pas compatible avec la plupart des systèmes d’exploitation de bureau.

L’une des façons de se protéger contre la manipulation des caches ARP réside dans les entrées ARP statiques, qui peuvent être paramétrées notamment sous Windows, en utilisant le programme de ligne de commande ARP et la commande arp –s. Mais puisque les entrées de ce type doivent être faites manuellement, ces méthodes de sécurité sont en général réservées aux systèmes les plus importants du réseau.

Une autre mesure de sécurité contre l’abus des ARP consiste à diviser les réseaux en 3 couches commutées. En effet, les demandes de broadcast non contrôlées ne touchent que les systèmes qui se trouvent dans le même segment de réseau. Les demandes ARP dans les autres segments sont vérifiées par le commutateur. Si elles fonctionnent dans la couche réseau (la 3e couche), l’adresse IP correspond à la fois avec l’adresse MAC et avec les entrées précédentes. S’il y a la moindre différence ou si les réaffectations sont trop fréquentes, l’alarme se met en marche. Cependant, le matériel requis pour mettre en œuvre cette méthode est relativement cher. Il revient aux administrateurs d’estimer si le renforcement de la sécurité réseau justifie de telles dépenses. Par ailleurs, le système à 2 couches commutées, nettement moins favorable, n’est pas adapté ici. Bien qu’elle enregistre un changement dans l’adresse MAC, l’assignation des IP respectives reste inchangée.

Nombreux sont les fabricants de logiciels qui proposent des programmes de surveillance des réseaux, capables de détecter les procédés ARP. Les outils les plus célèbres sont ARP-Guard et XArp, ainsi que le programme open-source Arpwatch. Par ailleurs, les systèmes de détection d’intrusion tels que Snort peuvent être utilisés pour surveiller la résolution d’adresse via ARP.

  • Arpwatch : Arpwatch est un outil open-source multiplateforme. Lorsqu’il est intégré à un réseau local IPv4, il enregistre en continu toutes les activités ARP dans le LAN. Tous les paquets ARP qui arrivent sont reçus par le programme en même temps que les informations sur leurs adresses, et sont enregistrés dans la base de données centrale. Si le programme trouve des entrées plus anciennes qui ne correspondent pas aux données qui viennent d’être envoyées, il envoie un email d’avertissement à l’administrateur. La procédure est efficace, mais seulement adaptée aux réseaux dotés d’adresses IP statiques. Si les IP LAN sont distribuées de façon dynamique à travers un serveur DHCP, chaque changement de l’adresse IP ou MAC produira une fausse alerte.
  • ARP-Guard : produit par ISL, ARP-Guard est également un outil de surveillance des réseaux internes, et repose sur deux détecteurs distincts. Le capteur LAN travaille de façon similaire à celui d’Arpwatch : il analyse les paquets de données entrants et tire la sonnette d’alarme s’il remarque des différences. L’architecture du système comprend également un détecteur SNMP, qui utilise le protocole Simple Network Management (SNMP) afin d’accéder aux appareils connectés dans le LAN et de lire leurs tables ARP. De cette façon, ce ne sont pas seulement les attaques ARP qui sont localisées et neutralisées, mais le système de gestion intégré des adresses permet aussi aux administrateurs de détecter les appareils indésirables et de les empêcher d’accéder au réseau.
  • XArp : le programme XArp, repose à la fois sur des modules actifs et passifs pour protéger le réseau de l’ARP spoofing. Les modules passifs analysent les paquets ARP envoyés sur le réseau, et vérifient la correspondance des adresses assignées avec les anciennes entrées. S’ils détectent une différence, l’administrateur en est immédiatement alerté. Le mécanisme de contrôle est basé sur des analyses statistiques, il vérifie le trafic du réseau à partir de différents schémas qui, selon les développeurs, indiquent une attaque ARP. Il est possible d’ajuster graduellement la sensibilité de ce filtre de trafic. Les modules actifs du programme envoient leurs propres paquets dans le réseau, de façon à valider les tables ARP des appareils accessibles, et à les compléter avec des données valides.

Le système de détection d’intrusion (IDS) Snort opère également grâce à un préprocesseur Arpspoof intégré, qui permet de surveiller le trafic des données dans le réseau, et de compiler des listes comparatives manuellement. Mais en comparaison, cette solution est relativement couteuse.

Plus important encore, IDS est surtout utilisé pour faire la transition vers des réseaux externes. Décider si le LAN importe ou non est donc un choix individuel. Il arrive que le conseil professionnel s’oppose à de telles mesures. Un administrateur qui surveille le réseau interne a en effet accès à l’intégralité du réseau, et peut également surveiller les activités de chacun des employés ; par conséquent, si ce contrôle existe, il est rarement souhaitable.