Attaques par inondation MAC : Analyse technique approfondie et stratégies de prévention
Le MAC flooding est une attaque réseau de couche 2 qui épuise délibérément la table CAM (Content Addressable Memory) d’un commutateur Ethernet en injectant des milliers de trames avec des adresses MAC sources falsifiées et aléatoires. Une fois que la table CAM atteint sa capacité maximale, le commutateur se dégrade en comportement de type hub — diffusant toutes les trames entrantes sur chaque port — ce qui expose l’ensemble du domaine de diffusion à l’interception passive et à la manipulation active.
Cette attaque n’est pas théorique. Elle est trivialement exécutable avec des outils comme `macof` (faisant partie de la suite `dsniff`) et peut saturer une table CAM typique de 8 000 entrées en moins de 70 secondes sur un lien gigabit. Comprendre les mécanismes, les modes de défaillance et les contre-mesures en couches est essentiel pour tout ingénieur réseau responsable de l’intégrité de l’infrastructure.
Fonctionnement de la table CAM et raisons de sa défaillance
Chaque commutateur Ethernet géré maintient une table CAM qui associe les adresses MAC à des ports physiques spécifiques. Lorsqu’une trame arrive, le commutateur effectue une recherche : si l’adresse MAC de destination est dans la table, la trame est transmise uniquement au port correspondant (transfert unicast). Si l’adresse MAC est inconnue, le commutateur inonde la trame vers tous les ports du même VLAN — c’est un comportement normal et attendu pour le trafic unicast inconnu.
La table CAM a une taille finie, allant généralement de 8 000 entrées sur les commutateurs de couche d’accès à 128 000+ entrées sur les commutateurs cœur d’entreprise. Les entrées expirent après un délai d’inactivité (par défaut : 300 secondes sur la plupart des plateformes Cisco IOS). Un attaquant exploite cela en injectant des trames plus rapidement que les entrées n’expirent, maintenant la table perpétuellement pleine d’entrées parasites.
Le mode de défaillance fail-open
Lorsque la table CAM est pleine, le commutateur ne peut pas stocker de nouveaux mappages MAC-vers-port légitimes. Chaque trame dont l’adresse MAC de destination ne figure pas déjà dans la table est inondée vers tous les ports du VLAN. C’est ce qu’on appelle le comportement fail-open — le commutateur privilégie la connectivité à la sécurité, ce qui est l’opposé de ce qu’exige une conception soucieuse de la sécurité.
Les conséquences sont immédiates et graves :
- Écoute passive : Tout hôte du segment peut capturer le trafic destiné à d’autres hôtes en utilisant une carte réseau en mode promiscuité et un analyseur de paquets comme Wireshark ou tcpdump.
- Attaques de type man-in-the-middle (MITM) : Avec une visibilité totale du trafic, un attaquant peut combiner le MAC flooding avec l’empoisonnement ARP pour intercepter, modifier et relayer le trafic entre deux hôtes communicants sans qu’aucune des parties ne détecte l’interception.
- Collecte d’identifiants : Les protocoles non chiffrés (Telnet, FTP, HTTP Basic Auth, SMTP sans STARTTLS) exposent directement les identifiants. Même avec TLS, les métadonnées et les schémas de session divulguent des données de reconnaissance précieuses.
- Dégradation des performances réseau : Le volume considérable de trames inondées consomme la bande passante des ports et les cycles CPU de tous les hôtes connectés, constituant effectivement une condition de déni de service.
Exécution de l’attaque : à quoi cela ressemble concrètement
Une attaque réaliste utilisant `macof` sur un hôte Linux :
“`bash
macof floods the network with random source MACs
-i specifies the interface, -n specifies the number of packets
macof -i eth0 -n 100000
“`
Chaque paquet possède une adresse MAC source et une adresse MAC de destination générées aléatoirement, forçant le commutateur à tenter une nouvelle entrée CAM pour chaque trame. Sur un lien à 100 Mbps, `macof` peut générer environ 155 000 paquets par seconde — dépassant largement le taux de renouvellement de la table CAM.
MAC Flooding vs. ARP Spoofing vs. ARP Poisoning
Ces trois attaques sont fréquemment confondues mais opèrent à des couches différentes et par des mécanismes différents. Comprendre la distinction est essentiel pour sélectionner la bonne contre-mesure.
| Attribut | MAC Flooding | ARP Spoofing | ARP Poisoning |
|---|
| — | — | — | — |
|---|
| **Couche OSI** | Couche 2 (Liaison de données) | Frontière couche 2/3 | Frontière couche 2/3 |
|---|
| **Cible** | Table CAM du commutateur | Cache ARP de l’hôte | Cache ARP de l’hôte |
|---|
| **Mécanisme** | Épuise la table CAM avec de fausses adresses MAC | Envoie de fausses réponses ARP | Fausses réponses ARP continues |
|---|
| **Objectif principal** | Forcer une inondation de type hub | Rediriger le trafic vers l’attaquant | MITM persistant |
|---|
| **Difficulté de détection** | Modérée (volume de trafic élevé) | Élevée (manipulation subtile du cache) | Élevée |
|---|
| **Contre-mesure principale** | Sécurité des ports | Dynamic ARP Inspection | Dynamic ARP Inspection + DHCP Snooping |
|---|
| **Nécessite un accès physique** | Oui (segment local) | Oui (segment local) | Oui (segment local) |
|---|
| **Outils** | macof, hping3 | arpspoof, Ettercap | Ettercap, Bettercap |
|---|
Stratégie de prévention 1 : Sécurité des ports sur les commutateurs gérés
La sécurité des ports est la première ligne de défense la plus directe et la plus efficace contre le MAC flooding. Elle opère au niveau du port, imposant une limite stricte sur le nombre d’adresses MAC pouvant être apprises sur une interface donnée.
Paramètres de configuration principaux
Nombre maximum d’adresses MAC : Définissez ce paramètre au nombre minimum requis pour un fonctionnement légitime. Un port connecté à un seul poste de travail doit autoriser exactement une adresse MAC. Un port connecté à un téléphone IP avec un PC en aval (une topologie en guirlande courante) doit en autoriser deux.
Les modes de violation déterminent ce qui se passe lorsque la limite est dépassée :
- `protect` — Supprime silencieusement les trames provenant d’adresses MAC inconnues. Aucune journalisation, aucune désactivation du port. Utile dans les environnements où les faux positifs sont une préoccupation, mais ne fournit aucune visibilité.
- `restrict` — Supprime les trames provenant d’adresses MAC inconnues et incrémente un compteur de violations, générant un message syslog. Le port reste opérationnel.
- `shutdown` — Place immédiatement le port en état err-disabled et génère une alerte syslog. C’est l’option la plus sécurisée mais elle nécessite une intervention administrative (ou une récupération automatique) pour restaurer le port.
L’adressage MAC sticky (`mac-address sticky`) indique au commutateur d’apprendre dynamiquement les adresses MAC et de les écrire directement dans la configuration en cours d’exécution en tant qu’entrées statiques. Cela élimine la nécessité de pré-remplir manuellement les tables d’adresses MAC tout en liant des appareils spécifiques à des ports spécifiques.
Exemple complet de configuration Cisco IOS
“`
interface GigabitEthernet0/1
switchport mode access
switchport access vlan 10
switchport port-security
switchport port-security maximum 2
switchport port-security violation shutdown
switchport port-security mac-address sticky
spanning-tree portfast
“`
Pour vérifier l’état de la sécurité des ports :
“`
show port-security interface GigabitEthernet0/1
show port-security address
“`
Pour récupérer un port en état err-disabled après une violation :
“`
interface GigabitEthernet0/1
shutdown
no shutdown
“`
Pour une récupération automatisée, configurez `errdisable recovery cause psecure-violation` avec un intervalle approprié.
Écueil critique : ports trunk et liaisons montantes
N’appliquez jamais la sécurité des ports aux ports trunk ou aux liaisons montantes des commutateurs. Ces ports transportent légitimement le trafic de centaines d’adresses MAC sur plusieurs VLANs. Appliquer une limite MAC à un port trunk entraînera des défaillances de connectivité catastrophiques. La sécurité des ports est exclusivement une fonctionnalité pour les ports d’accès.
Stratégie de prévention 2 : Segmentation VLAN et VLANs privés
La segmentation VLAN limite le rayon d’impact d’une attaque de MAC flooding en contraignant le domaine de diffusion. Si un attaquant inonde une table CAM, seul le VLAN contenant le port de l’attaquant entre en mode fail-open — les autres VLANs continuent de fonctionner normalement.
Segmentation VLAN standard
Segmentez votre réseau par fonction et niveau de sensibilité :
- VLAN de gestion : Équipements réseau, interfaces de gestion hors bande, accès IPMI/iDRAC/iLO
- VLAN serveur : Serveurs de production, bases de données, niveaux applicatifs
- VLAN utilisateur : Postes de travail, imprimantes, terminaux à usage général
- VLAN DMZ : Services exposés sur Internet, proxys inverses, passerelles de messagerie
- VLAN voix : Téléphones VoIP (réduit également la complexité QoS)
VLANs privés (PVLANs)
Les VLANs privés étendent l’isolation au sein d’un seul VLAN en définissant des rôles de port :
- Ports promiscuités : Peuvent communiquer avec tous les ports du PVLAN (généralement la liaison montante ou la passerelle)
- Ports isolés : Ne peuvent communiquer qu’avec les ports promiscuités — pas avec d’autres ports isolés
- Ports communautaires : Peuvent communiquer avec d’autres ports de la même communauté et avec les ports promiscuités
Les PVLANs sont particulièrement précieux dans les environnements d’hébergement où plusieurs locataires partagent la même infrastructure physique. Même si le port d’un locataire est compromis, le comportement des ports isolés empêche la capture latérale du trafic. Si vous exécutez des charges de travail sur une plateforme VPS Hosting, comprendre comment le fabric de commutation sous-jacent implémente l’isolation VLAN est directement pertinent pour votre modèle de menace.
Stratégie de prévention 3 : DHCP Snooping
Le DHCP snooping construit une table de liaisons qui associe les adresses MAC aux adresses IP, aux VLANs et aux ports de commutateur. Cette table de liaisons n’est pas seulement utile pour les attaques spécifiques au DHCP — elle sert de source de vérité faisant autorité pour le Dynamic ARP Inspection et l’IP Source Guard.
Logique de configuration
Les ports sont classés comme de confiance (connectés à des serveurs DHCP légitimes ou à des liaisons montantes) ou non fiables (connectés à des clients). Les réponses DHCP arrivant sur des ports non fiables sont supprimées.
“`
ip dhcp snooping
ip dhcp snooping vlan 10,20,30
interface GigabitEthernet0/1
ip dhcp snooping limit rate 15
! Untrusted by default — no additional command needed
interface GigabitEthernet0/24
ip dhcp snooping trust
! Uplink or DHCP server port
“`
La commande `ip dhcp snooping limit rate 15` limite les paquets DHCP à 15 par seconde sur les ports non fiables, prévenant les attaques de privation DHCP qui peuvent accompagner les campagnes de MAC flooding.
La table de liaisons DHCP Snooping
“`
show ip dhcp snooping binding
“`
Cette sortie de table affiche l’adresse MAC, l’adresse IP, la durée du bail, le VLAN et l’interface — exactement les données utilisées par DAI pour la validation.
Stratégie de prévention 4 : Dynamic ARP Inspection (DAI)
DAI valide les paquets ARP par rapport à la table de liaisons DHCP snooping. Tout paquet ARP revendiquant un mappage MAC-vers-IP qui ne correspond pas à la table de liaisons est supprimé. Cela contrecarre directement l’empoisonnement ARP que les attaquants superposent généralement au MAC flooding.
“`
ip arp inspection vlan 10,20,30
interface GigabitEthernet0/24
ip arp inspection trust
! Uplink — trusted for ARP
interface GigabitEthernet0/1
ip arp inspection limit rate 100
! Limit ARP rate on access ports
“`
DAI journalise également les paquets supprimés, fournissant des preuves forensiques des tentatives d’attaque :
“`
show ip arp inspection statistics vlan 10
“`
IP Source Guard : la couche finale
IP Source Guard étend la table de liaisons DHCP snooping pour filtrer les paquets IP. Seuls les paquets dont l’IP source correspond à l’entrée de la table de liaisons pour ce port sont transmis. Cela empêche l’usurpation d’IP même après un événement de MAC flooding réussi.
“`
interface GigabitEthernet0/1
ip verify source
“`
La combinaison de sécurité des ports + DHCP snooping + DAI + IP Source Guard crée une pile de défense en profondeur qui traite simultanément le MAC flooding, l’ARP spoofing, la privation DHCP et l’usurpation d’IP.
Stratégie de prévention 5 : Contrôle d’accès réseau 802.1X
IEEE 802.1X fournit un contrôle d’accès réseau basé sur les ports en exigeant une authentification avant qu’un port soit autorisé à transmettre du trafic. Un appareil non authentifié — y compris la machine d’un attaquant injectant des paquets de MAC flooding — est placé dans un état non autorisé et ne peut pas communiquer avec le réseau.
L’architecture 802.1X implique trois composants :
- Supplicant : L’appareil client (poste de travail, serveur)
- Authentificateur : Le port du commutateur
- Serveur d’authentification : Un serveur RADIUS (FreeRADIUS, Cisco ISE, Microsoft NPS)
Jusqu’à ce que le supplicant s’authentifie avec succès via EAP (Extensible Authentication Protocol), le port ne transmet que des trames EAPOL (EAP over LAN). Le MAC flooding depuis un port non authentifié est impossible car le port n’a pas d’accès au plan de données.
“`
aaa new-model
aaa authentication dot1x default group radius
dot1x system-auth-control
interface GigabitEthernet0/1
authentication port-control auto
dot1x pae authenticator
“`
802.1X est le contrôle préventif le plus puissant disponible pour la sécurité de la couche d’accès, mais il nécessite une infrastructure RADIUS et une configuration du supplicant sur tous les terminaux — un investissement opérationnel significatif.
Stratégie de prévention 6 : Surveillance réseau et détection d’anomalies
Aucun contrôle préventif n’est infaillible. La surveillance continue fournit la capacité de détection nécessaire pour identifier les attaques qui contournent ou précèdent les mesures préventives.
Indicateurs de MAC flooding
- Augmentation rapide du nombre d’adresses MAC apprises sur un seul port
- Utilisation de la table CAM approchant 80-90% de sa capacité
- Pic du volume de trafic de diffusion sur un VLAN
- Augmentation des événements d’inondation unicast inconnus
- Pics d’utilisation CPU sur les commutateurs (dus au traitement de l’inondation)
Outils et techniques de surveillance
Interrogation SNMP : Interrogez `dot1dTpFdbTable` (RFC 1493) ou `dot1qFdbTable` (RFC 2674) pour suivre la taille de la table CAM dans le temps. Alertez lorsque les entrées dépassent un seuil défini.
Analyse NetFlow/sFlow : Les données de flux révèlent des schémas de trafic anormaux — une seule source générant des milliers d’adresses MAC sources uniques est un indicateur clair.
Systèmes de détection d’intrusion : Snort et Suricata disposent de règles pour détecter les schémas de MAC flooding. Zeek (anciennement Bro) peut être configuré pour alerter sur un renouvellement rapide des adresses MAC.
Wireshark/tshark pour la forensique : Lors de l’investigation d’une attaque suspectée, capturez sur un port miroir/SPAN et filtrez les adresses MAC sources uniques :
“`bash
tshark -i eth0 -T fields -e eth.src | sort | uniq -c | sort -rn | head -20
“`
Un hôte légitime génère une poignée d’adresses MAC sources uniques (généralement une). Un attaquant exécutant `macof` en génère des milliers par seconde.
SPAN/RSPAN pour l’analyse du trafic
Configurez une session SPAN (Switched Port Analyzer) pour mettre en miroir le trafic vers un hôte de surveillance :
“`
monitor session 1 source vlan 10
monitor session 1 destination interface GigabitEthernet0/48
“`
Cela permet à un appareil IDS/IPS dédié ou à un appareil de capture de paquets d’analyser tout le trafic du VLAN 10 sans perturber la transmission en production.
Considérations matérielles : taille de la table CAM et sélection des commutateurs
La mise à niveau vers des commutateurs avec des tables CAM plus grandes augmente la difficulté pour les attaquants mais ne remplace pas les contrôles décrits ci-dessus. Un attaquant déterminé disposant d’une bande passante suffisante peut inonder n’importe quelle table finie.
| Niveau de commutateur | Taille typique de la table CAM | Cas d’utilisation recommandé |
|---|
| — | — | — |
|---|
| Grand public non géré | 1 000 – 4 000 entrées | Réseaux domestiques uniquement |
|---|
| PME géré (ex. Cisco SG350) | 8 000 – 16 000 entrées | Petits bureaux, environnements à faible risque |
|---|
| Accès entreprise (ex. Cisco Catalyst 9200) | 32 000 – 64 000 entrées | Couche d’accès d’entreprise |
|---|
| Distribution/cœur entreprise (ex. Cisco Catalyst 9500) | 128 000 – 256 000+ entrées | Centre de données, cœur de campus |
|---|
Pour les charges de travail en production — en particulier celles fonctionnant sur des Serveurs Dédiés connectés à une infrastructure de commutation d’entreprise — le niveau du commutateur impacte directement votre fenêtre d’exposition lors d’une attaque active.
Sécurisation des environnements hébergés et cloud
Le MAC flooding est une attaque de segment local. Dans un environnement d’hébergement partagé ou de colocation, le modèle de menace évolue : un locataire compromis ou malveillant sur le même fabric de commutation physique peut cibler d’autres locataires.
Pour les environnements où vous contrôlez l’hyperviseur ou le commutateur virtuel (Open vSwitch, VMware vSwitch), des contrôles équivalents existent :
Sécurité des ports Open vSwitch :
“`bash
ovs-vsctl set port <port-name> other_config:rstp-enable=true
ovs-vsctl set Interface <port-name> type=internal
Limit MAC learning via OpenFlow rules
“`
VMware vSwitch : Activez « Modifications d’adresse MAC : Rejeter » et « Transmissions forgées : Rejeter » dans la politique de sécurité du vSwitch. Cela empêche une VM d’injecter des trames avec des adresses MAC sources autres que son adresse MAC assignée.
Si vous gérez des applications web ou des services sur un VPS avec cPanel ou en utilisant des Panneaux de contrôle VPS pour la gestion de serveurs, vérifiez auprès de votre fournisseur que l’hyperviseur sous-jacent applique l’anti-usurpation MAC au niveau du commutateur virtuel — c’est l’équivalent virtualisé de la sécurité des ports.
Pour les organisations exploitant des services avec terminaison SSL, s’assurer que vos Certificats SSL sont correctement configurés fournit une couche de protection supplémentaire : même si un attaquant parvient à intercepter le trafic via le MAC flooding, un TLS correctement implémenté avec épinglage de certificat empêche la collecte d’identifiants depuis les sessions chiffrées.
Matrice de décision : choisir les bons contrôles
Utilisez cette matrice pour prioriser les contrôles en fonction de votre type d’environnement :
| Contrôle | Petit bureau | LAN d’entreprise | Centre de données | Hébergé/Cloud |
|---|
| — | — | — | — | — |
|---|
| Sécurité des ports | Haute priorité | Haute priorité | Moyenne (utiliser 802.1X) | N/A (niveau hyperviseur) |
|---|
| Segmentation VLAN | Moyenne | Haute priorité | Haute priorité | Haute priorité |
|---|
| DHCP Snooping | Moyenne | Haute priorité | Haute priorité | Géré par le fournisseur |
|---|
| Dynamic ARP Inspection | Moyenne | Haute priorité | Haute priorité | Géré par le fournisseur |
|---|
| 802.1X NAC | Faible (complexité) | Haute priorité | Haute priorité | N/A |
|---|
| IP Source Guard | Faible | Haute priorité | Haute priorité | Géré par le fournisseur |
|---|
| Surveillance SNMP/NetFlow | Faible | Haute priorité | Haute priorité | Géré par le locataire |
|---|
| VLANs privés | Faible | Moyenne | Haute priorité | Haute priorité |
|---|
Liste de contrôle technique des points clés
Avant de considérer votre environnement de couche 2 renforcé contre le MAC flooding, vérifiez chacun des points suivants :
- La sécurité des ports est configurée sur tous les ports d’accès avec une limite MAC appropriée au type d’appareil connecté (1 pour les postes de travail, 2 pour les chaînes téléphone IP + PC)
- Le mode de violation est défini sur `shutdown` pour les ports haute sécurité et `restrict` avec journalisation sur les ports d’accès généraux
- L’apprentissage MAC sticky est activé et la configuration en cours d’exécution est sauvegardée en NVRAM
- Le DHCP snooping est activé sur tous les VLANs de production avec les désignations correctes de ports de confiance/non fiables et la limitation de débit sur les ports non fiables
- Le Dynamic ARP Inspection est activé sur tous les VLANs de production et validé par rapport à la table de liaisons DHCP snooping
- L’IP Source Guard est déployé sur les ports d’accès non fiables dans les segments haute sécurité
- Les VLANs sont segmentés par fonction sans routage inter-VLAN inutile
- Les VLANs privés sont implémentés dans les environnements multi-locataires ou d’hébergement
- 802.1X est déployé ou planifié pour tous les ports de la couche d’accès
- La surveillance SNMP est configurée pour alerter sur les seuils d’utilisation de la table CAM
- NetFlow ou sFlow est activé et alimente un système de détection d’anomalies
- Les sessions SPAN sont configurées pour la visibilité IDS/IPS sur les VLANs critiques
- Les politiques de sécurité des commutateurs virtuels (anti-usurpation MAC, rejet des transmissions forgées) sont appliquées au niveau de l’hyperviseur
- TLS est appliqué pour tout le trafic applicatif sensible afin que même une interception réussie ne révèle aucun identifiant en clair
Foire aux questions
Le MAC flooding peut-il affecter les réseaux sans fil ?
L’infrastructure Wi-Fi standard utilise un modèle d’association différent — les points d’accès gèrent les associations des clients via le protocole 802.11, et non une table CAM au sens Ethernet. Cependant, le contrôleur sans fil ou le commutateur filaire en amont desservant le point d’accès peut toujours être ciblé. De plus, les attaques de point d’accès malveillant sur les réseaux sans fil atteignent des objectifs d’interception similaires par des mécanismes différents.
Le MAC flooding fonctionne-t-il contre les commutateurs d’entreprise modernes avec de grandes tables CAM ?
Oui, mais l’attaque nécessite plus de bande passante et de temps. Un commutateur avec une table CAM de 128 000 entrées nécessite proportionnellement plus de trames falsifiées pour être épuisé. Cependant, `macof` sur un lien 10 Gbps peut générer des millions de trames par seconde, rendant même les grandes tables vulnérables en quelques secondes. C’est pourquoi les contre-mesures au niveau matériel comme la sécurité des ports sont essentielles — elles empêchent la table d’être remplie en premier lieu.
Quelle est la différence entre le MAC flooding et le MAC spoofing ?
Le MAC flooding épuise la table CAM par le volume — l’objectif est de forcer une inondation de type hub. Le MAC spoofing consiste à usurper l’identité d’une adresse MAC spécifique et légitime pour détourner une session ou contourner les contrôles d’accès basés sur les adresses MAC. Ce sont des attaques distinctes, bien qu’un attaquant puisse utiliser le MAC spoofing après un événement de MAC flooding réussi pour maintenir une position MITM persistante.
L’activation de la sécurité des ports perturbe-t-elle les opérations réseau légitimes comme DHCP ?
Non, si elle est correctement configurée. Le trafic DHCP provient de l’adresse MAC du client, qui est la seule adresse MAC autorisée sur le port. La réponse du serveur DHCP est adressée à l’adresse MAC du client et arrive sur la liaison montante (un port de confiance). La sécurité des ports sur les ports d’accès n’interfère pas avec DHCP à moins que la limite ne soit définie à zéro ou que le mode de violation ne supprime incorrectement le trafic légitime.
Comment détecter une attaque de MAC flooding qui a déjà commencé ?
Vérifiez immédiatement l’utilisation de la table CAM : `show mac address-table count`. Si l’utilisation est proche de 100%, croisez avec `show mac address-table dynamic` pour identifier les ports avec un nombre anormalement élevé d’adresses MAC apprises. Simultanément, vérifiez les compteurs d’erreurs d’interface avec `show interfaces` pour les pics de débit en entrée. Le port incriminé affichera un débit de paquets en entrée considérablement élevé et un nombre inhabituellement élevé d’adresses MAC apprises.
