Sécurité du protocole HSRP
Sommaire
1 – L’introduction à la sécurité du protocole HSRP
Le protocole HSRP (Hot Standby Routing Protocol) est le protocole propriétaire CIsco permettant d’obtenir une continuité de service LAN sur les routeurs.
Les entreprises disposant d’un accès WAN attendent un taux de disponibilité important. Les risques identifiés autour d’un accès WAN sont :
- Le Switch LAN
- Le routeur CPE
- Le lien de boucle local
- Le Backbone de l’opérateur
- Le service offert par l’opérateur
Ainsi, dans le cadre du routeur CPE, la solution est de le doubler. Pour cela, dans le cadre de routeur Cisco, la plus part des entreprises et opérateurs implémentent le protocole HSRP. Cependant, ce protocole très largement utilisée, dispose d’une faille remettant en cause la stabilité de l’architecture de routage.
2 – La présentation d’HSRP
HSRP, signifiant Hot Standby Routing Protocol, est un protocole qui permet à un routeur d’être le secours d’un autre routeur situé sur le même réseau Ethernet. HSRP est décrit par la RFC 2281 « Cisco Hot Standby Router Protocol (HSRP) ». HSRP est le protocole propriétaire de Cisco inspiré du protocole normalisé VRRP.
Le principe de fonctionnement est que tous les routeurs émulent une adresse IP virtuelle qui sera utilisée comme passerelle par les équipements du réseau LAN. Pour cela, chacun des routeurs configurera son protocole HSRP avec un niveau de priorité. Celui qui disposera du plus grand se verra élu et sera actif. Les autres seront passifs en attendant la perte du premier routeur.
La communication lié au protocole HSRP entre les routeurs se fait par l’envoi de paquets Multicast à l’adresse IP 224.0.0.2 vers le port UDP 1985. Cela permet principalement d’élire le routeur actif et de tester (track) sa présence.
Les hôtes IP du réseau LAN sont client du routeur virtuelle via l’adresse IP et l’adresse MAC* émulées. Bien sur, seul le routeur actif répondra à ces adresses jusqu’au moment où il ne sera plus disponible (panne). A ce moment là, l’un des routeurs de Backup prendra dynamiquement le relais.
* L’adresse MAC émulée est du type 00:00:0C:07:AC:ZZ où ZZ représente le numéro du groupe.
2.1 – Structure de l’entête
Voici la structure de l’entête IP basé sur 20 octets.
2.2 – Définition des différents champs
2.2.1 – Version
Le champ Version est codé sur 1 octet, il indique la version du protocole HSRP utilisée. En l’occurrence, il existe qu’une seule version, la 0.
2.2.2 – Op Code
Le champ Op Code est codé sur 1 octet, il stipule le type de message. Voici la liste des types de messages possibles :
- 0 – Hello
- 1 – Coup
- 2 – Resign
2.2.3 – State
Le champ State est codé sur 1 octet, il informe de l’état du routeur émettant ce datagramme HSRP. Voici les différentes valeurs possibles :
- 0 – Initial
- 1 – Learn
- 2 – Listen
- 4 – Speak
- 8 – Standby
- 16 – Active
2.2.4 – Hellotime
Le champ Hellotime est codé sur 1 octet, il représente l’intervalle de temps en seconde entre chaque envoi de paquet Hello. Ce champ n’est lu que dans le cas d’Op code = 0.
2.2.5 – Holdtime
Le champ Holdtime est codé sur 1 octet, il représente le temps en seconde de la validité des paquets Hello. Ce champ n’est lu que dans le cas d’Op code = 0.
2.2.6 – Priority
Le champ Priority est codé sur 1 octet, il permet d’élire le routeurs qui sera actif. Pour cela, la plus valeur sera considéré comme gagnante.
2.2.7 – Group
Le champ Group est codé sur 1 octet, il permet l’utilisation de plusieurs HSRP sur le même LAN tant en spécifiant des numéros de groupes différents.
2.2.8 – Reserved
Le champ Reserved est codé sur 1 octet, il servira pour des besoins futurs. Ce champ doit être marqué à 0. Au jour d’aujourd’hui, on peut considérer que les besoins futurs se transforment en un champ non utilisé.
2.2.9 – Authentification Data
Le champ Authentification Data est codé sur 8 octet, il contient le mot de passe de 8 caractères en claire. Dans le cas de non utilisation de l’authentification, il est fortement conseillé de paramètrer ce champ à la valeurs : 0x63 0x69 0x73 0x63 0x6F 0x00 0x00 0x00 (cisco).
2.2.10 – Adresse IP Virtuelle
Le champ Adresse IP Virtuelle est codé sur 4 octet, il contient l’adresse IP virtuelle commune aux différents routeurs du groupe HSRP.
2.3 – Exemple de trame
Vous pouvez téléchargez le fichier .cap contenant l’ensemble de la trame.
3 – La configuration d’HSRP
3.1 – Les commandes
Voici la listes des commandes permettant d’implémenter et maîtriser le protocole HSRP :
- La commande « standby priority xxx » définit une priorité au routeur. Celui qui possédera la plus grande valeur sera élus actif. Si la configuration du routeur ne stipule pas la priorité, alors la valeurs par défaut de 100 sera appliquée.
- La commande « standby preempt » permet d’accélérer le processus d’élection.
- La commande « standby ip xxx.xxx.xxx.xxx » indique l’adresse IP virtuelle partagée entre les deux routeurs.
- La commande « standby track xxxxxx » permet de superviser une interface et de baisser de 10 la valeur de la priorité HSRP si elle devenait Down.
- La commande « standby authentication« , permet de remplacer le mot de passe par défaut « Cisco » (63 69 73 63 6F 00 00 00).
Si à un moment les élections montrent plusieurs routeurs avec les mêmes valeurs de priorité, alors la plus grande adresse IP physique sera élus.
3.2 – Le schéma
3.3 – Configuration de R1
Voici la configuration du routeur R1
interface FastEthernet1/0 description *** Interface LAN *** ip address 192.168.101.253 255.255.255.0 standby priority 120 standby preempt standby ip 192.168.101.254
3.4 – Configuration de R2
Voici la configuration du routeur R1
interface FastEthernet1/0 description *** Interface LAN *** ip address 192.168.101.252 255.255.255.0 standby priority 110 standby preempt standby ip 192.168.101.254
3.5 – Commandes d’exploitation
Activer le mode debug pour HSRP :
debug standby terminal monitor
Où le debug suivant pour ne pas afficher les paquets d’information et de type :
debug standby terse terminal monitor
Exemple de résultat obtenu :
SB0:FastEthernet0/0 Hello out 192.168.101.252 Active pri 110 hel 3 hol 10 ip 192.168.101.254 SB0:FastEthernet0/0 Hello in 192.168.101.253 Active pri 120 hel 3 hol 10 ip 192.168.101.254 SB0: FastEthernet0/0 state Active -> Speak SB0:FastEthernet0/0 Resign out 192.168.101.252 Speak pri 110 hel 3 hol 10 ip 192.168.101.254 SB0:FastEthernet0/0 Hello out 192.168.101.252 Speak pri 110 hel 3 hol 10 ip 192.168.101.254 %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to down SB0: FastEthernet0/0 state Speak -> Init %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up SB0: FastEthernet0/0 state Init -> Listen %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to down SB0: FastEthernet0/0 state Listen -> Init %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up SB0: FastEthernet0/0 state Init -> Listen SB0: FastEthernet0/0 state Listen -> Speak SB0: FastEthernet0/0 state Speak -> Standby SB0: FastEthernet0/0 state Standby -> Active SB: FastEthernet0/0 Adding 0000.0c07.ac00 to address filter SB0:FastEthernet0/0 Hello out 192.168.101.252 Active pri 110 hel 3 hol 10 ip 192.168.101.254 SB0:FastEthernet0/0 Hello in 192.168.101.253 Active pri 120 hel 3 hol 10 ip 192.168.101.254 SB0: FastEthernet0/0 state Active -> Speak
Visualiser l’état de l’HSRP :
show standby
Exemple de résultat obtenu :
FastEthernet0/0 - Group 0 State is Active 2 state changes, last state change 00:44:56 Virtual IP address is 192.168.101.254 Active virtual MAC address is 0000.0c07.ac00 Local virtual MAC address is 0000.0c07.ac00 (v1 default) Hello time 3 sec, hold time 10 sec Next hello sent in 2.627 secs Preemption enabled Active router is local Standby router is unknown Priority 120 (configured 120) IP redundancy name is "hsrp-Fa0/0-0" (default)
3.6 – Monitoring et supervision
Il est possible de récupérer un maximum de compteur via le protocole SNMP. Pour cela, vous pouvez vous référencer aux deux fichiers suivants :
4 – La sécurité d’HSRP
4.1 – Les faiblesses du protocole
Le protocole HSRP possède deux principales faiblesses qui sont le passage du mot de passe d’authentification en claire et l’acceptation de paquet unicast.
4.1.1 – Mot de passe d’authentification en claire
Le protocole HSRP utilise pour authentifier les requêtes, un mot de passe qui transite en clair sur le réseau LAN. De plus, comme le protocole s’appui sur une adresse IP de destination de type Multicast afin de s’adresser à tous les routeurs, l’écoute de ce mot de passe est très simple et ne demande aucune action particulière même dans le cadre de réseau commuté.
Une simple écoute du réseau permettra de réccupérer le numéro du groupe, le mot de passe d’authentification. Ainsi, le protocole HSRP n’es pas protégé et n’importe qui peux participer au groupe. La seule limite est d’être présent sur le LAN afin d’utiliser l’adresse Multicast 224.0.0.1.
4.1.2 – Acceptation des paquets Unicast
Il existe un problème dans la gestion des adresses IP par HSRP. En effet, bien que les messages HSRP soient de type Multicast, les paquets de type Unicast (datagramme dirigé) sont acceptés et traités par les routeurs HSRP.
Cela signifie que les paquets HSRP, ayant pour adresse de destination le routeur physique, seront traités par ce dernier sans différence. Ce comportement permet aux attaques d’être exécutées à distance en s’affranchissant des contraintes de sécurité liées au trafic Multicast.
4.2 – Les protections d’HSRP
Il y a plusieurs solutions envisageables afin de se protéger des faiblesses du protocole HSRP.
4.2.1 – Définition d’un groupe
Il est conseillé de changer le numéro du groupe pour ne pas utiliser celui par défaut. Ainsi, on diminuera le nombre de chance qu’un bots automatique casse l’HSRP. Pour changer le numéro du groupe, il faut le spécifier dans chaque commande comme dans l’exemple suivant avec le groupe 3 :
interface FastEthernet1/0 description *** Interface LAN *** ip address 192.168.101.253 255.255.255.0 standby 3 priority 120 standby 3 preempt standby 3 ip 192.168.101.254
4.2.2- Définition d’un mot de passe
Il est conseillé de spécifier un mot de passe pour les échanges pour ne pas utiliser celui par défaut. Ainsi, on diminuera le nombre de chance qu’un bots automatique casse l’HSRP. Pour changer le mot de passe par défaut, il faut spécifier la commande suivante :
standby 3 authentication frameip
4.2.3 – Filtrage des paquets
Il est impératif de filtrer les datagrammes afin de maîtriser les flux. Pour ce protéger des attaques sur HSRP, il est fortement conseiller d’appliquer du filtrage IP sur chaque routeur HSRP et sur chaque bordure du réseau.
Filtrage en bordure du réseau LAN :
Les bordures sont principalement représentées par les accès WAN et Internet. A ces différents endroits du réseau LAN, il faut appliquer un filtre IP permettant d’interdire les flux de type UDP 1985 d’entrer. Ainsi, vous serez protégé contre toutes les attaques distantes.
Filtrage sur chaque routeur HSRP :
Chaque routeur implémentant le protocole HSRP doit appliquer un filtrage IP sur c’est flux entrant. Celui ci n’autorisant la réception de datagramme UDP 1985 que provenant des autres routeurs membres de son groupe HSRP.
4.2.4 – IPSEC
CISCO propose d’installer IPSec entre les routeurs HSRP membre du groupe afin de chiffrer les communications HSRP et par conséquent la clé d’authentification.
4.2.5 – Hashage MD5
Cisco propose d’utiliser l’algorithme MD5 afin de Hash les échanges. Dans ce cas précis, le mot de passe n’est plus transité dans le champs « Authentification data » qui devient alors égale à 0. Pour cela, il faut rajouter la commande suivante dans tous les routeurs membre du groupe HSRP :
standby 3 authentication md5 key-string toto
4.2.6 – VRRP
La solution radicale est de ne pas utiliser le protocole Cisco HSRP, mais de préférer VRRP (Virtual Router Redundancy Protocol).
4.2.7 – Evolution d’HSRP
CISCO a officiellement et publiquement annoncé qu’il n’avait pas l’intention de développer de correctif pour ces vulnérabilités.
5 – Les vidéos
5.1 - Publicité sur la sécurité par Cisco
Vidéo publicitaire de Cisco sur la sécurité de Cisco.
5.2 - Présentation de la stratégie Cisco en termes de sécurité
Dans cette vidéo, Cisco revient sur les principes de Sécurité propres à Cisco !
6 – Suivi du document
Création et suivi de la documentation par _SebF
7 – Discussion autour de la sécurité du protocole HSRP
Vous pouvez poser toutes vos questions, faire part de vos remarques et partager vos expériences à propos de la sécurité du protocole HSRP. Pour cela, n’hésitez pas à laisser un commentaire ci-dessous :
Merci, c ‘est intéressant
Merci beaucoup pour ces explications.
Toujours un plaisir de lire des doc’ aussi claires.
j’ai apprécis votre cours sur les protocole HSRP mais je preferé suivreune formation avec vous sur le routage parce que je quelque lacune sur ce cours et j’aimerai devenir un specialiste sur la configuration du materiel de cisco.
je vous note 5 etoile
Merci