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é. Elle a aussi le désavantage de rendre le service visé par l'attaque inaccessible à tous. On donne donc ici raison à l'attaquant même si son attaque est bloquée. D'après ce que j'ai compris, ce mécanisme a tout de même été amélioré par la suite avec la RFC5635, introduisant la possibilité de filtrer l'adresse source. 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 dans les mêmes proportions vers l'autre lien ? (j'aurais envie de dire oui) 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é appliqué à ce jour uniquement par Juniper et Alcatel et que donc le fournisseur doit disposer de ces équipements. Il y a 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. Cette méthode serait 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'aimerais que tout ça me soit confirmé. Merci pour le temps passé à lire mon message. Bonne journée ;-) Tristan --------------------------- Liste de diffusion du FRnOG http://www.frnog.org/