les 5 minutes du professeur Audenard - épisode 3 : CleanPipe, BGP et GRE

L'objectif d'une attaque en déni de service vise à rendre inaccessible ou inopérant un site Internet. Parmi les attaques les plus fréquemment lancées, ce sont les attaques en déni de service distribué (DDoS : Distributed Denial of Service) qui sont les plus fréquentes.

Ce type d'attaque s'appuie sur un principe simple, celui du nombre qui fait la force : Il suffit de faire en sorte que plusieurs milliers machines sur Internet lancent de façon synchronisée de multiples requêtes vers leur cible.
Les machines lançant ces attaques peuvent le faire soit à l'insu de leur propriétaire (cas d'un « botnet » ou réseau de machines zombies) ou alors le font sur demande explicite et consciente d'une personne (cyber hacktivisme).

Saturation des ressources
Dans le deux cas, le résultat est le même : les capacités de traitement du site sont dépassées, celui-ci est inaccessible. La saturation peut concerner tant la bande passante de l'accès réseau, des tables de session d'un firewall, la CPU des serveurs web, ...

En fonction du point de saturation, on peut constater un effet boule de neige : Si c'est la bande passante réseau qui est totalement consommée inutilement alors, non seulement le site visée par l'attaque sera bloqué mais tous les autres serveurs de la plateforme seront aussi inaccessibles.

 


[Fr] les 5 minutes du professeur Audenard... par orange_business

Le trou-noir (« blackholing ») à la rescousse
Le trou-noir est l'une des contre-mesures utilisée communément pour contrer une attaque en DDoS. Le fournisseur d'accès Internet va activer, au sein de son réseau, une règle de routage spécifique afin de détruire tous les flux à destination de l'adresse IP ciblée par l'attaque.

Cela aura pour effet immédiat de bloquer les flux d'attaques en amont de l'accès réseau et donc d'annuler tout effet de saturation. Activer un blackholing ne nécessite aucun équipement spécifique car tout est réalisé via les fonctions de routage de paquets nativement présentes dans les équipements réseau.

... mais une contre-mesure trop puissante
Cependant, le trou-noir (ou black-holing) est une contre-mesure pas totalement satisfaisante : Le site visé par l'attaque est effectivement inaccessible car le trou-noir ne sait pas faire la distinction entre bons et mauvais paquets : Il détruit TOUS les paquets dirigés vers une adresse IP.

On dit que le trou-noir va dans le sens de l'attaquant mais permet de restaurer l'accessibilité des autres services/serveurs localisés à coté. Certaines variantes de trou-noir permettent de minimiser ces effets néfastes mais ne seront pas abordés ici.

Le trou-noir reste un élément incontournable d'une stratégie de réponse aux attaques en DDoS mais il n'est pas totalement satisfaisant. C'est pourquoi il existe des systèmes connus sous le terme général de « CleanPipe »

Un filtrage temps-réel : Le CleanPipe
A contrario du trou-noir, un équipement de type CleanPipe permet de contrer de façon plus juste l'attaque. Cet équipement est typiquement déployé au sein du réseau de l'opérateur ou du fournisseur d'accès Internet.

L'ensemble des flux à destination du site attaqué seront redirigés vers le CleanPipe afin qu'ils soient analysés et qu'un tri puisse être effectué : Les paquets ou requêtes identifiés comme étant malicieux pourront subir un traitement spécifique alors que les flux considérés comme sains ou légitimes seront eux transmis vers leur destination finale.

Subtil équilibre entre richesse fonctionnelle et facilité d'utilisation
Un équipement de filtrage doit proposer un juste équilibre entre le nombre de paramètres de configuration et une facilité de mise en œuvre.

Un équipement fonctionnellement trop riche sera un désavantage car il nécessitera un niveau de compétence trop élevé pour être utilisé facilement. Au contraire, un équipement proposant des réglages trop simples sera inopérant pour contrer des attaques dont les caractéristiques varient ou évoluent rapidement dans le temps.

Capacité des équipements
Outre les capacités intrinsèques d'un tel équipement, il devra être capable de traiter les flux et de les traiter. Cette catégorie d'équipements doit donc être capable d'encaisser d'importants débits (plusieurs Gbits/s), de gérer plusieurs centaines de sessions simultanées et d'analyser à un niveau applicatif les flux pour ensuite les classifier.
Certains de ces équipements sont basés sur du matériel classique mais intègrent des cartes d'acquisition et de traitement réseau spécifiques proposant un traitement accélérée pour la capture et la classification des paquets.

