Comment savoir si le BGP d'un opérateur est sûr

La BGP (Protocole de passerelle frontière) est l'un des protocoles fondamentaux d'Internet, puisqu'il est en charge de l'échange d'informations de routage entre les différents systèmes autonomes qui existent dans le monde. Par exemple, chaque opérateur Internet possède 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, il peut provoquer des interruptions sur Internet ou les routes de trafic peuvent être modifiées de sorte que tout le trafic d'un certain AS passe par un autre sans le demander. Cloudflare a lancé un outil gratuit pour vérifier la sécurité du protocole BGP facilement et rapidement.

cloudflare

Protocole BGP: de quoi il s'agit, à quoi il sert et comment il fonctionne

Internet est divisé en systèmes autonomes (AS), un système autonome est un ensemble de routeurs du même opérateur qui échange des routes entre eux pour aller d'une origine à une destination. Il est essentiel qu'un opérateur au sein de son AS ait des itinéraires parfaitement mis à jour, car sinon, nous pourrions avoir une perte de connectivité vers une destination spécifique.

An AS est comme un «petit» Internet qui 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'AS, sans sortir vers Internet (en principe, cela dépend de la façon dont il est configuré). Par exemple, chaque opérateur en Espagne dispose d'au moins un système autonome (il peut avoir plusieurs AS à sa disposition).

Au sein d'un système autonome, les routeurs des opérateurs échangent les différentes routes pour se rendre d'une origine à une destination en interne, sans utiliser d'autre AS. Les informations de routage sont fournies dynamiquement par protocole de routage passerelle intérieure (IGP - Interior Gateway Protocol), ce routage est interne à l'AS lui-même et utilise 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 BGP (Border Gateway Protocol) est un externe externe protocole de passerelle ou est aussi appelé «frontière». Ce protocole est utilisé pour échange des routes entre différents AS , cette tâche est essentielle pour que nous puissions avoir une connectivité d'une source à 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 Movistar AS et aussi celui de Vodafone pour atteindre correctement sa destination. Alors que les protocoles IGP partagent des routes au sein de l'AS, BGP est responsable du partage des routes avec d'autres AS afin d'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 utiliser le Attribut LOCAL-PREF pour modifier ce comportement, les itinéraires peuvent également être modifiés 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 entraîner des attaques comme le détournement BGP. Si vous devez passer par B pour vous rendre de la source A à la destination C, il est possible que le nœud B «trompe» le nœud A pour que son trafic passe par un autre AS, ou qu'il ne vous fournisse pas directement l'itinéraire correct. et manquer de connectivité, car vous ne pouvez pas accéder à C en aucune façon si B ne vous fournit pas les informations. Le BGP Hijack fonctionne exactement comme ceci, détournant la session BGP et envoyant de fausses informations à un AS afin qu'il n'atteigne jamais son «voisin», ou qu'il arrive de manière malveillante (en passant par le routeur d'un autre AS sous notre contrôle, pour exemple) .

Pour que BGP soit sécurisé, nous devons protéger la propagation des routes de manière malveillante ou erronée (en raison d'une défaillance humaine, nous pouvons laisser la connectivité à un AS entier). Il est essentiel que les différents routeurs BGP aient la possibilité de valider les informations qu'ils reçoivent d'une manière ou d'une autre, afin qu'ils puissent rejeter ces routes indésirables par eux-mêmes et ne pas modifier leur routage.

Par défaut, BGP n'incorpore aucun protocole de sécurité pour éviter cela, l'implémentation d'un filtrage de route incorrect dépend de chaque AS. Normalement, lorsque nous perdons les routes, cela est dû à une défaillance humaine, mais cela pourrait également être dû à l'action d'un cybercriminel, comme cela s'est produit dans le passé. BGP peut être sécurisé si tous les AS annoncent uniquement des itinéraires légitimes, c'est-à-dire lorsqu'ils sont «les vôtres».

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, pour garantir à 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 l'outil fonctionne pour détecter si notre FAI utilise BGP avec RPKI

Cet outil est en charge de vérifier si notre opérateur implémente BGP de manière sécurisée, il annonce une route Cloudflare légitime, mais il s'assure que cette annonce n'est pas valide. Si nous pouvons charger le site Web où nous hébergeons cet itinéraire, cela signifie que nous pouvons l'atteindre et que notre FAI l'a accepté comme valide, sinon, nous ne pourrons pas y accéder parce que l'opérateur l'a marqué comme invalide.

La première chose que nous devons faire est est-ce que BGP est encore sûr? et cliquez sur «Testez votre FAI», comme vous pouvez le voir ici:

Au bout de 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 cela indiquera s'ils ont configuré BGP correctement ou non. Par exemple, d'autres opérateurs en Espagne tels que Vodafone, Orange ou Movistar ne disposent pas non plus de ces protections BGP, à en juger par les tests Cloudflare. Certains opérateurs (ou entreprises avec AS) qui ont très bien fait leur travail sont Telia, NTT et Cloudflare, bien que d'autres tels que Cogent ou TATA soient partiellement sûrs car ils filtrent les pairs.