A l’occasion de ce #CyberMois, une présentation sur les attaques réseau de type VLAN Hopping.

Qu’est-ce que le VLAN Hopping ?

Le VLAN Hopping est un type d’attaque consistant à forger des paquets Ethernet ayant des étiquettes VLAN spécifiques permettant de pouvoir envoyer du trafic dans un VLAN non autorisé. Ce type d’attaque n’est pas bidirectionnelle : il n’est pas possible pour l’attaquant d’écouter un trafic issu d’un VLAN non autorisé.

Exemple d’un réseau configuré en mode QinQ (VLAN Stacking).

Dans cet exemple, les deux commutateurs sont configurés en mode QinQ. Les ports connectés aux PC sont configurés en mode VLAN ACCESS et les ports d’interconnexion entre commutateurs sont configurés en mode VLAN TRUNK avec comme VLAN natif, le VLAN 10 configuré en mode tagué VLAN. Les commutateurs sont configurés pour autoriser les VLAN 10 et 20. Pour les personnes ne sachant pas ce qu’est le mode QinQ, je vous conseille d’aller lire mon précédent article qui est ici.

Native VLAN QinQ tagged (VLAN Hopping)

L’attaquant envoie un paquet avec une étiquette VLAN 20. Le premier commutateur accepte le paquet et l’affecte dans le VLAN 10 : le paquet ressort sur le port TRUNK avec une double étiquette VLAN (outer-tag = VLAN 10 et inner-tag VLAN 20). Le second commutateur reçoit le paquet, il le transmet vers le port ACCESS qui fait partie du VLAN 10 car il a identifié que le outer-tag est le VLAN 10. Lorsque le port sort sur le port ACCESS, le outer-tag VLAN 10 est supprimé. Dans cette situation il n’y a pas de soucis, le paquet transite bien sur les bons ports.

Par contre, si on configure les ports TRUNK avec le VLAN natif en mode non-tagué VLAN, voilà ce qu’il se passe :

Native VLAN QinQ untagged (VLAN Hopping)

L’attaquant envoie un paquet avec une étiquette VLAN 20. Le premier commutateur accepte le paquet et l’affecte dans le VLAN 10 : vu que le VLAN natif est configuré en mode non-tagué, le paquet ressort sur le port TRUNK sans le outer-tag VLAN 10. Le second commutateur reçoit le paquet, il le transmet vers le port ACCESS qui fait partie du VLAN 20 car il a identifié que le outer-tag est le VLAN 20. Lorsque le port sort sur le port ACCESS, le outer-tag VLAN 20 est supprimé. Dans cette situation, l’attaquant a réussi à envoyer le paquet dans le VLAN 20 alors qu’il n’a accès normalement qu’au VLAN 10.

Pour information, les commutateurs IFOTEC de gamme INET, lorsqu’ils sont configurés en mode QinQ ne permettent pas de configurer le VLAN natif en mode non-tagués, ce qui évite ce type d’attaque.

Exemple d’un réseau qui n’est pas configuré en mode QinQ

Dans cet exemple, les deux commutateurs ne sont pas configurés en mode QinQ. Les ports connectés aux PC sont configurés en mode VLAN ACCESS sauf l’attaquant qui est connecté sur un port en mode VLAN TRUNK où seul le VLAN 10 est autorisé. Les ports d’interconnexion entre commutateurs sont configurés en mode VLAN TRUNK avec comme VLAN natif, le VLAN 10 configuré en mode tagué VLAN. Les commutateurs sont configurés pour autoriser les VLAN 10 et 20.

Native VLAN Native tagged (VLAN Hopping)

L’attaquant envoie un paquet avec une double étiquette VLAN (outer-tag = VLAN 10 et inner-tag = VLAN 20). Le premier commutateur accepte le paquet car le outer-tag est le VLAN 10 : le paquet ressort sur le port TRUNK non modifié. Le second commutateur reçoit le paquet, il le transmet vers le port ACCESS qui fait partie du VLAN 10 car il a identifié que le outer-tag est le VLAN 10. Lorsque le port sort sur le port ACCESS, le outer-tag VLAN 10 est supprimé. Dans cette situation il n’y a pas de soucis, le paquet transite bien sur les bons ports.

Par contre, si on configure les ports TRUNK avec le VLAN natif en mode non-tagué VLAN, voilà ce qu’il se passe :

Native VLAN Native untagged (VLAN Hopping)

L’attaquant envoie un paquet avec une double étiquette VLAN (outer-tag = VLAN 10 et inner-tag = VLAN 20). Le premier commutateur accepte le paquet car le outer-tag est le VLAN 10 : le paquet ressort sur le port TRUNK avec le outer-tag VLAN 10 supprimé. Le second commutateur reçoit le paquet, il le transmet vers le port ACCESS qui fait partie du VLAN 20 car il a identifié que le outer-tag est le VLAN 20. Lorsque le port sort sur le port ACCESS, le outer-tag VLAN 20 est supprimé. Dans cette situation, on voit que l’attaquant a réussi à envoyer le paquet dans le VLAN 20 qui n’est pas autorisé.

A noter que sur un port configuré en mode ACCESS sur un équipement IFOTEC, les paquets entrants sont bloqués s’ils ont une étiquette VLAN mais ce n’est pas forcément le cas sur des équipements d’autres fabricants.

Conclusion.

Pour éviter les VLAN Hopping, il faut autant que possible configurer les ports TRUNK avec le VLAN natif en mode tagué et configurer les ports où un attaquant peut venir se connecter en mode ACCESS. Une erreur de configuration peut être difficile à identifier car le réseau peut être fonctionnel et pourtant ne pas être protégé contre ce type d’attaques.

 

Un article de Cédric Marmonier, ingénieur R&D chez IFOTEC.
Retrouvez plus d’actualités sur le LinkedIn d’IFOTEC.

 

A lire également les articles suivants :

Mieux connaître les cyberattaques sur systèmes embarqués

Cybersécurité, comment améliorer sa politique de sécurité numérique ?

Bonnes pratiques de la gestion des secrets

Pourquoi utiliser les VLAN pour sécuriser les réseaux ?

Zoom sur le HTTPS