La mitigation de DDoS est la pratique consistant à supprimer ou réduire l'impact d'attaques par déni de service distribuées (DDoS). Afin de pouvoir permettre aux services attaqués de rester disponibles, sa mise en place se décline en plusieurs mécanismes différant quant à leur angle de protection. Ces mécanismes se classent selon leur cible de protection, leur emplacement sur le réseau ainsi que l'instant auquel ils interviennent. Cette mitigation étant difficile à réaliser en se basant sur une seule technologie, plusieurs mécanismes de catégories différentes doivent parfois être utilisés dans le but de mener efficacement une mitigation de DDoS.

Problématique

La croissance, tant en nombre qu'en puissance, des attaques par déni de service distribuées (DDoS) est devenue un problème considérable pour un grand nombre d'entités : en 2017, le nombre d'organisations ayant fait face à ce type d'attaque était estimé à 33 %, contre 17 % en 2016. Ces attaques, visant à envoyer un grand nombre de requêtes afin de perturber les performances d'un service, ne sont pas sans conséquences : en 2015, la part des victimes faisant face à des délais anormaux de chargement de page (pouvant nécessiter jusqu'à plusieurs jours) a été évaluée à 58 %, et à 24 % le nombre d'organisations ayant fait face à une coupure totale de leurs services.

Les victimes de ces attaques font communément face à des attaques volumétriques et/ou applicatives et les vecteurs d'attaque sont souvent similaires : inondation (flooding) UDP, ICMP et TCP et/ou exploitation abusive des protocoles applicatifs. Cependant, la défense face à ces attaques doit faire face à plusieurs problèmes : la difficulté de traçabilité, ceci du notamment à l'emploi de méthodes d'usurpation d'adresse IP par l'attaquant ; l'évolution en complexité de ces attaques avec le temps et l'apparition de nouveaux vecteurs, permettant d'outrepasser les mécanismes de mitigation mis en place ; la baisse des coûts de déploiement de telles attaques, les rendant accessibles à plus d'attaquants potentiels.

Bien qu'il n'existe à priori pas de solution à l'épreuve de tout DDoS, plusieurs mécanismes existent et peuvent être mis en place afin de tenter de contrer et mitiger ce type d'attaque.

Classification des mécanismes de mitigation

Cible à défendre Défense d'infrastructure

La défense d'infrastructure vise à prévenir contre les attaques dirigées vers le matériel des couches basses du modèle OSI et ayant pour but le déni d'accès légitime aux ressources. Ces mécanismes de mitigation tentent d'empêcher la surcharge de la bande passante de la victime et la mise hors-service du matériel de routage.

Parmi les attaques contre lesquelles ces mécanismes tentent de protéger, on retient notamment les SYN-Flood (TCP-UDP) et les attaques par rebond (ICMP, TCP-UDP).

Défense d'application

La défense d'application vise à prévenir contre l'exploitation de vulnérabilités système et applicatives au niveau 7 du modèle OSI. Ces mécanismes tiennent compte du fait que l'attaquant imite un comportement lambda et tente de tirer parti de failles système, mises-à-jour non-effectuées et mauvaises configurations du serveur.

Le besoin de mécanismes de défense d'application est réel car de nombreux attaquants, s'étant heurtés aux mécanismes de défense d'infrastructure, se tournent vers l'attaque des couches logicielles et l'exploitation de faiblesses d'applications.

Les cibles à défendre sont principalement des services Web répondant à des requêtes HTTP et faisant face à des montées en charge anormales. De tels mécanismes empêchent la saturation de ces services, notamment en tentant d'identifier les canaux sources de ces attaques.

Emplacement

Basé à la source

