Suite à une autre discussion disponible à cette adresse (permettant de mieux cibler le contexte de ma question & quelques rappels sur l'arp cache poisoning) : http://forums.ixus.fr/viewtopic.php?t=38261 je me suis demandéé comment on pouvait détecter des outils comme Dsniff.
Webseb a écrit:Pour rappel, l'arp spoofing (ou arp cache poisoning, par abus de langage pour moi c'est la même chose) est une attaque qui vise à corrompre le cache arp des machines (et pas des switchs...). En gros pour écouter le traffic entre machine A et machine B (attaque Man In The Middle classique) tu envoie des paquets ARP reply avec l'adresse IP de B et ton addresse MAC à la machine A et tu route les paquets reçus vers la machine B avec l'IP de A et ton adresse MAC. A croit que t'es B et B crois que t'es A : A<--->attaquant<---->B.
Plusieurs outils permettent de corrompre très facilement le cache ARP des machines (ettercap, dsniff, Cain & Abel, scapy(avec le saut de VLAN en option)). Mon but est de détecter l'utilisation de ces outils à partir d'une sonde Firewall/IDS placé à un endroit du réseau et sans rien installer sur les machines (impensable sur un réseau hétérogène de grande taille). Arpwatch me diraient vous !
Oui mais après quelques tests, je me suis rendu compte que cet outil n'était pas suffisant et fonctionne de la manière suivante :
- Broadcast ARP régulier afin de construire une table d'association mac/ip du réseau concerné et fait un diff avec le broadcast précédent afin de detecter des changements. -> Permet de détecter l'usurpation d'identité (et non l'arp cache poisoning), usurpations qui peuvent être facilement évitées en utilisant des fonctionnalitées comme port security chez cisco (l'auto-apprentissage des adresses mac), ca n'est pas le problème de ce post.
- Ecoute du réseau afin de détecter les paquets ARP reply et comparaison avec sa table afin de détecter l'ARP cache poisoning.
Le problème est que les outils cités précédemment ne fonctionnent pas tous de la même manière :
- Un outil (de noobs lol) comme Cain & Abel est assez bourrin et broadcast ses modifs vers toutes les machines du réseau. Pas de soucis donc pour la machine sur laquelle se trouve arpwatch qui reçoit sans rien demander l'arp reply généré par Cain. Notons quand même ici que même quelqu'un ne connaissant rien à l'informatique peut en deux click faire de l'arp spoofing, récupérer les mots de passe circulant sur le réseau (même celui de son admin préféré se connectant en telnet à son routeur cisco), et même écouter les conversations téléphoniques du réseau VoIP de sa boite, et tout ça en un outil, et sous windows. C'est à la portée de n'importe kel gamin de 10 ans...
- En revanche un outil comme Dsniff(arpspoof ou scapy) est beaucoup plus discret vu qu'il envoie le message arp reply en unicast directement à sa victime -> Un outil comme arpwatch ne peut donc rien contre Dsniff vu qu'il ne verra jamais passer les arp reply (à moins d'être la victime lol).
Un problème apparaît donc ici : que faire ? L'idéal serait de pouvoir interroger le cache arp de toutes les machines à distance et de faire des comparaisons. Mais cela pose d'autres problèmes : les différentes implémentations de tcp/ip sur un parc hétérogène, l'interval de temps entre les vérification, et de plus je ne sais pas si il est possible d'intérroger le cache arp des machines à distance (ça serai quand même bien...lol)
J'ai penser à la solution de spoofer l'ensemble du traffic réseau à travers la machine arpspoof, mais ça me paraît trop bourrin et doit introduire un temps de latence supplémentaire important voir innaceptable pour des services nécessitant de la QoS.
Voila, le sujet est donc ouvert, comment détecter un petit malin qui s'amuserait à écouter le traffic réseau de ses petits camarades ou de son administrateur sur un réseau local commuté?
PS : Après comment le bloquer une fois détecté est une autres question qui fait l'objet mon mon autre post cité au début de mon message.