Attaque de switch Ethernet
Sommaire
- 1 – Introduction à l’attaque de switch Ethernet
- 2 – Rappel des terminologies
- 3 – L’attaque
- 4 – Les protections non efficaces
- 5 – La protection efficace
- 6 – Commandes équivalentes 3COM
- 7 – Les vidéos
- 8 – Suivi du document
- 9 – Discussion autour de l’attaque de switch Ethernet
- Commentaire et discussion
- Laisser un commentaire
1 – Introduction à l’attaque de switch Ethernet
Voici une documentation d’attaque pragmatique expliquant comment il est possible d’attaquer un Switch Ethernet. Vous découvrirez qu’il est simple d’affecter le management et intéressant d’écouter les autres ports en basculant le commutateur en mode HUB.
L’objectif étant de faire prendre conscience aux entreprises de la vulnérabilité d’un LAN et que la sécurité interne est primordiale pour obtenir une stabilité de l’exploitation. Pour cela, vous découvrirez aussi dans cette documentation, la manière de se protéger.
2 – Rappel des terminologies
2.1 – Le Switch (commutateur)
Cet équipement agît au niveau 2 du modèle OSI. Identiquement à un HUB, sa fonction est d’interconnecter plusieurs cartes d’interfaces Ethernet ensembles. Cependant, lorsqu’il réceptionne une trame, il compare l’adresse MAC de destination avec sa table de correspondance. Ainsi, il ne diffuse cette trame uniquement sur le port physique concerné.
Dans le cadre d’un Switch 100Mbps, on obtient un débit dédié de 100Mbps par équipement Ethernet raccordé. les caractéristiques principales à vérifier lors de la sélection d’un Switch sont :
- Le nombre d’adresses MAC maximum qui peuvent mise en mémoire
- Le nombre de paquets par seconde (PPS) que la matrice de fond de panier peut commuter
2.2 – Le protocole ARP
Le protocole ARP, signifiant Address Resolution Protocol, fonctionne en couche Internet du modèle TCP/IP correspondant à la couche 3 du modèle Osi. L’objectif de ARP est de permettre la résolution d’une adresse physique par l’intermédiaire de l’adresse IP correspondante d’un host distant. Le protocole ARP apporte un mécanisme de « translation » pour résoudre ce besoin.
Voici la composition de l’entête :
Vous remarquerez qu’il existe deux principaux modes définit par le champ « Operation » qui sont la demande (request) et la réponse (reply). Vous trouverez tous les détails du protocole ARP dans la documentation de l’entête ARP du site FrameIP.
2.3 – L’outil ArpFlood
L’utilitaire ArpFlood permet l’envoi massif de demandes ou de réponses ARP permettant ainsi de facilement tester les différentes attaques de Switch.
2.4 – La norme 802.1X
Définie par l’IEEE, la norme 802.1X concerne l’authentification au niveau 2 du modèle OSI. Cela permet la mise en place d’authentification des équipements réseaux grâce au protocole EAP définit par le protocole EAPOL (Extensible Authentication Protocol Over LAN).
802.1X peut se reposer sur plusieurs type de protocole d’authentification tel que Radius, Tacacs+, voir même aucun et attaquer une base locale. Cependant, dans la réalité du marché de l’entreprise, Radius s’impose très fortement.
3 – L’attaque
3.1 – Le contexte
La première attaque consiste à saturer la mémoire du Switch qui contient la table d’adresses MAC. Cela peut être un Pirate, un utilisateur mal intentionné et voir même un Virus ou SpyWare. Pour réaliser cette attaque, je positionne le contexte suivant :
1 – La Xbox lit un film présent sur le serveur real vidéo.
2 – Le pirate envoi un flood de datagrammes avec une d’adresse MAC source aléatoire.
3 – Le Switch insert les adresses MAC dans sa table en les associant au port physique du port du pirate.
3.2 – La réalisation
Pour réaliser cette attaque, j’utilise la commande « arpflood.exe -interface 3 -loops 0 -view 0 » qui permet l’envoi massif de requête ARP avec des adresses MAC aléatoire comme on peut le voir dans l’analyse de trame suivante. Pour cette attaque, j’utilise les arguments « -loops 0 » pour définir de ne pas s’arrêter et « -view 0 » pour ne pas afficher les résultats à l’écran afin de gagner en performance.
Voici l’analyse de trame Arpflood.
3.3 – La réaction
La réaction du Switch à cette attaque est sans surprise : la table d’adresses MAC se remplie instantanément et sature très rapidement la mémoire. En fait, le Switch 2950 Cisco est limité à 8000 adresses MAC maximum. La commande « show mac-address-table » permet de voir la table des correspondances MAC. Voici le contenu à l’étape 1 :
Et après l’étape 2 (après l’exécution de Arpflood), on peut remarquer qu’il ne reste plus aucune place dans la table de correspondance :
3.4 – Les conséquences
Il y a principalement deux conséquences visibles à cette attaque qui sont la perte de l’administration et le passage en mode HUB.
3.4.1 – Perte de l’administration
Dès les premières secondes de l’exécution du flooding ARP, le Switch répond très mal au management Telnet. L’affichage devient très lent et le temps de réponse à une commande est long. Cependant, le process de Throughput étant prioritaire, le Switch ne drop aucune trame à commuter, ce qui est une très bonne réaction.
Cette première conséquence impact uniquement le management du Switch, mais aucunement sa fonction principale « la commutation ».
3.4.2 – Passage en mode HUB
Par la suite, ne possédant plus de place pour stocker les correspondances des adresses MAC de la XBOX et du Serveur, le Switch est obligé de basculer en mode HUB. Ainsi, le Pirate Z peux alors écouter le flux real vidéo comme le montre la capture suivante :
En tant que pirate Z, mon PC portable reçoit donc l’ensemble du trafic échangé entre la XBOX 192.168.101.3 et le serveur 192.168.101.4. Remarques, En fait, le passage en mode HUB du Switch peut intervenir de deux manières différentes :
La première est le cas où le serveur et la XBOX ne discutent pas encore ensemble avant l’attaque. Le Switch ne connaît donc pas leurs adresses MAC. Ainsi, lorsque ArpFlood sature la table de correspondance, le Switch ne peut plus apprendre aucunes nouvelles adresses MAC. Dès que la XBOX et le serveur se mettent à discuter ensemble, le Switch renverra chacune des trames sur tous les ports du fait qu’il n’a pas placé leurs adresses MAC dans sa table de correspondance.
La seconde manière est le cas où le serveur et la XBOX discutent ensemble avant l’attaque. Le Switch connaît donc leurs adresses MAC, même après l’exécution de ArpFlood. Le Switch commutera correctement le flux d’échange entre la XBOX et le serveur sur les ports concernés. A ce moment, l’écoute ne fonctionne pas. Il faut alors attendre 5 minutes, ce qui représente la durée de vie d’une entrée dans la table de correspondance, pour que le Switch commute le flux sur tous les ports. Car, au bout des 5 minutes, les correspondances MAC et Ports de la XBOX et du Serveur sont effacées et le Switch ne peut pas les réapprendre du fait que sa table est saturée.
Pour info, par défaut, le Switch 2950 garde 5 minutes une correspondance d’adresse MAC/Port.
Cela peut être redéfinit grâce à la commande « mac-address-table aging-time » commande dans l’exemple suivant où l’on positionne la durée de vie de l’entrée à 10 secondes :
3.4.3 – Saturation réseau
La conséquence suivante est que suite au passage en mode HUB, toutes les trames vont être multipliées sur tous les ports. Ainsi, si par exemple une sauvegarde au giga à lieu entre deux ports, le débit va se répliquer sur tous les autres ports en les saturants. L’incidence impacte alors chaque port du commutateur et donc les utilisateurs finaux.
De plus, un Switch possède un taux de commutation de fond de panier maximum. Par exemple, pour le Cisco Catalyst 2950T-24, la bande passante maximum de commutation globale est de 8,8 Gbps (8.8Gbps maximum forwarding bandwidth). Ainsi, avec la réplication des ports et grâce au contexte multi commutateurs exposé dans le chapitre suivant, on peut rapidement saturer la commutation globale du Switch. Le débit global est alors supérieur aux possibilités réelles du fond de panier.
3.5 – Cas d’une entreprise
Dans le cas concret d’une entreprise, le schéma LAN habituel se divise en 3 niveaux en étoiles représentés par les commutateurs de Coeur, de Distribution et de Terminaison. Voici le contexte utilisé pour représenter un échantillon des cas réels.
1 – Le téléphone passe une communication via son IPBX.
2 – Le pirate envoi un flood de datagramme avec une d’adresse MAC source aléatoire.
3 – Le Switch C insert les adresses MAC dans sa table en les associant au port physique du port du pirate.
4 – Le Switch D insert les adresses MAC reçues dans sa table en les associant au port physique du port d’interconnexion avec le commutateur C.
5 – Le Switch E insert les adresses MAC reçues dans sa table en les associant au port physique du port d’interconnexion avec le commutateur D.
On peut ainsi rapidement conclure du fait qu’il y ai un Switchs ou plusieurs, cela ne change rien au potentiel de l’attaque. C’est clair que le pirate, sur un LAN d’entreprise, pourra rapidement écouter les conversations du téléphone B se trouvant à l’autre bout du bâtiment.
Juste une remarque, c’est que cela dépend de la limitation de chaque Switch. Par exemple, prenons le cas où les commutateurs C et E sont des 2950 limités à 8000 @MAC et le Switch D est un 6509 donc limité à 64000 @MAC. Dans ce cas, le pirate va saturer les 8000 adresses MAC des Switchs C et E, puis dans la foulée, les 64000 du Switch D. Et même si le premier commutateur est saturé, le flood de requête ARP va continuer à se propager et le Switch de coeur continuera à apprendre la provenance jusqu’à saturation.
Nous pouvons en conclure que l’impact dans une entreprise est global, même dans le cas d’architecture standard sur 3 niveaux au coeur de 6500.
4 – Les protections non efficaces
4.1 – Augmenter la durée de vie des correspondances
L’une des possibilités est de diminuer la durée de vie des entrées de la table de correspondance. Dans le contexte IOS de Cisco, cela peut être réalisé grâce à la commande « mac-address-table aging-time ».
conf t mac-address-table aging-time 10
Cependant, cela ne permet pas de résoudre le problème, car si le pirate laisse tourner son flood, alors à peine libéré, le Switch apprendra de nouveau des adresses MAC spoofées.
4.2 – Acheter des commutateurs Ethernet plus performants
Etant donnée que le Switch 2950 est limité à 8000 adresses MAC, l’idée étant d’acheter des commutateurs de gamme supérieure apportant donc de plus grandes de performances. Voici un tableau relatant les limites des différentes gammes Cisco :
- Cisco Catalyst 2924 XL : 2000 adresse MAC maximum
- Cisco Catalyst 2924 XL : 2000 adresse MAC maximum
- Cisco Catalyst 2948 G-GE-TX : 16000 adresse MAC maximum
- Cisco Catalyst 2950 Series : 8000 adresse MAC maximum
- Cisco Catalyst 2955 Series : 8000 adresse MAC maximum
- Cisco Catalyst 2960 Series : 8000 adresse MAC maximum
- Cisco Catalyst 2970 Series : 8000 adresse MAC maximum
- Cisco Catalyst 3550-12G : 12000 adresse MAC maximum
- Cisco Catalyst 3550-12T : 12000 adresse MAC maximum
- Cisco Catalyst 3550-24 : 8000 adresse MAC maximum
- Cisco Catalyst 3550-24-DC : 8000 adresse MAC maximum
- Cisco Catalyst 3550-24 PWR : 8000 adresse MAC maximum
- Cisco Catalyst 3550-24-FX : 8000 adresse MAC maximum
- Cisco Catalyst 3550-48 : 8000 adresse MAC maximum
- Cisco Catalyst 3560 Series : 12000 adresse MAC maximum
- Cisco Catalyst 3750G-24TS : 12000 adresse MAC maximum
- Cisco Catalyst 3750G-24WS : 12000 adresse MAC maximum
- Cisco Catalyst 3750G-24T : 12000 adresse MAC maximum
- Cisco Catalyst 3750G-12S : 12000 adresse MAC maximum
- Cisco Catalyst 3750-24TS : 12000 adresse MAC maximum
- Cisco Catalyst 3750-24FS : 12000 adresse MAC maximum
- Cisco Catalyst 3750-24PS : 12000 adresse MAC maximum
- Cisco Catalyst 3750-48TS : 12000 adresse MAC maximum
- Cisco Catalyst 3750-48PS : 12000 adresse MAC maximum
- Cisco Catalyst 3750G-24TS-1U : 12000 adresse MAC maximum
- Cisco Catalyst 3750G-24PS : 12000 adresse MAC maximum
- Cisco Catalyst 3750G-48TS : 12000 adresse MAC maximum
- Cisco Catalyst 3750G-48PS : 12000 adresse MAC maximum
- Cisco Catalyst 3750G-16TD : 12000 adresse MAC maximum
- Cisco Catalyst 6500 Series : 64000 adresse MAC maximum
On remarquera que chaque Switch possède de nouveau une limitation dans le nombre de correspondances. On peut donc prendre conscience que l’augmentation de la catégorie du Switch ne solutionne pas ce risque. Car on peut augmenter le nombre maximum de correspondances, cela ne change pas le fait que le hackeur va très rapidement saturer la mémoire de la table.
4.3 – Segmenter le commutateur par des VLAN
Même s’il est fortement recommandé d’utiliser les VLAN pour segmenter son réseau pour sécuriser son LAN, dans notre cas, cela n’apportera pas la protection nécessaire à la saturation de la table de correspondance.
En fait, dans le cas où j’ai deux VLAN (ou plus), la table de correspondance peux être lue indépendamment comme cela :
Cependant, si je flood de nouvelles adresses MAC dans un seul VLAN comme le 99, on remarque que la table de correspondance chute pour tous les VLAN. Cela montre bien que le nombre d’adresses MAC maximum par Switch est indépendante des VLAN.
Ainsi, la segmentation par VLAN ne résout pas le problème
5 – La protection efficace
5.1 – Nombre d’adresses MAC maximum par port
La limitation d’un nombre maximal d’adresses MAC par port physique est une solution efficace. Elle permet ainsi de positionner le hacker dans un contexte isolé où il ne peut pas déborder sur la mémoire globale du Switch. Par exemple, si nous limitons chaque port à 100 adresses MAC maximum, cela permettra d’empêcher que le flood sature la mémoire globale du Switch. 100 paraît être une bonne valeur pour sécuriser les accès sans contraindre l’exploitation réseau de l’entreprise. Pour réaliser cette protection, il faut :
Placer le port en mode Access :
conf t interface fastEthernet 0/4 switchport mode access
Activer la sécurité associée au port avec la commande :
conf t interface fastEthernet 0/4 switchport port-security
Puis définir le nombre d’adresses MAC maximum :
conf t interface fastEthernet 0/4 switchport port-security maximum 100
Et enfin, définir l’action en cas de violation de la règle précédente. Plusieurs possibilités nous sont offertes tel que « protect » qui permet de bloquer toues les trames non connues. « Shutdown » permet lui de fermer le port en cas de violation, cette seconde action est radicale, mais pose des impacts d’exploitations non négligeables.
conf t interface fastEthernet 0/4 switchport port-security violation protect
Voici un exemple concret avec une limite à 5 adresses MAC maximum. On peut remarquer, que malgré l’attaque de flooding MAC en continu, la table de correspondance du Switch ne sature pas. Le port 4 est bien limité aux 5 premières adresses MAC et n’apprend plus les suivantes.
5.2 – Authentification 802.1X
L’activation 802.1X sur les ports, en plus d’apporter une bonne sécurité de votre LAN, vous permettra d’empêcher la saturation de la table de correspondance par un Hackeur ou un virus. Pour l’activer sur le port 4 par exemple, vous devez :
Indiquer que l’authentification doit se réaliser via un serveur Radius (ou autre si vous préférez) :
conf t aaa new-model aaa authentication dot1x default group radius
Préciser les informations de votre serveur Radius :
conf t radius-server host 192.168.101.4 auth-port 1812 acct 1813 radius-server key MaCleSecret
Activer 802.1X sur le Switch :
conf t dot1x system-auth-control
Configurer l’interface sur laquelle vous désirez mettre en place l’authentification 802.1X :
conf t interface FastEthernet0/4 switchport mode access dot1x port-control auto dot1x host-mode multi-host
On remarquera que la dernière commande permet de spécifier que plusieurs hôtes simultanées peuvent se connecter simultanément. Ainsi, cela ne corrigera pas le soucis et votre commutateur sera toujours exposé à une saturation de la table de correspondance.
Cependant, si vous exploitez 802.1X avec la commande « dot1x host-mode single-host » permettant la possibilité de connecter un seul hôte réseau simultanément, alors votre commutateur refusera toutes les nouvelles adresses MAC supplémentaires protégeant ainsi sa table de correspondance.
Cela reste un très bon moyen de protection en limitant à 1 @MAC par port tout en gardant une exploitation centralisée et donc simple.
6 – Commandes équivalentes 3COM
La commande « show mac-address-table » permet de voir la table des correspondances MAC. L’équivalent 3COM est « display mac-address » :
La commande « show mac-address-table count » permet de voir les statistiques de la table des correspondances MAC. L’équivalent 3COM est « display mac-address count ». Par défaut, le Switch 3COM 3CR17152 5500-SI possède une mémoire permettant de gérer jusqu’à 16384 entrée :
Et après l’étape 2 (après l’exécution de Arpflood), on peut remarquer qu’il ne reste plus aucune place dans la table de correspondance :
La commande « show mac-address-table aging-time » permet de voir la durée de vie des correspondances MAC. L’équivalent 3COM est « display mac-address aging-time ». Pour info, par défaut, le Switch 3COM 3CR17152 5500-SI garde 5 minutes une correspondance d’adresse MAC/Port :
7 – Les vidéos
7.1 - Configuration Port Security sur un switch Cisco
Cette vidéo vous présente comment sécuriser les ports d'un switch Cisco afin de permettre que la connexion d'un seul PC à un port spécifique.
7.2 - Configuration de VTP sur un switch Cisco
Cette vidéo vous présente VTP (Vlan Trunking Protocol) pour propager les configurations VLAN d'un switch vers un autre switch sans avoir à rentrer des commandes de création de vlan sur le nouveau switch Cisco.
7.3 - Configuration de Vlan sur un switch Cisco
Cette vidéo vous présente comment la configuration des vlans sur un switch Cisco et comment affecter des vlans à des ports du switch.
7.4 - Hub, Switch or Router ?
Vidéo en anglais présentant les diffrénces entre un HUB, un Switch et un Routeur. Cette présentation est fluide, claire et sympas. Hubs, switches and routers are devices that allow us to create networks and connect those networks to one another. We explain how they work and what their individual differences are.
7.5 - Proccess d'authentification du protocole Radius
Vidéo présentant, de manière très dynamique, le Proccess d'authentification du protocole Radius. How Radius Authentication works. The RADIUS server then returns one of three responses to the RAS : 1) Access Reject, 2) Access Challenge, or 3) Access Accept.
7.6 - Différence entre un switch de niveau 2 et 3
Cette video présente sur tableau blanc les différences entre un commutateur (switch) de niveau 2 et de niveau 3. Le modèle OSI est partie intégrante de la réponse.
8 – Suivi du document
Création et suivi de la documentation par _SebF
Modification de la documentation par _SebF
- Rectification sur la conclusion du chapitre 3.5 comme quoi le Switch de coeur saturera lui aussi.
Modification de la documentation par _SebF
- Ajout du chapitre 6 – Commandes équivalentes 3COM.
9 – Discussion autour de l’attaque de switch Ethernet
Vous pouvez poser toutes vos questions, faire part de vos remarques et partager vos expériences à propos de l’attaque de switch Ethernet. Pour cela, n’hésitez pas à laisser un commentaire ci-dessous :
Super Tuto Seb !! Merci
jai un probleme dans les switchs catalyst 2950 24 ports
lorsque fait un ping au swich le temp de reponse 1700 ms
mais lorsque fait un ping au pc connecté avec cet swich le temp de reponse est 1 ms
Lu Boualem,
C’est normal, car les switches Cisco mettre en priorité les flux à router. Pour les flux à leurs propres destination, ils sont en priorité basse. De plus, les 2950 sont vieux et possède un tout petit CPU dédié à ça.
@+
Sebastien FONTAINE
merci pour les informations