Définition du protocole BGP (Border Gateway Protocol)
Qu'est-ce que le protocole BGP (Border Gateway Protocol) ?
Internet n'est pas un réseau unique, immense et homogène. Il se compose en réalité de plusieurs réseaux plus petits, exploités par diverses parties et interconnectés. Par exemple, les fournisseurs de services Internet (FSI) possèdent chacun leur propre infrastructure réseau, et ces réseaux sont connectés d'une certaine manière aux réseaux d'un ou de plusieurs autres FSI.
Lorsqu'un paquet réseau traverse Internet, il devra vraisemblablement trouver une route franchissant un ou plusieurs de ces réseaux indépendants, appelés systèmes autonomes (AS). Le protocole BGP (Border Gateway Protocol) est un protocole réseau conçu pour aider les paquets à trouver une route entre ces AS jusqu'à leur destination.
Comment fonctionne BGP ?
Le rôle de BGP est de trouver des routes pour le trafic au-delà des frontières des AS. À l'intérieur d'un AS, le propriétaire du réseau est responsable d'acheminer le trafic vers sa destination prévue.
BGP permet aux AS de constituer des tables de routage en collaborant avec d'autres AS. Chaque AS recense les préfixes de routage (plages d'adresses IP) situés dans ses propres réseaux. Il partage cette information avec les AS qui lui sont adjacents, et l'information se propage à travers le système.
À la réception de ces valeurs, il y aura vraisemblablement des informations qui se chevauchent. Par exemple, si l'AS A est connecté à B et à C, et que B et C sont connectés, alors A pourrait acheminer le trafic vers C directement ou en passant par B. En général, les AS choisissent le meilleur chemin en fonction de quelques caractéristiques.
Une fois sa table de routage en place, un AS pourra acheminer le trafic vers n'importe quelle adresse IP sur Internet en l'envoyant à l'AS suivant sur la route optimale. Ces tables de routage sont aussi mises à jour périodiquement pour refléter les changements dans la configuration globale d'Internet.
Que sont les attaques par détournement BGP ?
Comme bien des protocoles réseau fondamentaux, BGP fonctionne sur la bonne foi. Si un AS déclare disposer d'une route efficace vers une destination donnée, les autres AS font confiance à cette route et mettent à jour leurs tables de routage en conséquence. Tant que le paquet atteint sa destination, il n'y a aucune raison de mettre en doute l'annonce de route d'un AS.
Toutefois, cette dépendance à la confiance crée des occasions pour un AS malveillant de détourner le système. Par exemple, un AS pourrait annoncer une fausse route efficace vers une plage d'adresses IP. Une fois cette route annoncée aux autres AS, ceux-ci mettraient vraisemblablement à jour leurs tables de routage pour y inclure la nouvelle route, remplaçant les routes qu'ils avaient en place pour cette plage d'adresses IP.
Lorsque ces AS recevraient un paquet destiné à cette plage d'adresses IP, ils utiliseraient la nouvelle route efficace. Tout le trafic vers cette plage de préfixes IP serait alors acheminé par les systèmes de l'AS malveillant, ce qui lui permettrait de filtrer ce trafic ou d'en extraire toute information possible. Ensuite, il peut envoyer le trafic vers sa destination prévue en le replaçant sur la route qu'il aurait dû emprunter.
Ces attaques par détournement BGP se sont produites tant intentionnellement qu'accidentellement. Ces incidents ont entraîné des perturbations du trafic Internet ou des pannes de certains services. Par exemple, une tentative de la Pakistan Telecommunications Company de bloquer YouTube en 2008 a rendu le service inaccessible à l'échelle mondiale pendant un certain temps, après que l'AS eut accidentellement annoncé à d'autres AS de fausses routes pour les adresses IP de YouTube (conçues pour rendre le service inaccessible localement).
Conclusion
BGP est un protocole fondamental d'Internet conçu pour assembler les divers réseaux d'AS en un Internet unique et connecté. Bien que le système fonctionne, il est aussi fragile et vulnérable aux perturbations intentionnelles ou non.
L'équipe KZero
Découvrez d'autres contenus instructifs rédigés par l'équipe compétente de KZero dans notre section de blogues et de guides.