Empecher l’arp poisoning / arp spoofing / Détecter si quelqu’un sniffe votre réseau

Free-Data-center-14

Partant du postulat qu’aucun réseau n’est fiable, je suis souvent pris de crise de paranoïa. En effet, comment savoir si le Wifi sur lequel je suis connecté à l’hôtel ou dans un café n’est pas victime de sniff d’un petit bidouilleur du coin. Au final, ce schéma n’est pas si paranoïaque que cela, le bidouilleur en question peut tout a fait avoir cracké la clé wep de la connexion et sniffer tout ce qui passe sur le réseau à mon insu.

Je ferai prochainement un billet sur les attaques de type Man in The Middle, en attendant voici pour la théorie sur l’ARP poisoning.

Grosso modo le sniffing repose sur une faiblesse du protocole ARP. Sans entrer dans les détails, ce protocole sert à gérer l’association des adresses MAC / IP. Si vous tapez arp -a dans votre shell, vous verrez la plage ARP que votre ordinateur a en cache. Donc dans l’idée, si ce cache est vide, j’envoie une requête broadcasté pour émettre ma trame = > tous les ordinateurs du réseau sont au courant de cette requête et l’ordinateur concerné me renvoie son adresse MAC; après association, ma trame est envoyée. Si j’ai déjà l’association en cache, ma trame est envoyée immédiatement.

L’astuce va consister à usurper une adresse IP au sein du réseau en utilisant des packets forgés. Comment cela se passe ? Si je veux sniffer ce qu’Etienne et Alix se disent, je vais envoyer à Etienne un packet avec en adresse IP source, l’ip de la machine d’Alix et l’adresse MAC de ma carte réseau. On imagine aisément la suite, j’envoie un packet à Alix avec l’adresse IP d’Etienne en source et mon adresse MAC à nouveau. Lorsque les deux vont vouloir communiquer, c’est moi qui vais recevoir les trames. Une fois que les trames arrivent chez moi, j’ai plusieurs choix: Ecouter ce qu’ils se disent (conversations MSN, Surf, etc) avec du Man in the Middle, donc rerouter les packets ensuite; paralyser le réseau en réalisant un Ddos: MITM sans relayer les packets; décider de ne pas router les packets après réception: bloquage du réseau. Ainsi je peux écouter l’intégralité des informations échangées sur le réseau où je suis.

Pour éviter ce type d’attaque on peut par exemple mettre des entrées statiques dans les cache ARP, mais cette méthode a ses limites: il faut un faible nombre de machines sur le réseau, et c’est biensûr impossible sur un Wifi ouvert d’hôtel. Sinon, on peut surveiller le réseau, et couper les accès aux adresses IP usurpées (Victime 1, Victime 2, Attaquant).

Si l’on est victime de ce type d’attaque, on peut limiter le casse: le bon usage voudrait que l’on utilise SYSTÉMATIQUEMENT des connexions en SSL pour rappatrier ses mails, se loger sur ses comptes favoris (gmail, analytics, etc), et se limiter à l’essentiel dans ce surf. Bref tout cela reste problématique et assez peu déterministe. D’autant plus que de configurer un proxy SSL pour son IM n’est pas toujours possible, et un pirate peut aisément extraire les trames spécifiques qui l’interesse. Par exemple en cas de sniffing, si sous Wireshark j’utilise: msnms contains « text/plain » && ip.addr == 192.168.0.10, je pourrais lire l’intégralité des conversations msn de la victime.

Tout cela pour dire que j’ai trouvé un soft qui se lance au démarrage de votre machine et vous alerte en cas d’ARP Poisoning. Je ne peux plus m’en passer, ma paranoia diminue, bref tout va pour le mieux dans le meilleur des mondes.

Le soft en question s’appelle Xarp, téléchargeable ici. Donc comme précisé, il se lance au démarrage et analyse les associations ARP, et permet de déceller si vous êtes victime d’ARP Poisoning. S’il détecte une attaque, il pop une alerte avec l’adresse IP de l’attaquant et celles des victimes.

Sinon si vous voulez vous la jouer un peu plus old school, vous avez arpwatch.

 

xarp screenshot alert

John JEAN
Directeur de production Web au sein de Rentabiliweb Group / Edencast (CA: 90M / 200 personnes). Consultant en sécurité informatique au sein de Wargan Solutions.