Les mécanismes de défense basés à la source visent à détecter et filtrer le trafic le plus près possible de l'attaquant. Ils sont toutefois peu efficaces face aux attaques de DDoS par inondation (flooding) pour plusieurs raisons. Tout d'abord, les sources de telles attaques peuvent être éclatées en plusieurs domaines, pouvant rendre la détection précise de flux anormaux à la source difficile. De plus, la différenciation du trafic légitime et anormal à la source est compliquée étant donné que ces attaques reposent sur un nombre de sources dispersées. De ce fait, le volume de l'attaque n'est détectable qu'à proximité de la victime, là où les attaques se rejoignent.

Pour finir, les motivations au déploiement à la source reposent sur des bases instables quant à qui paierait l'installation de tels mécanismes de défense. En effet, les FAI et systèmes autonomes à la source ont peu d'intérêt à allouer des ressources (et/ou perdre en performance) afin de protéger les victimes chez d'autres FAI.

L'endroit idéal pour mitiger une attaque DDoS reste néanmoins son point de départ, en empêchant l'attaquant de pouvoir atteindre sa cible et même d'autres réseaux. Ces filtres permettent ainsi d'empêcher le gaspillage de bande passante sur le chemin jusqu'à la cible.

Basé à la destination

Les mécanismes basés à la destination sont plus faciles à implémenter. En effet, de par leur localisation à proximité de la victime, ils sont capables de voir le trafic à destination de la cible dans son entièreté et mieux l'analyser pour détecter une attaque.

Toutefois, ces mécanismes n'entrant en jeu qu'à destination, certains considèrent que cette intervention tardive cause un gaspillage de bande passante sur le chemin jusqu'à la cible. Se trouvant également sur le chemin du flux agrégé, ils peuvent devenir eux-mêmes l'objet d'une attaque visant à saturer leurs liens réseau.

Basé dans le réseau

Le réseau, dans sa globalité, peut également constituer un point d'implantation de mécanismes de défense. Toutefois, le matériel de transport de paquets opère à la couche 2 et 3 du modèle OSI et ne permet donc pas un filtrage des flux visant le DDoS d'une application à la couche 7.

Hybrides

Chaque mécanisme à emplacement unique précédent possédant des inconvénients, leur mitigation ne constitue pas une défense efficace contre toutes les attaques, alors que l'approche visant à faire communiquer ces composants prétend offrir une meilleure efficacité.

La défense Hybride vise à combiner les points forts de chaque solution en déployant des mécanismes de défense à plusieurs endroits tels que la source, la destination ou le réseau intermédiaire et en les faisant interagir. Un mécanisme hybride consiste généralement en la combinaison d'un filtrage à hauteur de la source et une limitation de la bande passante pour le trafic attaquant à hauteur de la cible.

Les points en défaveur de cette organisation sont néanmoins similaires à ceux des mécanismes précédents : ajout de complexité et besoin supplémentaire de ressources afin de pouvoir communiquer entre les dispositifs placés, manque d'incitants à la coopération entre les points de déploiement et besoin de confiance envers les mécanismes placés par autrui.

Instant d'intervention

L'intervention peut avoir lieu en trois temps. Cependant, en l'absence de solution à toute épreuve, une défense complète ne devrait pas se limiter à l'intervention en un seul temps pour contrer un DDoS.

Antérieur à l'attaque

Le meilleur moment pour interrompre une attaque DDoS est avant son lancement. En d'autres termes, la prévention est la meilleure défense contre le DDoS. La plupart des mécanismes de prévention visent à fixer les vulnérabilités de la cible (protocoles faillibles, authentifications vulnérables, failles système ou réseau...) qui pourraient être exploitées au lancement d'une attaque DDoS.

Durant l'attaque

L'étape suivante dans la défense contre une attaque DDoS est la détection de l'attaque, qui a lieu au moment où l'attaque survient. Certains mécanismes détectent des flux d'attaque lorsque les liens de communication atteignent un certain niveau de congestion. D'autres détectent des attaques par inondation (flooding) en constatant des comportements inhabituels sur les couches transport et applicatives.