Accès réseaux au CleanPipe
Les accès réseau situés en amont et en aval de ces équipements sont à soigner tout particulièrement. En effet, ces accès réseau situés au dessus de l'équipement devront être capables d'acheminer les flux d'attaques jusqu'à lui. Une attaque ne doit pas être capable de saturer ces accès, sinon c'est le CleanPipe qui est en DDoS ! Les techniques d'agrégation de liens réseaux et d'empilement de CleanPipe, que ce soit de façon centralisée ou distribuée sont des méthodes qui permettent d'apporter des réponses à ces questions.

Après nettoyage, les flux empruntent des accès réseau distincts pour arriver à leur destinataire final. Le dimensionnement de ces accès est plus simple car l'on sait, à priori, les bandes passantes nécessaires : C'est la bande passante de l'accès client ou de la plateforme à protéger. Si plusieurs accès doivent être protégés simultanément, alors une simple addition peut donner un ordre de grandeur. Après, on optimise : Tous les accès ne seront pas attaqués simultanément !

Par ailleurs, l'accès réseau pour les flux d'administration doivent être distincts des deux autres et suffisamment sécurité pour rester disponible et performant en toute situation. Il va de soit que les moyens de contrôle d'accès (authentification, traçabilité, ..) utilisation de protocoles sécurisés sont un « must have ».

Activation du CleanPipe : BGP et tunneling GRE
Une attaque en DDoS devra tout d'abord être détectée et ses caractéristiques définies : adresse(s) IP ciblée(s), débit, port(s) source/destination, nombre de paquets par seconde, etc...). Si l'activation du CleanPipe est décidée, alors il sera nécessaire de détourner le trafic vers l'équipement de nettoyage pour ensuite, une fois le trafic malicieux écarté, réinjecter celui-ci pour qu'il termine son voyage et soit délivré à destination. Pour ce faire, rien de magique : Des choses simples font très bien l'affaire dans la majeure partie des situations.

Rediriger le trafic vers le centre de nettoyage
La redirection du trafic est réalisée via un changement des règles de routage au sein du réseau de l'opérateur : Typiquement, il s'agit d'annoncer des routes plus spécifiques (ou plus « fortes ») afin que le trafic soit dirigé vers le point d'entrée réseau de la plateforme de CleanPipe. Cette injection de route est souvent réalisée à l'aide du protocole BGP.

Ce cette façon, le trafic destiné aux adresses IP ciblées par l'attaque (donc des flux sains et des flux d'attaque) changent de chemin et vont emprunter un parcours différent pour être analysés, traités et subir un « nettoyage en profondeur ». Une fois le nettoyage réalisé, ces flux devront être réinjectés dans le réseau via les liens de sortie du CleanPipe.

A ce moment, problème : Sans précaution, il y a de grandes chances que le trafic « boucle », c'est-à-dire qu'il soit de nouveau renvoyé à l'entrée du CleanPipe.

Réinjecter le trafic après nettoyage
L'un des cas ou ce problème de bouclage n'a pas lieu d'arriver c'est dans le cas ou le CleanPipe se trouve entre deux réseaux distincts gérés dans des AS (Autonomous System) BGP différents. Dans un tel contexte, le trafic « rentre » dans le CleanPipe depuis un AS et il « sort » directement dans un autre AS.

Dans le cas ou les « pattes » d'entrée et de sortie du CleanPipe se trouvent sur le même AS, alors il faut ruser pour éviter ce problème de « bouclage ». Pour cela, il existe une technique basée sur la mise en place d'un tunnel GRE (un « tube réseau ») qui permet de transporter du trafic IP en l'encapsulant dans de nouvelles adresses IP.

Un tunnel GRE (Generic Routing Encapsulation) va donc être monté entre la sortie du CleanPipe et un équipement réseau le plus proche possible de l'accès réseau du client ou de la plateforme de service. Comme indiqué plus haut, ce tunnel GRE devra utiliser des adresses IP différentes de celles qui sont l'objet de l'attaque et donc du nettoyage. Toutes adresses IP routables sur les réseaux traversés sont utilisables : Il peut s'agir d'adresses IP mises à disposition par l'opérateur par exemple.

Une fois ce tunnel réseau mis en place, le trafic en sortie des équipements du CleanPipe est injecté dans le tunnel. Ce dernier se chargeant de l'acheminer à sa destination.

En conclusion
Les équipements de type CleanPipe permettent d'éviter les conséquences d'une attaque en déni de service distribué (DDoS). Les opérateurs et fournisseurs d'accès Internet intègrent ce type d'équipement au sein de leur réseau pour protéger leurs plateformes et leurs clients de ce type de menaces.
Comme nous avons pu le voir, l'intégration de ces équipements spécialisés dans le filtrage est réalisée via des fonctions de routage et d'encapsulation du trafic.
 

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