Les attaques par déni de service distribué (DDoS) surviennent lorsque des attaquants utilisent un grand nombre d’appareils pour tenter de saturer une ressource et d’en empêcher l’accès à des fins légitimes. Le plus souvent, les attaques DDoS visent des sites web, des applications ou des services exposés à Internet, mais elles peuvent également cibler des ordinateurs spécifiques, des passerelles ou des « ressources réseau internes».
Pour prévenir les attaques DDoS, nous devons d’abord comprendre les différences entre les diverses attaques DDoS réparties en trois grandes catégories : les attaques DDoS volumétriques, celles visant les protocoles et celles visant les applications. Toutefois, certaines attaques n’entrent dans aucune de ces catégories, et la plupart des attaquants combinent plusieurs méthodes pour rendre leurs attaques plus difficiles à stopper.
À lire également :
- Qu’est-ce qu’une attaque par déni de service distribué (DDoS) ?
- Comment stopper les attaques DDoS : prévention et réaction
- Les principaux fournisseurs de services de protection contre les DDoS
- 10 menaces pour la sécurité des réseaux que tout le monde devrait connaître
Quels sont les principaux types d’attaques DDoS ?
Les attaques DDoS peuvent généralement être regroupées en trois catégories :
- Volumétriques (volume brut de l’attaque)
- Protocolaires (détournement des protocoles informatiques)
- Applicatives (détournement des fonctionnalités des applications)
Ces trois catégories regroupent des dizaines de types d’attaques DDoS, notamment les attaques par inondation UDP, ICMP, IP, TCP et HTTP, ainsi que leurs variantes. Nous détaillons ci-dessous les catégories et les types d’attaques.
Attaques DDoS volumétriques
Les attaques DDoS volumétriques tentent de saturer la capacité de la ressource. Les serveurs sont submergés de requêtes, les réseaux de trafic et les bases de données d’appels.
Sur Internet, une attaque DDoS cherche à saturer la bande passante d’un site ciblé, et l’ampleur de l’attaque est généralement mesurée en bits par seconde. Les attaques DDoS volumétriques comprennent de nombreuses attaques par inondation (UDP, CharGen, ICMP) et des applications détournées.
Attaques par inondation UDP
Le protocole User Datagram Protocol (UDP) n’établit pas de session bidirectionnelle avec un serveur. Il se contente d’envoyer des paquets de données sans attendre de réponse.
Cette caractéristique constitue la configuration idéale pour les attaques par inondation qui tentent d’envoyer suffisamment de paquets pour submerger un hôte à l’écoute de son trafic UDP légitime. Les attaquants savent qu’à la réception d’un paquet UDP sur n’importe quel port, le serveur doit rechercher une application correspondant à ce port, et que les protocoles déclencheront des processus automatiques sur le serveur.
Les attaquants ciblent des serveurs sur Internet ou au sein d’un réseau, en utilisant spécifiquement l’adresse IP et le port intégrés aux paquets UDP. L’attaque cherche à submerger le serveur avec cette demande de traitement ou à saturer la bande passante du réseau.
Les attaques par inondation UDP peuvent notamment utiliser :
- Domain Name Service (DNS)
- Network Time Protocol (NTP)
- Simple Service Discovery Protocol (SSDP)
- Des données multimédias telles que des paquets audio ou vidéo
- Des paquets téléphoniques Voice over IP (VoIP)
- NetBIOS
- Des réseaux pair à pair (P2P) tels que les paquets BitTorrent ou Kad
- Simple Network Management Protocol (SNMP)
- Quote of the day (QOTD)
- Des protocoles propres aux jeux vidéo tels que Quake et Steam
Les variantes de l’attaque par inondation UDP comprennent :
- Inondation par fragmentation UDP : Cette variante de l’attaque par inondation UDP envoie au serveur victime des paquets plus volumineux, mais fragmentés. Le serveur tente d’assembler les paquets UDP indépendants, falsifiés et fragmentés, et peut être submergé au cours du processus.
- Attaques spécifiques par amplification UDP : Au lieu d’utiliser un grand nombre d’appareils compromis, les attaquants peuvent envoyer une requête UDP légitime à un grand nombre de serveurs légitimes, en usurpant l’adresse IP du serveur victime. Les réponses de ces serveurs légitimes submergent soudainement l’appareil ciblé. Les protocoles souvent utilisés dans les attaques par amplification comprennent NTP, SNMP et SSDP.
Inondation CharGEN
Développé en 1983, le protocole CharGEN était destiné au débogage, à la mesure et aux tests. Un serveur demandeur déclenche le protocole en envoyant une requête Transmission Control Protocol (TCP) ou UDP via le port 19. L’appareil récepteur répond alors au serveur via le même protocole avec :
- Des réponses TCP composées de caractères générés arbitrairement
- Des réponses UDP composées de nombres aléatoires
L’appareil émetteur ignore toutes les informations reçues du serveur hôte.
Les attaquants usurpent l’adresse IP du serveur cible et envoient une avalanche de requêtes à des appareils connectés à Internet qui exécutent CharGEN, tels que des imprimantes et des photocopieurs. Ces appareils répondent alors à la requête et bombardent le serveur de trafic sur le port 19. Si le pare-feu ne bloque pas le port 19, le serveur peut être submergé en tentant d’analyser et de traiter le trafic aléatoire.
Inondation ICMP (Ping)
Le protocole Internet Control Message Protocol se compose de messages d’erreur spécifiques et de commandes fournissant des informations opérationnelles, échangés entre des appareils réseau, telles que Time Stamp, l’erreur Time Exceeded, Echo Request et Echo Reply. Echo Request et Echo Reply forment ensemble la commande « ping ».
Les attaquants utilisent un grand nombre d’appareils pour inonder les serveurs de paquets Ping falsifiés, sans attendre de réponse. Le protocole oblige le serveur à recevoir les requêtes et à y répondre, ce qui consomme à la fois la bande passante entrante et la bande passante sortante.
Inondation par fragmentation ICMP
Variante de l’attaque par inondation ICMP, l’inondation par fragmentation ICMP envoie des paquets ICMP fragmentés plutôt que des commandes complètes. Le serveur victime tente de reconstituer des commandes valides à partir des paquets ICMP falsifiés et épuise ses ressources en essayant de relier des fragments volontairement indépendants.
Attaque par détournement d’application
Dans les attaques par détournement d’applications, les pirates compromettent des applications existantes à fort trafic sur des serveurs légitimes, tels que des serveurs P2P. Le trafic provenant d’une ou de plusieurs machines compromises est alors redirigé vers le serveur victime, puis le pirate quitte le système et le laisse fonctionner de manière autonome.
Comme l’application compromise tente d’établir une connexion valide avec des paquets correctement formés, la plupart des outils de défense autorisent la connexion. Le serveur victime est simplement submergé par l’afflux de trafic.
Attaques DDoS protocolaires
Au lieu de se limiter à un volume considérable, les attaques DDoS protocolaires exploitent les protocoles pour saturer une ressource spécifique, généralement un serveur, mais parfois aussi des pare-feu ou des répartiteurs de charge. Ces attaques sont souvent mesurées en paquets par seconde.
Attaque IP Null
Tous les paquets conformes à la version 4 d’Internet Protocol contiennent des en-têtes qui doivent indiquer si le protocole de transport utilisé pour le paquet est TCP, ICMP, etc. Toutefois, les attaquants peuvent définir une valeur nulle dans l’en-tête et, en l’absence d’instructions spécifiques pour supprimer ces paquets, le serveur consomme des ressources en tentant de déterminer comment les acheminer.
Attaques par inondation TCP
Le Transmission Control Protocol (TCP) régit la manière dont les différents appareils communiquent sur un réseau. Les diverses attaques par inondation TCP détournent le protocole TCP de base pour saturer les ressources au moyen d’adresses usurpées ou de paquets mal formés.
Pour comprendre les différentes attaques, il est utile de comprendre le fonctionnement de TCP. Le Transmission Control Protocol nécessite trois séquences de communication pour établir une connexion :
- SYN : L’appareil demandeur (point de terminaison ou serveur) envoie dans un paquet un numéro de séquence synchronisé à un serveur ou à un autre appareil de destination (point de terminaison).
- SYN-ACK : Le serveur répond au paquet SYN par une réponse composée du numéro de séquence synchronisé et d’un numéro d’accusé de réception (ACK).
- ACK : L’appareil demandeur renvoie au serveur un numéro d’accusé de réception (numéro ACK d’origine + 1).
La transmission prend fin au moyen d’une séquence de terminaison en quatre parties composée de :
- FIN : L’appareil demandeur envoie au serveur une demande de terminaison de session (FIN).
- ACK : Le serveur répond par un ACK à l’appareil demandeur, qui attend alors de recevoir le paquet FIN.
- FIN : Le serveur répond à l’appareil demandeur par un paquet FIN, éventuellement presque simultanément.
- ACK : L’appareil demandeur renvoie une réponse ACK finale au serveur et la session est fermée.
Lorsque les serveurs reçoivent un paquet TCP inattendu, ils renvoient un paquet RST (réinitialisation) afin de réinitialiser la communication.
Les attaques par inondation qui exploitent le protocole TCP tentent d’utiliser des transmissions TCP mal formées pour saturer les ressources du système.
- Inondation SYN : L’attaquant envoie de nombreuses requêtes SYN depuis une adresse IP usurpée ou depuis un serveur configuré pour ignorer les réponses. Le serveur victime répond par des paquets SYN-ACK et maintient la bande passante de communication ouverte en attendant la réponse ACK.
- Inondation SYN-ACK : Les attaquants envoient un grand nombre de réponses SYN-ACK falsifiées au serveur victime. Le serveur ciblé mobilise ses ressources en tentant d’associer les réponses à des requêtes SYN inexistantes.
- Inondation ACK : Les attaquants envoient un grand nombre de réponses ACK falsifiées à un serveur, qui mobilise ses ressources en tentant d’associer ces réponses à des paquets SYN-ACK inexistants. La fonction TCP PUSH peut également être utilisée pour ce type d’attaque.
- Inondation par fragmentation ACK : Variante de l’attaque par inondation ACK, cette méthode utilise des paquets fragmentés de la taille maximale de 1 500 octets pour exploiter la longueur maximale des paquets IP, soit 65 535 octets (en-tête compris). Lorsque les serveurs et d’autres ressources telles que les routeurs tentent de reconstituer les paquets fragmentés, la reconstitution dépasse les ressources allouées et peut provoquer des erreurs de débordement de mémoire ou faire planter la ressource.
- Inondation RST/FIN : Les attaquants utilisent des paquets RST ou FIN falsifiés pour inonder les serveurs et consommer leurs ressources en tentant d’associer les paquets à des sessions TCP ouvertes inexistantes.
- Inondation de session ACK multiples falsifiés : Dans cette variante, les attaquants envoient plusieurs paquets ACK suivis de paquets RST ou FIN afin d’imiter plus fidèlement le trafic TCP réel et de tromper les défenses. Bien entendu, les paquets sont falsifiés et le serveur consomme ses ressources en essayant d’associer ces faux paquets à des sessions TCP ouvertes inexistantes.
- Inondation de session SYN-ACK multiples falsifiés : Cette variante utilise plusieurs paquets SYN et ACK, également suivis de paquets RST ou FIN. Comme dans l’inondation de session ACK multiples falsifiés, les paquets falsifiés tentent d’imiter un trafic TCP légitime et gaspillent les ressources du serveur en essayant d’associer de faux paquets à du trafic légitime.
- Attaque IP homonyme : Pour exécuter cette méthode, les attaquants falsifient des paquets SYN qui utilisent l’adresse IP du serveur victime comme adresse IP source et destination du paquet. Ce paquet incohérent consomme alors des ressources, car le serveur tente soit de se répondre à lui-même (également appelée attaque de déni de service sur réseau local, ou attaque LAND), soit de résoudre la contradiction liée à la réception d’un paquet provenant de lui-même et associé à une communication ouverte avec lui-même dans le cadre de sessions TCP qu’il ne peut pas faire correspondre.
Attaque par session
Les attaquants n’ont pas besoin d’utiliser des adresses IP ou des paquets falsifiés pour mener une attaque DDoS. Une attaque par session utilise un certain nombre de bots pour atteindre ou dépasser la plage d’adresses IP sources et initier des sessions TCP légitimes avec le serveur cible. La session TCP légitime provenant d’adresses IP réelles échappe à la détection DDoS, mais l’attaque retarde ensuite les paquets ACK afin de consommer la bande passante et d’épuiser les ressources nécessaires au maintien des sessions vides.
Slowloris
À l’instar de l’attaque par session, l’attaque Slowloris tente de consommer les ressources du serveur au moyen de communications vides. Pour cette attaque, les attaquants envoient des requêtes HTTP partielles à un serveur web afin de maintenir ouvertes autant de sessions que possible, le plus longtemps possible. Ces attaques utilisent très peu de bande passante et peuvent être difficiles à détecter.
Ping de la mort
L’attaque Ping de la mort exploite la longueur maximale des paquets IP, soit 65 535 octets (en-tête compris), d’une manière similaire à l’inondation par fragmentation ACK. Comme la taille maximale des trames pour l’envoi de données sur un réseau Ethernet est généralement fixée à 1 500 octets, les attaquants envoient plusieurs fragments IP conformes à la limitation d’Ethernet, mais qui s’assemblent pour former un paquet dépassant la longueur maximale d’un paquet IP. Lorsque l’ordinateur destinataire réassemble les fragments IP, ceux-ci peuvent provoquer un débordement des tampons mémoire attribués au paquet ou faire planter l’ordinateur.
Attaque Smurf
Le programme malveillant appelé Smurf exploite les protocoles IP et ICMP pour envoyer un grand nombre de requêtes ping ICMP falsifiées à l’adresse de diffusion d’un routeur, avec l’adresse IP de l’appareil cible. Chaque appareil du réseau répond à la requête ping et peut submerger l’appareil récepteur. Depuis 1999, la plupart des routeurs ne transfèrent pas par défaut les paquets envoyés à l’adresse de diffusion, ce qui rend cette attaque moins efficace.
Attaque Fraggle
Les attaques Fraggle sont une variante de l’attaque Smurf qui usurpe des paquets UDP au lieu de paquets ICMP afin de submerger l’ordinateur victime de trafic en ciblant l’adresse de diffusion d’un routeur réseau. Chaque appareil du réseau répond aux requêtes UDP et peut submerger l’appareil récepteur. Par défaut, depuis 1999, la plupart des routeurs modernes ne transfèrent pas les paquets envoyés à l’adresse de diffusion, ce qui réduit l’efficacité de cette attaque.
Low Orbit Ion Cannon (LOIC)
Le logiciel open source Low Orbit Ion Cannon a été conçu comme un outil de test de résistance des réseaux qui envoie un grand nombre de paquets (UDP, TCP, HTTP) à un appareil cible. Malheureusement, les attaquants déploient cette attaque sur des botnets et l’utilisent pour exécuter des attaques DDoS.
High Orbit Ion Cannon (HOIC)
L’application High Orbit Ion Cannon a remplacé Low Orbit Ion Cannon par une application accessible au public, capable d’envoyer simultanément un grand nombre de requêtes GET et HTTP POST à 256 domaines différents au maximum. HOIC peut être plus puissante et plus perturbatrice que LOIC lorsqu’elle est utilisée par des attaquants malveillants.
Attaques DDoS applicatives
Les attaques DDoS applicatives ciblent les vulnérabilités dans les applications afin de provoquer la défaillance de l’application elle-même. Contrairement aux autres attaques qui se concentrent sur la perturbation de l’infrastructure, cette attaque vise les logiciels de la couche 7. Elle peut toutefois aussi entraîner la surcharge des processeurs ou l’épuisement de la mémoire, ce qui affecte le serveur et les autres applications. L’ampleur d’une attaque DDoS applicative se mesure en requêtes par seconde.
Par exemple, des processus exigeants en calcul, comme l’ajout d’un article au panier ou le passage à la caisse, peuvent être exploités au moyen de nombreuses requêtes simultanées afin de dépasser les limites du programme ou les ressources de l’ordinateur hôte. D’autres attaques ciblent des vulnérabilités spécifiques des logiciels ou utilisent des injections SQL pour perturber les bases de données.
Les attaques DDoS applicatives portant des noms spécifiques comprennent :
Attaques par inondation HTTP
Les attaques par inondation HTTP détournent les commandes HTTP pour tenter de submerger les sites web, les serveurs qui les hébergent et la bande passante utilisée pour y accéder. Les bots utilisés dans ces attaques peuvent envoyer plusieurs requêtes à la suite, de sorte que le grand nombre de machines du botnet augmente de manière exponentielle le trafic vers le site web cible.
- Attaques GET : Les attaquants utilisent un botnet pour envoyer un grand nombre de requêtes GET simultanées concernant des fichiers volumineux, tels que de gros fichiers PDF ou des vidéos.
- Attaques POST : Un grand nombre de bots envoient un grand nombre de requêtes POST simultanées contenant des fichiers volumineux à stocker sur le serveur cible.
- Attaques POST lentes et progressives : Souvent exécutées au moyen de l’outil R-U-Dead-Yet? (R.U.D.Y.), ces attaques envoient des requêtes HTTP POST indiquant qu’elles vont transmettre de grandes quantités de données, puis envoient de minuscules fragments de données très lentement. L’attaque évite les défenses contre les DDoS qui recherchent les attaques à gros volume et monopolise les ressources du serveur.
- Attaque par session unique ou requête unique : De nombreuses défenses anti-DDoS bloquent désormais les grands nombres de paquets entrants. Les attaquants exploitent donc une faille de HTTP 1.1 pour inclure de nombreuses requêtes différentes dans un seul paquet HTTP.
- Inondation HTTP fragmentée : Au lieu d’envoyer un grand nombre de requêtes valides, les botnets établissent des connexions HTTP valides et peuvent diviser les paquets HTTP en minuscules fragments envoyés aussi lentement que le serveur l’autorise. Cette forme d’attaque lente et progressive utilise un débit de paquets qui semble sûr pour de nombreuses défenses anti-DDoS, mais le logiciel ou le serveur maintient la session active et consomme des ressources avec une bande passante réservée. L’outil Slowloris permet ce type d’attaque.
- Inondation GET récursive : Les attaquants tentent de submerger les serveurs en demandant de longues listes de pages ou d’images. L’attaque ressemble à un comportement de navigation normal, mais le botnet consomme simplement des ressources qui ne peuvent désormais plus être utilisées pour le trafic légitime.
- Inondation GET récursive aléatoire : Variante de l’inondation GET récursive, cette attaque randomise les pages demandées afin d’éviter la détection.
ReDoS
Le déni de service par expression régulière tente de demander des modèles de recherche extrêmement complexes sur le plan algorithmique, qui gaspillent les ressources, voire provoquent des plantages du système.
Existe-t-il d’autres types d’attaques DDoS ?
Bien que les attaques volumétriques, protocolaires et applicatives représentent les formes les plus courantes d’attaques DDoS, certaines attaques ne rentrent dans aucune catégorie clairement définie.
Déni de service persistant avancé (APDoS)
L’APDoS est un type d’attaque utilisé par les pirates qui souhaitent causer de graves dommages. Elle utilise différents styles d’attaques, comme l’inondation HTTP et l’inondation SYN, et cible régulièrement plusieurs vecteurs d’attaque qui envoient des millions de requêtes par seconde. Les attaques APDoS peuvent durer des semaines, notamment grâce à la capacité du pirate à changer de tactique à tout moment et à créer des diversions pour échapper aux défenses de sécurité.
Attaques multivectorielles
Les attaquants peuvent déployer plusieurs attaques simultanées pour provoquer une attaque DDoS. Par exemple, un attaquant peut utiliser une attaque volumétrique pour distraire les défenseurs tout en exécutant simultanément une attaque par inondation HTTP à faible bande passante depuis un autre botnet.
Attaques DDoS zero-day
Les attaquants peuvent découvrir des vulnérabilités non divulguées dans des applications, des protocoles ou du matériel et exécuter une attaque DDoS. Lorsqu’elle exploite une nouvelle vulnérabilité, l’attaque est une attaque zero-day.
En résumé : stopper et prévenir les attaques DDoS
Nous comprenons les types d’attaques DDoS afin de pouvoir les stopper. Une grande variété de ressources peut être vulnérable à une variété encore plus vaste d’attaques DDoS. Les équipes chargées de la sécurité et des opérations doivent travailler ensemble pour trouver un équilibre entre l’accessibilité et les performances de la ressource, d’une part, et sa sécurité et ses risques, d’autre part.
La redondance sera essentielle pour la défense et la récupération après les attaques DDoS, mais on sait que des attaquants déterminés ont ciblé simultanément plusieurs serveurs web. Les équilibreurs de charge et la redondance seront donc insuffisants. Les attaques DDoS record font la une et illustrent l’énorme volume potentiel des attaques DDoS basées sur le web :
- Google a bloqué 46 millions de requêtes lors de la plus grande attaque DDoS de couche 7.
- Akamai a bloqué une hausse du trafic atteignant 809 millions de paquets par seconde.
- Impervia a bloqué une attaque comprenant 25,3 milliards de requêtes au total sur une période de quatre heures.
La défense contre ces attaques nécessite une combinaison complémentaire et coordonnée de mesures de sécurisation des appareils, de redondance, d’outils anti-DDoS et de services anti-DDoS — et peut-être l’assistance d’un service de prévention et de réaction aux attaques DDoS.
À lire ensuite :