13 Commentaires on "Empecher l’arp poisoning / arp spoofing / Détecter si quelqu’un sniffe votre réseau"

  1. AnnaHopn dit :

    Everything dynamic and very positively! :)
    Thank you

  2. funkinessflavor dit :

    SSL protégera de l’écoute malveillante du réseau mais pas d’un mitm associé à un arp spoofing.

    A propos de la 2e partie du titre (« Détecter si quelqu’un sniffe votre réseau »), on peut utiliser l’outil antisniff ou sinon, à la main, on peut envoyer des arp who-has à destination de ff:ff:ff:ff:ff:fe.

  3. John dit :

    SSL empêchera de collecter les informations utilisateurs, sauf si celui-ci ne voit pas les faux que l’attaque MITM génère :) Là on ne peut plus rien faire :]

  4. Tomi dit :

    Salut For all
    une Vidéo ARP Poisoning Avec Cain

    http://www.youtube.com/watch?v=2U2aVf-0aFw

    Merci tout le monde and Nice Work Mr.John

  5. Sput dit :

    Bonjour,

    je tiens a preciser qu’il existe un autre soft pour la detection & le blocage de l’arp poisoning : AntiArp
    de colorsoft, je le prefere a xarp

    En version Workstation & Server

    http://www.antiarp.com/english.html
    http://download.antiarp.com/tmp/antiarp_eng.rar

    Version : v6.0.1
    Size : 7.35 MB
    Release Date : 2009-02-24
    Platform : Windows2000/XP/2003/Vista
    Language : English
    Authorization : 15-days free trial

    Cordialement

  6. Sput dit :

    A oui, j’oubliai pour le petit pb de ssl & ssh, li ya le script sslstrip, outil destine a reroute du ssl sur du http en clair (facebook,Gmail,etc…) entre autre

    Sput
    ++

    http://www.thoughtcrime.org/software/sslstrip/
    http://www.thoughtcrime.org/software/sslstrip/sslstrip-0.2.tar.gz

  7. Kasi dit :

    Moi j’aimerais revenir sur « msnms contains « text/plain » && ip.addr == 192.168.0.10″.

    En quoi ça permet de voir le contenu de la conversation msn ?

  8. John JEAN dit :

    http://wiki.wireshark.org/MSNMS

    En partant du principe que tu fais un MITM.

  9. ylo dit :

    C’est bien de donner les références de ce genre d’outils… Mais c’est encore mieux de les tester (à en juger par la capture: host windoze… et le propos de l’article ne mentionnait pas l’usage d’un cable!)

    Pour l’avoir fait avec un attaquant linux, sur un wlan avec le classique:
    ettercap -i wlan0 -TqM arp:remote /IP_GW/ /IP_CIBLE/

    et en parallèle, histoire de vérifier que ça marche, un sniff de mdp de connection à un site:
    tcpdump -XX -vv -s0 -i wlan0 port 80 | grep -i -A5 login

    Eh bien le Xarp windows, il ne tilte que dalle et mon tcpdump pendant ce temps a fait bonne pêche quand je me loggue via la machine attaquée!

    A la reflexion, sans doute est-ce du au fait que Xarp s’appuie sur la version windows de la libpcap, vu que l’installateur la tire… librairie qui est connue pour ne pas fonctionner sur les interfaces wifi, pour cela il faut la airpcap, mais qui est payante et assez chère!

    Alors pour espérer surfer tranquille au cyber café du coin avec Xarp, changez pour un vrai OS…

    Reste à savoir pourquoi xarp, qui n’est pas censé sniffer mais monitorer le cache arp… a besoin d’une libpcap et probablement de passer l’interface en promiscuous, ce qui bloque la libpcap.

    A la limite je trouve ça plutot inquiétant, pas vous? Mais je ne suis pas un pro de la sécurité non plus… juste un pol vigilant avec ce truc que je m’en vais désinstaller sur le champ, en espérant que ça suffise…

  10. John JEAN dit :

    Lors de mes tests, il avait detecté mes tentatives, sinon je n’aurais pas posté l’article. Si vous souhaitez plus « inquiétant », voici une info lors d’un échange de mail avec son créateur:
    [...]

    Note, that XArp requires superuser priviledges for accessing the network
    interfaces. I have not found any other way, maybe giving rights for only
    accessing e.g. eth0 will suffice. Currently I always start XArp with
    sudo ./xarp

    Most of the functionality works, somehow the minimizing functionality is
    messed up, so don’t minimize :) Furthermore, the MAC-Vendor database is
    outdated, so most interfaces will be labeled « unknown ». If you require a
    XArp version for 64bit I can try to get it compiled on 64bit. You are
    welcome to test XArp on as many machines as you like with the given
    registration information.

    Voici le mail du créateur si vous souhaitez aller à la pêche aux infos: XArp Development xarp@chrismc.de, Tenez moi au courant ! ;)

  11. ylo dit :

    Petit commentaire en plus… Le désinstalleur ne dégage pas la libpcap, ce qu’il faut faire manuellement. Pas super propre, jusque dans la désinstallation ce truc…

    Le fait qu’il ne prévienne pas sous windows quand on est connecté en wifi, qu’il ne pourra pas fonctionner, peut de plus donner un faux sentiment de sécurité.

    Je pense qu’il faudrait revoir l’article en conséquence…

  12. ylo dit :

    Waouh! Ca c’est de la réponse rapide… et pourtant le post est un peu ancien :o)

  13. John JEAN dit :

    Héhé, merci les alertes WordPress :D

N'hésitez pas à apporter votre pierre à l'édifice: