Attaque de switch Ethernet

Attaque de switch Ethernet

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)

attaque-protection-switch-commutateur-ethernet 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 :

attaque-protection-switch-commutateur-ethernet entete arp 1

attaque-protection-switch-commutateur-ethernet entete arp 2

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).

attaque-protection-switch-commutateur-ethernet norme 802 1x

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 :

attaque-protection-switch-commutateur-ethernet attaque contexte

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.

attaque-protection-switch-commutateur-ethernet attaque realisation

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 :
attaque-protection-switch-commutateur-ethernet attaque reaction 1

attaque-protection-switch-commutateur-ethernet attaque reaction 2

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 :

attaque-protection-switch-commutateur-ethernet attaque reaction 3

attaque-protection-switch-commutateur-ethernet attaque reaction 4

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 :

attaque-protection-switch-commutateur-ethernet concequences passage mode hub 1

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.

attaque-protection-switch-commutateur-ethernet concequences passage mode hub 2

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 :

attaque-protection-switch-commutateur-ethernet concequences passage mode hub 3

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.

attaque-protection-switch-commutateur-ethernet concequences saturation reseau

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.

attaque-protection-switch-commutateur-ethernet cas entreprise

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 :

attaque-protection-switch-commutateur-ethernet segmenter commutateur vlan

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.

attaque-protection-switch-commutateur-ethernet protection efficace nombre adresse mac maximum port

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 » :

attaque-protection-switch-commutateur-ethernet commande equivalente 3com 1

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 :

attaque-protection-switch-commutateur-ethernet commande equivalente 3com 2

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 :

attaque-protection-switch-commutateur-ethernet commande equivalente 3com 3

attaque-protection-switch-commutateur-ethernet commande equivalente 3com 4

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 :

attaque-protection-switch-commutateur-ethernet commande equivalente 3com 5

7 – 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.

8 – 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 :

Commentaire et discussion

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *