Keep-it-alived : Étude de la sécurité du protocole VRRP 🇫🇷

VRRP (Virtual Router Redundancy Protocol) est un protocole open standard conçu pour garantir la haute disponibilité des routeurs. Éprouvé et largement adopté, il est utilisé dans de nombreuses infrastructures réseau. Cependant, la question de sa sécurité est rarement abordée en profondeur dans les ressources disponibles en ligne. Par exemple, VRRPv2, encore très répandu aujourd’hui, propose deux modes d’authentification, dont l’un est facilement contournable. En revanche, dans VRRPv3, la fonctionnalité d’authentification a été supprimée, les auteurs du protocole estimant que la sécurité devait être gérée en amont. Dans cette présentation, j’examinerai les implications des choix de conception de VRRP en matière de sécurité et mettrai en évidence les vulnérabilités susceptibles d’en découler. Pour cela, je m’appuierai sur Keepalived, une implémentation open source populaire de VRRP. Enfin, je présenterai une faille de conception que j’ai découverte dans le protocole VRRP lui-même (RFC 9568), avec l’aide des mainteneurs du projet Keepalived. Cette vulnérabilité permet à un attaquant sur le même réseau d’usurper le rôle de routeur “master” en cas de conflit de priorité VRRP, même lorsque celle du routeur master légitime est au maximum (255). Elle a fait l’objet de l’erratum 8298, validé par l’IETF.