Qu'est-ce qu'IPv6 et pourquoi est-ce un risque ?
IPv6 est le successeur d'IPv4, conçu pour répondre à l'épuisement des adresses disponibles. Avec un espace d'adressage de 128 bits (contre 32 pour IPv4), il offre un nombre quasi illimité d'adresses. Sur la quasi-totalité des systèmes d'exploitation modernes (Windows, Linux, macOS), IPv6 est activé par défaut.
C'est précisément là que réside le problème : la plupart des équipes réseau configurent et surveillent leur infrastructure en pensant IPv4, laissant IPv6 actif mais non maîtrisé. Un protocole actif, non filtré et non supervisé est une surface d'attaque.
Les vecteurs d'attaque liés à une mauvaise configuration IPv6
Rogue Router Advertisement (RA Spoofing)
IPv6 repose sur le protocole NDP (Neighbor Discovery Protocol) pour la configuration automatique des adresses (SLAAC). Dans ce mécanisme, les routeurs diffusent des Router Advertisements (RA) pour indiquer aux hôtes comment configurer leur adresse et leur passerelle par défaut.
Un attaquant présent sur le réseau interne peut envoyer des RA frauduleux et se positionner comme passerelle par défaut pour l'ensemble du segment réseau, réalisant ainsi un Man-in-the-Middle complet sans avoir besoin de privilèges particuliers.
DHCPv6 Rogue Server (via mitm6)
Même dans les environnements qui n'ont pas déployé DHCPv6, Windows envoie des requêtes DHCPv6 de manière périodique si IPv6 est actif. Un attaquant peut répondre à ces requêtes avec un serveur DHCPv6 malveillant pour fournir une adresse DNS pointant vers sa machine et un suffixe de recherche DNS arbitraire.
Il en résulte que toutes les résolutions DNS non qualifiées (ex. \serveur) passent par la machine de l'attaquant. Combiné à un relais NTLM (Responder, ntlmrelayx), cela permet une capture et un relais d'authentifications NTLM sur le réseau Active Directory, sans interaction utilisateur.
Absence de filtrage pare-feu sur IPv6
Les pare-feux modernes gèrent généralement IPv4 et IPv6, mais le risque apparaît dès qu'un administrateur durcit uniquement IPv4 et omet IPv6, ce qui reste fréquent dans les environnements qui n'ont pas de politique IPv6 explicite. Dans ce cas, chaque hôte disposant automatiquement d'une adresse link-local (fe80::/10) dès qu'une interface est active, un service bloqué en IPv4 peut rester accessible via IPv6 depuis le même segment réseau.
Sous Linux, iptables et ip6tables sont historiquement deux outils distincts (même si nftables unifie désormais les deux) . Sous Windows, les règles IPv4 et IPv6 doivent être vérifiées explicitement. L'angle mort n'est donc pas systématique, mais il suffit d'un oubli pour qu'un port supposément fermé reste ouvert via IPv6.
Exemple concret : un serveur dont le port 445 (SMB) est bloqué en IPv4 peut être joignable sur ce même port via son adresse link-local IPv6 (fe80::...) depuis n'importe quel hôte du même segment réseau.
Remédiations
Désactiver IPv6 si non utilisé
Si votre infrastructure ne nécessite pas IPv6, la mesure la plus simple est de le désactiver.
# Désactiver IPv6 sur toutes les interfaces
Get-NetAdapterBinding -ComponentID ms_tcpip6 | Disable-NetAdapterBinding
# Vérification
Get-NetAdapterBinding -ComponentID ms_tcpip6
# Désactiver via sysctl (persistant)
echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf
echo "net.ipv6.conf.default.disable_ipv6 = 1" >> /etc/sysctl.conf
sysctl -p
ATTENTION : Certains composants Windows (notamment Teredo, ISATAP) ou applications métier peuvent dépendre d'IPv6. Testez avant tout déploiement en production.
Activer le RA Guard sur les équipements réseau
Si IPv6 est nécessaire, activez le RA Guard sur vos commutateurs pour bloquer les Router Advertisements provenant de ports non autorisés (ports utilisateurs). Seuls les ports connectés à vos routeurs légitimes doivent être autorisés à émettre des RA.
# Définir une politique RA Guard pour les ports utilisateurs
ipv6 nd raguard policy BLOCK-RA
device-role host
# Appliquer sur les ports d'accès
interface range GigabitEthernet0/1 - 48
ipv6 nd raguard attach-policy BLOCK-RA
Bloquer ou contrôler DHCPv6
Si DHCPv6 n'est pas utilisé dans votre environnement, bloquez le trafic DHCPv6 entrant au niveau des commutateurs via des ACL.
Si DHCPv6 est en revanche déployé, activez le DHCPv6 Snooping : cette fonctionnalité disponible sur la plupart des commutateurs managés permet de distinguer les ports "de confiance" (trusted), connectés à vos serveurs DHCPv6 légitimes, des ports "non fiables" (untrusted) connectés aux postes utilisateurs. Toute réponse DHCPv6 provenant d'un port untrusted est automatiquement bloquée, ce qui empêche un attaquant de faire fonctionner un serveur DHCPv6 malveillant depuis son poste.
ipv6 access-list BLOCK-DHCPv6
deny udp any any eq 547
permit ipv6 any any
interface GigabitEthernet0/1
ipv6 traffic-filter BLOCK-DHCPv6 in
# Activer le snooping DHCPv6
ipv6 dhcp snooping
ipv6 dhcp snooping vlan 10,20
# Marquer les ports légitimes comme trusted
interface GigabitEthernet0/48
ipv6 dhcp snooping trust
Étendre les règles pare-feu à IPv6
Sur les systèmes modernes, les pare-feux gèrent souvent IPv4 et IPv6 conjointement, mais il est important de vérifier explicitement que vos règles de filtrage IPv4 ont bien leur équivalent IPv6, en particulier sur les pare-feux des hôtes. C'est valable aussi bien pour les pare-feux périmètriques que pour les pare-feux locaux.
# Exemple : bloquer SMB entrant en IPv6 (équivalent d'une règle IPv4 existante)
New-NetFirewallRule -DisplayName "Block SMB IPv6 Inbound" `
-Direction Inbound `
-Protocol TCP `
-LocalPort 445 `
-AddressFamily IPv6 `
-Action Block
# Appliquer les mêmes règles qu'iptables sur ip6tables
ip6tables -A INPUT -p tcp --dport 445 -j DROP
ip6tables -A INPUT -p tcp --dport 22 -s fe80::/10 -j ACCEPT # SSH depuis link-local si nécessaire
ip6tables -A INPUT -j DROP
# Rendre persistant
ip6tables-save > /etc/iptables/rules.v6
ATTENTION : Si votre distribution utilise nftables (Debian 10+, RHEL 8+, Ubuntu 20.04+), ip6tables n'est qu'une couche de compatibilité. Vérifiez directement vos chaînes nftables : IPv4 et IPv6 y sont gérés dans le même ruleset, mais les règles IPv6 doivent y être explicitement incluses pour être actives.
Informations complémentaires
Les protocoles de transition IPv6 représentent un vecteur d'évasion souvent négligé. Teredo, ISATAP et 6to4 sont des mécanismes qui encapsulent du trafic IPv6 dans des paquets IPv4, permettant à un hôte de communiquer en IPv6 même sans support natif sur le réseau. Un attaquant peut s'en servir pour faire transiter du trafic IPv6 via des ports UDP standard et contourner des filtres réseau qui ne l'inspectent pas.
Besoin d'un audit de sécurité ou d'un accompagnement sur mesure ?
Découvrir nos services →