Détournement de trafic Internet via protocole BGP : Fonctionnement de l'attaque (Partie 2/3)

Après avoir décrit en 1ère partie les bases nécessaires à la compréhension du protocole BGP, je vous propose ici de décrypter le fonctionnement de l'attaque présentée par Alex Pilosov et Tony Kapela lors du DEFCON 16 d'août 2008.

La figure 4 pose le décor. L'attaquant est localisé à droite (Autonomous System 5 ou « AS5 »), la cible étant sur la gauche (AS1). L'attaquant veut écouter les communications entre un sous-réseau précis (192.0.2.0/24) de l'AS1 et les machines localisées sur les AS3, AS5 et AS6. Cette écoute doit rester passive et il est important qu'AS1 ne se rende compte de rien.

La figure 5 présente les actions que va effectuer l'attaquant  pour manipuler les règles de routage.
Pour commencer, l'attaquant détermine le chemin qu'il va utiliser pour renvoyer le trafic une fois celui écouté : Il décide d'utiliser le chemin passant via AS4 ayant un AS-PATH=(4,2,1) annoncé par la route 192.0.2.0/22. Cette route est une route légitime annoncée par AS1. Ce même préfixe en /22 est connu de tous les autres AS. Seuls quelques AS-PATH sont indiqués afin de garder la figure lisible.

L'attaquant va ensuite lancer le détournement du trafic qui l'intéresse en annonçant, via BGP, une route plus spécifique (ici 192.0.2.0/24)  avec un AS-PATH=(5,4,2,1).
Cette route va être acceptée par AS6 et AS7 (qui vont rajouter leur numéro d'AS au début via le mécanisme de « AS-Prepending »). Lorsque AS6 va annoncer cette route à AS4, ce dernier va l'ignorer car son numéro d'AS est déjà présent dans l'AS-PATH, de la même manière AS1 et AS2 vont ignorer la route émise par AS3 car l'AS-PATH contient déjà aussi leur numéro respectif (on retrouve ici les mécanismes de détection et de prévention de boucle).

Comme 192.0.2.0/24 est une route plus spécifique que la route annoncée par AS1 (un sous réseau en /22), les AS3, AS6 et AS7 vont donc envoyer les paquets à l'AS5, qui va ensuite les renvoyer à AS1 une fois analysés.

Évidemment, afin qu'AS5 soit en mesure de joindre AS4, l'attaquant doit configurer une route statique sur les routeurs d'interconnexion entre AS5 et AS4 pour le 192.0.2.0/24 qui a été détourné de l'autre coté.

Sur la Figure 6, on peut constater que le trafic en provenance des AS3, AS6 et AS7 à destination du sous-réseau 192.0.2.0/24 est donc redirigé vers l'AS5 « attaquant » qui peut ainsi l'écouter, l'analyser ou encore l'enregistrer. Il utilisera ensuite le chemin passant via AS4 et AS2 afin de joindre AS1 pour réinjecter le trafic.

Ou réside la nouveauté de cette annonce ?

Le détournement de trafic via l'annonce via BGP d'un préfixe IP plus spécifique n'est pas nouveau, l'AS-PATH Poisoning est une technique utilisée assez couramment pour « éviter » un AS précis : Ce qui est nouveau ici c'est l'idée de conserver le chemin de retour actif (pour la réinjection des paquets) en utilisant pour ce faire le mécanisme de détection de boucles de routage intégré à BGP.

Dans le dernier article de cette série, je présenterai les techniques permettant de masquer (dans une certaine mesure) un tel détournement et mettrait cela dans le cadre de scénarios d'attaques.

Je terminerai en remerciant Laurent Guinchard & Vincent Maurin d'Orange Business pour les échanges endiablés sur le sujet et leur relecture.

PS : Utilisez la fonction "commentaires" afin de partager vos impressions et éventuelles questions.

Jean-François Audenard

Au sein de la direction sécurité du Groupe Orange, je suis en charge de la veille sécurité et de la sensibilisation à la sécurité. Franchise, optimisme et bonne-humeur sont mes moteurs quotidiens