Étude du comportement d'un commutateur face à une saturation de table MAC
📚 Matière
Cyber-Sécurité
📅 Date
13 novembre 2025
☑️ État
Terminé
⚔️ Type d'attaque
DOSMAC Flooding
🛠️ Outil
Macof (Kali Linux)
🛡️ Contre-mesure
Port-Security
⚠️
Avertissement : Ce TP est réalisé dans un environnement de laboratoire isolé à des fins pédagogiques uniquement. Toute attaque non autorisée sur des systèmes tiers est illégale.
Le MAC Flooding consiste à surcharger la table CAM d'un commutateur avec des milliers d'adresses MAC. Dès que celle-ci est saturée, le commutateur passe dans le mode de secours « fail open » où tous les ports se retrouvent dans le VLAN natif — il se comporte alors comme un simple HUB.
Il est alors aisé pour l'attaquant d'avoir accès à des VLANs normalement non accessibles. L'outil Macof de Kali Linux permet de mener ce genre d'attaque.
🎯
Objectifs du TP :
Observer le comportement d'un commutateur face à une grande quantité d'adresses MAC
Analyser l'impact sur la table CAM, la latence et l'usage CPU
Mettre en place une protection via Port-Security
01
🖥️ Équipements — Adresses IP et MAC
Tableau de référence du réseau de test
Windows 10 (PC0)
192.168.10.1
0A-00-27-00-00-09
Victime — monitoring
Kali Linux (PC1)
192.168.10.2
0800.2748.EA1F
Attaquant — macof
Switch
192.168.10.10
Port 1 : 0C27.2444.1481 Port 2 : 0C27.2444.1482 Port 24 : 0C27.2444.1492
Cible de l'attaque
Routeur
192.168.10.254
001B.54DB.34D7
Passerelle — cible du ping
02
🔍 Configuration et observations initiales
Consultation de la table CAM avant l'attaque
Ces commandes donnent les valeurs de référence avant l'attaque.
Switch (Cisco IOS)
! Afficher la durée de vie des adresses MAC (aging-time)show mac address-table aging-time! Afficher le nombre d'adresses MAC enregistréesshow mac address-table count! Afficher toute la table CAMshow mac address-table
📌
show mac address-table aging-time → Affiche la durée de vie (aging-time) des adresses MAC dans la table CAM. show mac address-table count → Indique combien d'adresses MAC sont actuellement enregistrées.
Ces valeurs servent de référence pour comparer avec l'état après l'attaque.
03
⏱️ Modification du temps d'aging
Augmenter le délai pour faciliter l'observation
Pour rendre les observations plus visibles, on ajuste la durée de conservation des adresses MAC à 10 minutes (600 secondes). Cela garantit que les adresses injectées restent assez longtemps pour être analysées.
Par défaut, l'aging-time est de 300 secondes (5 min). On le double pour avoir le temps d'observer et d'analyser la table CAM pendant et après l'attaque.
04
🏓 Observation du trafic depuis PC0 (Windows)
Ping en boucle + analyse CPU du switch
Depuis PC0, on mesure le délai de communication avec le routeur. La stabilité du ping indique le comportement normal du réseau avant l'attaque.
PC0 — Windows 10
Ping en boucle vers le routeur (laisser tourner en arrière-plan)
C:\> ping192.168.10.254-t
Analyse CPU du switch avant l'attaque
Switch (Cisco IOS)
! Historique CPU : 60s / 60min / 72hshow processes cpu history
📌
show processes cpu history affiche un graphique en 3 périodes :
• 60 secondes — vue très récente
• 60 minutes — tendance à court terme
• 72 heures — tendance long terme
Un CPU faible (< 20%) est normal au repos.
05
💀 Simulation de la saturation MAC
Macof — injection massive d'adresses MAC depuis Kali
🚨
Depuis Kali Linux (PC1) : utiliser la commande macof pour inonder le commutateur avec un grand nombre d'adresses MAC aléatoires.
Kali Linux — PC1
# Inonder le switch avec 1 000 000 d'adresses MAC via eth0macof -i eth0 -n 1000000# Variante avec moins d'adresses pour un test rapidemacof -i eth0 -n 10000
⚠️
Pendant l'exécution de macof, observer en parallèle sur PC0 :
• L'augmentation de la latence du ping (-t)
• Sur le switch : show mac address-table count → table en cours de remplissage
• Sur le switch : show processes cpu history → montée en charge CPU
Quand la table CAM est saturée, le switch passe en mode fail-open et diffuse tous les paquets sur tous les ports — comportement d'un HUB. Stopper macof après l'observation.
06
📊 Observations après surcharge de la table MAC
CPU · Table CAM · Comparaison avec l'état initial
Vérifier la montée en charge CPU
Switch (Cisco IOS)
! Observer les pics CPU liés au traitement intensif de tramesshow processes cpu history
📌
Pendant l'attaque, la courbe CPU doit montrer des pics significatifs (50-100%) liés au traitement intensif de milliers de trames par seconde.
Consulter la table CAM saturée
Switch (Cisco IOS)
! Voir les adresses MAC enregistrées (entrées DYNAMIC très nombreuses)show mac address-table! Comptageshow mac address-table count
Toutes les entrées DYNAMIC sur Fa0/2 (port de Kali) sont des adresses MAC fausses injectées par macof. Le routeur reste visible sur Fa0/24.
07
🛡️ Protection — Port-Security
Limiter le nombre d'adresses MAC apprises par port
Pour éviter qu'un port apprenne un nombre trop élevé d'adresses MAC, on active la sécurité de port (Port-Security). Cette fonction limite le nombre d'adresses autorisées et définit un comportement en cas de violation.
💡
Prérequis : Le port doit être en mode access avant d'activer Port-Security. La commande switchport mode access est donc obligatoire.
Configuration Port-Security sur Fa0/2
Switch (Cisco IOS)
interface fastethernet 0/2
switchport mode access! Obligatoire avant Port-Securityswitchport port-security! Active la sécuritéswitchport port-security maximum3! Max 3 adresses MACswitchport port-security mac-address74d4.35e1.fcb5! MAC autoriséeswitchport port-security violation restrict! Mode violation
Explication de chaque commande
Commande
Effet
switchport mode access
Passe le port en mode accès (obligatoire pour Port-Security)
switchport port-security
Active la sécurité sur le port
switchport port-security maximum 3
Le port ne peut apprendre qu'un maximum de 3 adresses MAC
switchport port-security mac-address X
Ajoute une MAC autorisée manuellement (optionnel)
switchport port-security violation restrict
Port actif, MAC non autorisées bloquées + logs générés
Les 3 modes de violation
1
restrict — Mode recommandé
Le port reste actif. Les MAC non autorisées sont bloquées silencieusement. Un log de violation est généré. Le compteur de violations s'incrémente.
2
protect — Mode silencieux
Le port reste actif. Les MAC non autorisées sont ignorées. Aucun log généré. Moins visible mais moins informatif.
3
shutdown — Mode strict
Le port est désactivé immédiatement en cas de violation. Nécessite une intervention manuelle pour le réactiver (no shutdown).
Vérification de Port-Security
Switch (Cisco IOS)
! Vérifier la configuration Port-Security sur une interfaceshow port-security interface fastethernet 0/2
! Vue globale de tous les ports sécurisésshow port-security! Voir les adresses MAC sécurisées apprisesshow port-security address
✅
Après activation de Port-Security, relancer macof depuis Kali — le port doit maintenant bloquer les adresses en excès et le switch ne doit plus être saturé.
08
✅ Conclusion
Ce que ce TP démontre
Le fonctionnement de la table MAC (CAM) d'un commutateur et ses limites
Le comportement en mode fail-open (HUB) lors d'une saturation
L'impact mesurable sur la latence (ping) et la charge CPU du commutateur
L'importance des mesures de sécurité comme Port-Security pour protéger l'infrastructure
Pourquoi une gestion stricte des ports d'accès est nécessaire en entreprise
📚
Référence : BLOC 3 SISR — Mr Lebatteur François Contre-mesure complémentaire : Dynamic ARP Inspection (DAI) et DHCP Snooping pour une protection plus complète de la couche 2.
BTS SIO SISR — Cyber-Sécurité — TP DOS MAC Flooding — Kali Linux + Cisco Switch