Les en­tre­prises de pare-feu, de serveurs proxy et de zones dé­mi­li­ta­ri­sé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 vul­né­ra­bi­lité des pro­to­coles 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 ad­mi­nis­tra­teurs.

Les entrées ARP peuvent fa­ci­le­ment être ma­ni­pu­lées en utilisant des paquets de données fal­si­fié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 com­mu­ni­ca­tion en passant inaperçus. Nous pré­sen­tons ici comment la ré­so­lu­tion d’adresse en par­ti­cu­lier peut être manipulée via ARP, ainsi que les mesures à prendre pour éviter ou résoudre ce genre de problème.

Dé­fi­ni­tion 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 com­mu­ni­cants, pour in­ter­cep­ter ou manipuler leur trafic de données.

ARP : l’adressage dans le LAN

Con­trai­re­ment à ce qui se passe avec Internet, les appareils dans le LAN ne com­mu­ni­quent pas di­rec­te­ment 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 per­met­tent d’iden­ti­fier 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 at­tri­buées par les fa­bri­cants de matériel res­pec­tifs, et chacune est unique au monde. En théorie, elles sont adaptées à un adressage global, mais ceci ne fonc­tionne pas dans la pratique, car les adresses IPv4 sont trop courtes pour re­pré­sen­ter com­plè­te­ment les adresses MAC. Dans les réseaux basés sur IPv4, la ré­so­lu­tion des adresses via ARP n’est donc pas dis­po­nible.

Si un or­di­na­teur A veut entrer en com­mu­ni­ca­tion avec un or­di­na­teur B au sein du même réseau, il doit d’abord dé­ter­mi­ner quelle est l’adresse MAC pour son adresse IP. Ceci fait appel à l’ARP (Address Re­so­lu­tion 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’or­di­na­teur A envoie une demande de broadcast (également appelée demande ARP) à tous les appareils du réseau. Cette demande contient les in­for­ma­tions suivantes :

Un or­di­na­teur avec l’adresse MAC xx-xx-xx-xx-xx-xx et l’adresse IP yyy.yyy.yyy.yyy souhaite entrer en contact avec l’or­di­na­teur à l’adresse IP zzz.zzz.zzz.zzz et a besoin de l’adresse MAC cor­res­pon­dante.

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 or­di­na­teur du réseau produit une table locale, le cache ARP. Dans ces tables, toutes les adresses MAC connues sont tem­po­rai­re­ment sau­ve­gar­dées aux côtés de leurs adresses IP.

De cette façon, tous les or­di­na­teurs du réseau en­re­gistrent la requête broadcast en même temps que l’adresse d’envoi cor­res­pon­dante. On attend seulement de l’or­di­na­teur B qu’il réponde à la demande de broadcast. La réponse ARP contient les in­for­ma­tions 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’or­di­na­teur A, il dispose alors de toutes les in­for­ma­tions né­ces­saires pour envoyer les paquets de données à l’or­di­na­teur B, et plus rien n’empêche la com­mu­ni­ca­tion au sein du réseau local.

Mais que se passe-t-il si l’or­di­na­teur 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 en­re­gis­trée. Dans le cadre de l’ARP spoofing, les pirates tentent de devancer l’or­di­na­teur visé en envoyant une réponse contenant des in­for­ma­tions in­cor­rectes pour manipuler la table ARP de l’or­di­na­teur qui envoie la demande. On appelle ceci l’ARP poisoning, ou la con­ta­mi­na­tion du cache ARP. En règle générale, ces paquets de données con­tien­nent 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’en­re­gis­trer ou de manipuler le trafic des données.

Pour que cette su­per­che­rie ne soit pas dé­cou­verte, le trafic in­ter­cepté est transmis au système ini­tia­le­ment visé. Le pirate devient alors l’homme du milieu. Si les paquets de données in­ter­cep­tés, au lieu d’être trans­fé­rés, sont supprimés, on parle alors d’une attaque par déni de service. L’ARP spoofing fonc­tionne aussi bien dans les en­vi­ron­ne­ments LAN que WLAN. Même le chif­fre­ment d’un réseau sans fil via un accès wifi protégé (WPA), n’offre pas de pro­tec­tion suf­fi­sante. Pour com­mu­ni­quer 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 par­ti­cu­liè­re­ment connu pour se tapir derrière les demandes de broadcast et pour envoyer des ARP factices. Mais pour « con­ta­mi­ner » 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 or­di­na­teur dans le LAN envoie une requête ARP, et qu’il est donc dans l’attente d’une réponse. En fonction de la chro­no­lo­gie, la fausse réponse peut arriver avant celle du système visé. Ce modèle d’attaque peut être au­to­ma­tisé grâce à des pro­grammes comme Ettercap.

Aperçu des pro­grammes d‘attaques ARP

Les pro­grammes 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 dis­po­nibles gra­tui­te­ment sur le Web. Les ad­mi­nis­tra­teurs peuvent utiliser le programme pour tester leur réseau, et le protéger contre les modèles d’attaques les plus fréquents. Les ap­pli­ca­tions les plus courantes sont ARP0c/WCI, Arpoison, Cain&Abel, Dsniff, Ettercap, FaceNiff et NetCut :

  • ARP0c/WCI : selon le four­nis­seur, ARP0c/WCI est un outil qui utilise l’ARP spoofing pour in­ter­cep­ter des con­nexions dans un réseau privé. Pour ce faire, le logiciel envoie des faux paquets de réponses ARP, qui re­di­ri­gent le trafic vers le système ex­ploi­tant ARP0c/WCI. Les paquets qui ne sont pas délivrés lo­ca­le­ment sont trans­fé­rés par ARP0c/WCI vers le routeur approprié. Une attaque de l’homme du milieu n’est gé­né­ra­le­ment pas détectée. Le programme, dis­po­nible pour Windows et Linux, peut être té­lé­chargé gra­tui­te­ment sur le site du four­nis­seur.
  • Arpoison : l’outil de ligne de commande Arpoison génère des paquets ARP définis par les uti­li­sa­teurs, dans lesquels ils peuvent définir les adresses de l’ex­pé­di­teur et du des­ti­na­taire. Arpoison peut être utilisé pour l’analyse de réseau, mais on s’en sert également comme d’un programme de cy­be­rat­taque. L’outil est dis­po­nible gra­tui­te­ment et opère sous la licence GNU.
  • Cain&Abel : l’outil de ré­cu­pé­ra­tion de mots de passe Cain&Abel offre la pos­si­bi­lité d’in­ter­cep­ter des réseaux et de dé­chif­frer leurs mots de passe sécurisés. Depuis la version 2.5, le programme contient également des fonc­tion­na­li­tés d‘ARP poisoning, qui in­ter­cep­tent le trafic IP dans les LAN échangés. Même les con­nexions SSH et HTTPS ne cons­ti­tuent pas un obstacle pour Cain&Abel. Pour analyser le trafic d’un réseau WLAN, le programme est com­pa­tible avec l’adap­ta­teur 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 pro­grammes four­nis­sant des outils pour l’analyse de réseaux et les tests de pé­né­tra­tion : grâce à Dsniff, Filesnarf, Mailsnarf, Msgsnarf, Urlsnarf et Webspy, il est possible d’espionner les réseaux et d’in­ter­cep­ter des données, des emails ou des mots de passe. Arpspoof, Dnsspoof et Macof per­met­tent de détecter des données qui ne sont nor­ma­le­ment pas ac­ces­sibles dans les réseaux commutés. Les attaques de l’homme du milieu dans les con­nexions sé­cu­ri­sées SSH et SSL/TLS sont permises grâce à des pro­grammes comme shmitm et Webmitm.
  • Ettercap : l’outil d’ARP spoofing Ettercap, tourné vers la con­vi­via­lité uti­li­sa­teur, est d’abord utilisé pour des attaques de l’homme du milieu. Le programme est com­pa­tible avec plusieurs dis­tri­bu­tions 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 sup­plé­men­taires. En plus de l’interface uti­li­sa­teur, il existe des in­ter­faces gra­phiques GTK2-GUI et des frontends ncurses. Ce programme permet d’au­to­ma­ti­ser des piratages tels que le sniffing, les attaques ARP et la collecte de mots de passe. Ettercap permet de manipuler les données in­ter­cep­tées et d’attaquer des con­nexions sé­cu­ri­sées via SSH ou SSL. Of­fi­ciel­le­ment, il est présenté comme un programme de sécurité, et utilisé pour les tests de produits.
  • FaceNiff : l’ap­pli­ca­tion Android FaceNiff permet aux uti­li­sa­teurs 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 fi­na­le­ment peu que le réseau sans fil soit ouvert ou chiffré via WEP, WPA-PSK ou WPA2-PSK. Le protocole d’iden­ti­fi­ca­tion EAP (Ex­ten­sible Au­then­ti­ca­tion Protocol), comme le SSL, constitue une pro­tec­tion efficace contre FaceNiff. Le programme est basé sur l’extension Firefox Firesheep, et peut être utilisé sur smart­phone, en com­bi­nai­son avec les na­vi­ga­teurs préa­la­ble­ment installés.
  • Netcut : avec le logiciel de gestion de réseau Netcut, les ad­mi­nis­tra­teurs 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é­con­nec­ter l’appareil cor­res­pon­dant du réseau. NetCut est par­ti­cu­liè­re­ment 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 chif­fre­ment

Si un pirate parvient à s’insérer entre deux par­te­naires de com­mu­ni­ca­tion, il a les mains libres pour disposer de la connexion non protégée. Dans la mesure où toute la com­mu­ni­ca­tion 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 tech­niques de chif­fre­ment et des cer­ti­fi­cats d’au­then­ti­fi­ca­tion assurent néanmoins une pro­tec­tion efficace contre l’es­pion­nage des données. Si des pirates in­ter­cep­tent uni­que­ment des données codées, le pire des scenarii se limite à un déni de service par sup­pres­sion des paquets de données. Il est toutefois né­ces­saire d’im­plé­men­ter en per­ma­nence un chif­fre­ment fiable des données.

De nombreux outils utilisés pour les attaques de l’homme du milieu offrent également la pos­si­bi­lité de commettre des ARP spoofing, ainsi que d’im­plé­men­ter des serveurs et clients pour SSL/TLS, SSH et d’autres pro­to­coles de chif­fre­ment. Ils sont en mesure d’imiter les cer­ti­fi­cats né­ces­saires, et d’établir des con­nexions chiffrées. Cain&Abel, par exemple, simule un serveur Web SSL, qui envoie ensuite de faux cer­ti­fi­cats SSL au système de la victime. Si les uti­li­sa­teurs sont souvent mis en garde dans ces cas-là, ces aver­tis­se­ments sont en général ignorés ou mal in­ter­pré­tés. C’est pourquoi la gestion des cer­ti­fi­cats nu­mé­riques devrait être intégrée au sein des for­ma­tions au sujet de la sécurité des réseaux.

Contre-mesures

Puisque l’ARP spoofing exploite l’adress re­so­lu­tion protocol, tous les réseaux IPv4 sont sujets à des attaques de ce type. L’im­plé­men­ta­tion d’IPv6 n’a pas non plus permis de résoudre ce problème en pro­fon­deur. Le nouveau standard IP renonce à l’ARP et contrôle à la place la ré­so­lu­tion d’adresse dans le LAN via NDP (Neighbor Discovery Protocol), qui est également vul­né­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 com­pa­tible avec la plupart des systèmes d’ex­ploi­ta­tion de bureau.

L’une des façons de se protéger contre la ma­ni­pu­la­tion des caches ARP réside dans les entrées ARP statiques, qui peuvent être pa­ra­mé­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 ma­nuel­le­ment, ces méthodes de sécurité sont en général réservées aux systèmes les plus im­por­tants 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 con­trô­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 com­mu­ta­teur. Si elles fonc­tion­nent dans la couche réseau (la 3e couche), l’adresse IP cor­res­pond à la fois avec l’adresse MAC et avec les entrées pré­cé­dentes. S’il y a la moindre dif­fé­rence ou si les réaf­fec­ta­tions sont trop fré­quentes, l’alarme se met en marche. Cependant, le matériel requis pour mettre en œuvre cette méthode est re­la­ti­ve­ment cher. Il revient aux ad­mi­nis­tra­teurs d’estimer si le ren­for­ce­ment 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 en­re­gistre un chan­ge­ment dans l’adresse MAC, l’as­sig­na­tion des IP res­pec­tives reste inchangée.

Nombreux sont les fa­bri­cants de logiciels qui proposent des pro­grammes de sur­veil­lance 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 sur­veil­ler la ré­so­lu­tion d’adresse via ARP.

  • Arpwatch : Arpwatch est un outil open-source mul­ti­pla­te­forme. Lorsqu’il est intégré à un réseau local IPv4, il en­re­gistre 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 in­for­ma­tions sur leurs adresses, et sont en­re­gis­trés dans la base de données centrale. Si le programme trouve des entrées plus anciennes qui ne cor­res­pon­dent pas aux données qui viennent d’être envoyées, il envoie un email d’aver­tis­se­ment à l’ad­mi­nis­tra­teur. La procédure est efficace, mais seulement adaptée aux réseaux dotés d’adresses IP statiques. Si les IP LAN sont dis­tri­buées de façon dynamique à travers un serveur DHCP, chaque chan­ge­ment de l’adresse IP ou MAC produira une fausse alerte.
  • ARP-Guard : produit par ISL, ARP-Guard est également un outil de sur­veil­lance des réseaux internes, et repose sur deux dé­tec­teurs 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 dif­fé­rences. L’ar­chi­tec­ture du système comprend également un détecteur SNMP, qui utilise le protocole Simple Network Ma­na­ge­ment (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 lo­ca­li­sées et neu­tra­li­sées, mais le système de gestion intégré des adresses permet aussi aux ad­mi­nis­tra­teurs de détecter les appareils in­dé­si­rables 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 cor­res­pon­dance des adresses assignées avec les anciennes entrées. S’ils détectent une dif­fé­rence, l’ad­mi­nis­tra­teur en est im­mé­dia­te­ment alerté. Le mécanisme de contrôle est basé sur des analyses sta­tis­tiques, il vérifie le trafic du réseau à partir de dif­fé­rents schémas qui, selon les dé­ve­lop­peurs, indiquent une attaque ARP. Il est possible d’ajuster gra­duel­le­ment la sen­si­bi­lité 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 ac­ces­sibles, 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é­pro­ces­seur Arpspoof intégré, qui permet de sur­veil­ler le trafic des données dans le réseau, et de compiler des listes com­pa­ra­tives ma­nuel­le­ment. Mais en com­pa­rai­son, cette solution est re­la­ti­ve­ment couteuse.

Plus important encore, IDS est surtout utilisé pour faire la tran­si­tion vers des réseaux externes. Décider si le LAN importe ou non est donc un choix in­di­vi­duel. Il arrive que le conseil pro­fes­sion­nel s’oppose à de telles mesures. Un ad­mi­nis­tra­teur qui surveille le réseau interne a en effet accès à l’in­té­gra­lité du réseau, et peut également sur­veil­ler les activités de chacun des employés ; par con­sé­quent, si ce contrôle existe, il est rarement sou­hai­table.

Aller au menu principal