BGP est-il encore sûr ? : L’outil de Cloudflare pour savoir si BGP est sûr
Le protocole BGP (Border Gateway Protocol) est l’un des protocoles fondamentaux d’Internet, puisqu’il est chargé d’échanger des informations de routage entre les différents systèmes autonomes qui existent dans le monde. Par exemple, chaque opérateur Internet a son propre AS, et pour communiquer avec l’AS d’un autre opérateur, vous devez utiliser le protocole BGP. Si ce protocole n’est pas configuré correctement, cela pourrait provoquer des interruptions sur Internet, ou que les routes de trafic soient modifiées de sorte que tout le trafic d’un certain AS passe par un autre sans le demander. Cloudflare a publié un outil gratuit pour vérifier rapidement et facilement la sécurité du protocole BGP .
Protocole BGP : qu’est-ce que c’est, à quoi ça sert et comment ça marche
Internet est divisé en systèmes autonomes (AS), un système autonome est un ensemble de routeurs d’un même opérateur qui échangent des routes entre eux pour se rendre d’une origine à une destination. Il est essentiel qu’un opérateur au sein de son AS dispose des itinéraires parfaitement mis à jour, sinon, nous pourrions avoir une perte de connectivité vers une destination spécifique. Un AS est comme un «petit» Internetqui permet uniquement à l’opérateur en question de communiquer, par exemple, si vous êtes un client Movistar et que vous souhaitez communiquer avec un autre client Movistar, tout le trafic passera par l’intérieur de l’AS, sans passer par Internet (en principe, cela dépend sur la façon dont il est configuré). Par exemple, chaque opérateur en Espagne dispose d’au moins un système autonome (il peut disposer de plusieurs AS). Au sein d’un système autonome, les routeurs des opérateurs échangent les différentes routes pour aller d’une origine à une destination en interne, sans utiliser d’autres AS. Les informations de routage sont fournies dynamiquement par les protocoles de routage de la passerelle intérieure(IGP – Interior Gateway Protocol), ce routage est interne à l’AS lui-même, et ils utilisent des protocoles spécifiques tels que OSPF ou IS-IS dans la grande majorité des cas, mais il existe également d’autres protocoles IGP tels que RIP ou EIGRP .
Le protocole BGP (Border Gateway Protocol) est un protocole de passerelle externe ou externe ou est également appelé «border». Ce protocole est utilisé pour échanger des routes entre différents AS , cette tâche est essentielle pour que l’on puisse avoir une connectivité d’une origine à une destination, lorsque le trafic doit passer par différents AS. Par exemple, si notre opérateur est Movistar et que nous voulons communiquer avec quelqu’un qui a Vodafone, il est nécessaire que notre trafic passe par le Movistar AS et aussi celui de Vodafone pour arriver correctement à destination. Alors que les protocoles IGP partagent des routes au sein de l’AS, BGP est responsable du partage des routes vers d’autres AS pour avoir une connectivité entre différents opérateurs.
Lorsque nous configurons un protocole BGP, nous aurons à la fois des connexions internes (iBGP) établies au sein de l’AS, ainsi que des sessions externes (eBGP) établies entre différents AS. Certaines caractéristiques de BGP sont qu’il garantit un choix de routes sans boucle, il prend des décisions de routage en fonction des politiques de réseau définies (ingénierie du trafic), telles que le nombre de « sauts » AS de l’origine à la destination, bien que nous puissions utilisez l’attribut LOCAL-PREF pour modifier ce comportement, les routes peuvent également être modifiées en fonction d’autres attributs qui existent dans BGP.
Pourquoi BGP n’est-il pas sécurisé ?
Le protocole BGP s’il n’est pas configuré correctement, peut conduire à des attaques telles que le détournement de BGP. Si pour aller d’une origine A à une destination C, vous devez passer par B, il est possible que le nœud B « trompe » le nœud A en faisant passer son trafic par un autre AS, ou qu’il ne fournisse pas directement la bonne route et vous manquez de connectivité, car vous ne pouvez pas du tout accéder à C si B ne vous donne pas les informations. Le BGP Hijack fonctionne exactement comme ça, en détournant la session BGP et en envoyant de fausses informations à un AS afin qu’il n’atteigne jamais son «voisin», ou qu’il arrive de manière malveillante (via un routeur d’un autre AS sous notre contrôle, par exemple ) .
Pour que BGP soit sécurisé, nous devons nous protéger contre la propagation de route malveillante ou erronée (en raison d’une erreur humaine, nous pouvons rendre un AS entier sans connectivité). Il est essentiel que les différents routeurs BGP aient la capacité de valider les informations qu’ils reçoivent d’une manière ou d’une autre, afin qu’ils puissent rejeter eux-mêmes ces routes indésirables et ne pas modifier leur routage.
Par défaut, BGP n’intègre aucun protocole de sécurité pour éviter cela, il appartient à chaque AS de mettre en œuvre un filtrage de route incorrect. Normalement, lorsque nous perdons nos routes, cela est dû à une erreur humaine, mais cela peut aussi être dû à l’action d’un cybercriminel, comme cela s’est produit dans le passé. BGP peut être sécurisé si tous les AS n’annoncent que des routes légitimes, c’est-à-dire lorsqu’elles sont « les leurs ».
RPKI à la rescousse
RPKI (Resource Public Key Infrastructure) nous donne la solution, il existe actuellement des millions de routes sur Internet, donc les vérifier manuellement est une tâche impossible. Ce cadre de sécurité est capable d’associer une route à un système autonome spécifique. RPKI utilise la cryptographie entre les différents routeurs BGP afin que les nœuds valident les informations de manière sécurisée avant de les transmettre aux routeurs, afin de s’assurer à 100% qu’il s’agit d’une route légitime. Nous vous recommandons d’en savoir plus sur RPKI sur le blog Cloudflare où vous trouverez des informations techniques.
Comment fonctionne l’outil pour détecter si notre FAI utilise BGP avec RPKI
Cet outil est chargé de vérifier si notre opérateur implémente BGP de manière sécurisée, ce qu’il fait est d’annoncer une route Cloudflare légitime, mais il s’assure que ladite publicité n’est pas valide. Si nous pouvons charger le site Web où nous hébergeons cet itinéraire, cela signifie que nous pouvons y accéder et que notre FAI l’a accepté comme valide, sinon nous ne pourrons pas y accéder car l’opérateur l’a marqué comme invalide.
La première chose à faire est d’ aller sur le Web. Le BGP est-il encore sécurisé ? et cliquez sur «Test your ISP», comme vous pouvez le voir ici :
Après quelques secondes, il nous informera du résultat du test que nous avons effectué, notre opérateur est Masmóvil, et il semble qu’il n’implémente pas ces protections BGP :
Juste en dessous, nous obtiendrons un classement avec différents opérateurs Internet dans le monde, et il indiquera s’ils ont configuré BGP correctement ou non. Par exemple, d’autres opérateurs en Espagne comme Vodafone, Orange ou Movistar, ne disposent pas non plus de ces protections BGP, à en juger par les tests de Cloudflare. Certains opérateurs (ou entreprises avec AS) qui ont très bien fait leur travail sont Telia, NTT et aussi Cloudflare, bien que d’autres comme Cogent ou TATA soient partiellement sûrs car ils filtrent les pairs.