Postérieur à l'attaque

Une fois l'attaque détectée, le mécanisme de défense doit pouvoir effectuer deux actions : trouver la source et entreprendre une réponse à l'attaque.

Les mécanismes visant à identifier la source doivent trouver un moyen de remonter le trafic. Ils tentent pour cela de traverser les routeurs en ordre inverse, et marquent les sources fiables (non-spoofées) de paquets afin de pouvoir identifier les paquets spoofés (usurpés) à l'aide de mécanismes comme le hop-count filtering.

Ceux visant à entreprendre une réponse ont pour objectif de mettre fin à l'attaque. La plupart des outils de mitigation de DDoS appliquent des politiques de limitation (throttling) ou mettent en place des filtrages de paquets le plus en amont possible afin de pouvoir bannir les sources de l'attaque (history-based IP filtering).

Techniques proposées

Le tableau ci-dessous liste non-exhaustivement différentes techniques de mitigation existantes selon leurs critères de classification.

Intitulé Cible Emplacement Instant d'intervention Situation OSI Filtrage Ingress/Egress Infrastructure Source Pendant l'attaque Routeurs (Réseau) D-WARD Infrastructure Source Pendant l'attaque Routeurs (Réseau) MULTOPS Infrastructure Source Pendant l'attaque Routeurs (Réseau) Pare-feu inversé Infrastructure Source Pendant l'attaque Pare-feu (Réseau) Random Port Hopping Application Hybride (Source - Destination) (Avant +) Pendant l'attaque Applicatif Challenge Application Destination (Avant +) Pendant l'attaque Applicatif Patchs de sécurité Application Destination Avant l'attaque Applicatif

Techniques contre DDoS d'application

Random Port Hopping

La technique proposée par le Random Port Hopping consiste à forcer le client à utiliser des numéros de port spécifiques afin de pouvoir joindre le serveur, si le client n'utilise pas le bon port, le serveur jettera ses paquets. En pratique, le serveur envoie tout d'abord une clé cryptographique qui permet au client de déterminer le port sur lequel le contacter pour un certain laps de temps. Au-delà de ce laps de temps, le port change et le client doit le ré-obtenir via le calcul avec la clé du serveur. Les ports étant inconnus, ce mécanisme permet de se prémunir contre les botnets envoyant sans cesse des requêtes.

Challenge

Les protocoles de Défi-Réponse (PDR) ont pour but la confirmation de la présence d'un utilisateur légitime. La technique de prévention d'accès illégitime la plus commune consiste en un test de Turing sous la forme d'un CAPTCHA, cette méthode est dès lors devenue une catégorie de protocoles Défi-Réponse favorite. Ces puzzles doivent être incontournables et résolus en un temps imparti, et le serveur doit pouvoir vérifier la solution proposée en utilisant le moins de ressources possibles. Les PDRs peuvent prendre d'autres formes tels que des tests graphiques, également populaires et invitant l'utilisateur à réagir à la présentation d'une image au lieu de texte (qui pourrait être interprété). Ces images sont parfois distordues, incomplètes ou floutées afin de rendre la résolution du défi inaccessible à une machine participant au DDoS.

Les attaquants reposant souvent sur de larges réseaux de bots. De ce fait, un challenge, bien que simple en principe, constitue un moyen efficace de contrer les attaques basées sur des requêtes à haute fréquence comme le DDoS.

Techniques contre DDoS d'infrastructure

Filtrage Ingress/Egress

Les mécanismes de filtrage Ingress/Egress ont été proposés afin de détecter et filtrer les paquets avec une IP usurpée (spoofed) au niveau des routeurs source sur base de groupes d'adresses IP internes marqués comme valides. Cette technique peut aisément être implémentée au niveau des FAI pour mitiger leur trafic sortant. Cependant, le filtre ne détectera pas les paquets usurpés si leur adresse source se trouve toujours dans la liste autorisée.