Utiliser BGP pour se protéger des DDoS
Bonjour,
Je prépare actuellement un dossier sur les DDoS et je cherche à déterminer les différents moyens de s'en prémunir au niveau routage BGP.
Au fil de mes recherches, j'ai pu constater qu'il existait différentes techniques :
La première consistant lors d'une attaque sur une IP précise à annoncer un préfix /32 à son fournisseur de trafic via une communauté BGP pour "blackholer" le trafic vers cette IP. Cette méthode semble fonctionner et a l'avantage de bloquer le trafic avant qu'il ne soit facturé mais à aussi le désavantage de rendre le service visé par l'attaque inaccessible à tous. On donne ici donc raison à l'attaquant même si son attaque est bloquée.
Je me pose en revanche une question; si l'on dispose de deux voisins BGP (deux fournisseurs de trafic) et que lors d'une attaque DDoS on identifie le lien par lequel l'attaque arrive, on annonce alors à ce voisin BGP en particulier notre IP à "blackholer". L'attaque sera-t-elle forcément re-dirigée vers l'autre lien ? (j'aurais envie de dire oui mais je ne suis pas sûr)
Ensuite il existe apparemment une deuxième méthode consistant à utiliser les PBR (Policy base routing) pour bloquer du trafic en s'appuyant sur les autres informations contenues dans le header d'un paquet IP (et non uniquement l'adresse de destination). En revanche il semblerait que ce ne soit pas vraiment réalisable dans la mesure où cela doit être réalisé du côté fournisseur et qu'il faut donc le contacter, le convaincre de mettre en place le PBR sur tous les routeurs de son backbone, puis de les retirer.
Pour moi cette solution n'est donc pas viable.
Après il existe également FlowSpec qui permettrait de pouvoir distribuer ses PBR à son fournisseur de trafic, sans nécessiter un nouveau canal de distribution car s'appuyant sur BGP (grâce à MP-BGP et les NLRI MP-REACH-NLRI/MP-UNREACH-NLRI/NLRI FlowSpec). En plus côté fournisseur cela à l'avantage de se répliquer automatiquement par annonce en iBGP. Cette techniques est détaillée par le RFC5575 introduisant donc de nouveaux NLRI avec de nouveaux composants ( Prefixe source (unique), Prefix de Destination (unique), Protocole (multiple), Port (multiple), Port de Destination (multiple), Port Source (multiple), Type ICMP, code ICMP, TCP Flags, Longueur de paquet, ...). Les actions à effectuer sont quant à elles définies dans des communautés étendues. Il faut bien entendu que les deux parties supporte ce mécanisme, d'ailleurs à ce propos, je crois que ce RFC a été mis en œuvre à ce jour uniquement sur Juniper et Alcatel et que donc le fournisseur doit disposer de ces équipements. Il y a ensuite une implémentation de FlowSpec dans ExaBGP, un logiciel libre, qui permet de faire de l'injection de route. Par contre j'ai cru comprendre que c'était peu pratique car tout d'abord il était difficile de déterminer une politique en fonction de la situation et que ensuite concrètement les fournisseurs de trafic n'autorisent pas cette méthode sur les sessions eBGP.
J'ai lu ensuite s'était probablement mis en place uniquement au sein des backbones des fournisseurs de trafic. Concrètement seul un peer, meshé avec les routeurs coeur, est autorisé à annoncer des inetflow. Ici j'ai pas vraiment compris comment on pouvait profiter de cela puisqu'on n'a pas la main en tant que client. Donc pour moi on en revient un peu à la deuxième solution; nous sommes obligés de contacter les fournisseurs de trafic pour leur spécifier les politiques à mettre en place (ex bloquer les flux UDP et ne laisser passer que les flux TCP lors d'une attaque DDoS basée sur UDP)
Si je me trompe n'hésitez pas à m'expliquer.
En faite j'ai besoin que tout ça me soit confirmé ou réexpliqué.
Merci pour le courage dont vous avez fait preuve pour lire mon message.
Bonne journée ;-)