Tout ce que vous avez toujours voulu savoir sur les attaques DDoS

aboun selma
INSA TC
Published in
11 min readNov 12, 2020

On entend souvent parler de ces attaques dévastatrices sans savoir réellement quel est le fonctionnement de ces attaques, le mode d’action des pirates informatiques qui les conduisent, mais surtout les moyens de s’en protéger. Eh bien cher lecteur, c’est ce que nous tenterons de t’expliquer dans cet article !

Qu’est-ce qu’une attaque DDoS ?

Imaginez que vous soyez propriétaire d’un café. Un jour vous ouvrez votre café et une foule de gens se rue dans votre boutique. Vous vous dites que ce sera sûrement une bonne journée pour les affaires ! Ce sera en effet une journée très chargée, mais elle ne sera pas bonne pour les affaires. Effectivement, vous voyez que bien trop de personnes occupent des sièges sans même passer commande. Ils continuent à entrer, occupent de l’espace inutilement et empêchent vos véritables clients d’acheter quoi que ce soit. Finalement, l’afflux de gens trop important finit par complètement bloquer l’entrée de votre café et vous n’êtes même plus en mesure de servir vos véritables clients ! Eh bien ce phénomène, c’est l’équivalent d’une attaque DoS dans la vie réelle.

Les attaques DoS ou Denial Of Service (Déni de Service) sont des attaques courantes et relativement répandues aujourd’hui. Elles existent en fait depuis les tous débuts d’internet, puisque la première attaque DoS a été conduite en 1974 par David Dennis, un jeune garçon de 13 ans. Dennis écrivit un programme utilisant la commande « external », obligeant alors tous les ordinateurs des salles de labo de l’université à proximité de lui à tous s’éteindre en même temps. Effectivement, la particularité de ces attaques est leur facilité d’exécution puisqu’elles peuvent être conduites depuis à peu près n’importe où ! Ce genre d’attaque est typiquement utilisé pour bloquer l’accès à un site, ou plus généralement à un service informatique, paralysant ainsi potentiellement toute une activité d’entreprise.

Les attaques DoS peuvent utiliser de basiques attaques « ping flood » (ou ICMP flood que l’on détaillera plus loin) où l’attaquant envoie plus de requêtes ping que ce que le serveur cible ne peut traiter, amenant à handicaper le serveur. Quiconque avec une machine connectée à internet et un minimum de connaissance est capable de lancer ce genre d’attaque, comme nous l’avons vu avec l’exemple de Dennis. Mais depuis les années 2000, les attaques causent encore plus de dégâts, notamment avec l’évolution de ces simples attaques DoS, où la source de l’attaque provient d’un seul serveur, vers des Distributed DoS (DDoS), dont l’attaque provient d’un réseau de serveurs distribués.

Figure 1. Illustration d’une attaque DDoS

Si on imagine maintenant qu’un gros concurrent peu scrupuleux de votre café décide de réduire en esclavage de faux clients pour lancer des cailloux sur votre café (Dieu merci, cette hypothèse est aujourd’hui peu probable), tant et si bien qu’aucun réel client ne soit en mesure de rentrer, on pourrait dire que votre café est en proie à une méchante attaque ! Eh bien pour les attaques DDoS le principe est un peu le même : elles utilisent un botnet (un réseau de zombie) composé de tous types d’appareils mis en réseau compromis, d’un simple ordinateur à des webcams ou des télévisions intelligentes, pour attaquer en masse une cible (voir Figure. 1). Du fait de leur manque de “maturité”, les appareils connectés sont souvent sujets à des attaques, tirant parti des vulnérabilités de sécurité de l’IoT (Internet of Things), mais surtout de leur mauvaise utilisation : mots de passe admin faibles, absence de correctifs logiciel, utilisation de l’équipement sur un réseau publique sans les protections nécessaires, etc.

Ces attaques, comme nous le verrons plus précisément dans la suite de cet article, sont plus difficiles à détecter et à s’en protéger, puisque contrairement aux attaques DoS qui n’utilisent qu’une seule adresse IP source, les DDoS utilisent toutes les adresses de son « armée », et même parfois de fausses adresses !

Voyons maintenant quels sont les 3 types d’attaques DDOS :

Attaques basées sur le volume

Ces attaques se basent sur le volume de données envoyées à la target. Le principe est d’inonder (d’où le terme flooding) le serveur cible jusqu’à ce qu’il ne puisse plus traiter aucun paquet. Pour cela, on peut saturer le « tuyau », c’est-à-dire remplir la bande passante de ce serveur. C’est en fait le type d’attaque DDoS le plus répandu.

Attaques de protocole : amplification

Imaginons maintenant que le fameux concurrent de votre café donne votre numéro à une personne un peu trop bavarde, qui vous appelle et commence à vous raconter ses vacances alors que je vous n’avez rien demandé du tout, ça risque d’occuper votre ligne téléphonique pendant un moment. Une attaque par amplification fonctionne sur le même principe et exploite la façon dont les serveurs traitent des données afin de saturer et submerger la cible visée (comme des répartiteurs web, des pare-feu ou des serveurs web). Aussi, le botnet enverra un paquet de données contenant une adresse IP source usurpée (celle de la cible, ici c’est vous, le gérant du café) au serveur afin qu’il les assemble.

Attaques d’application

Ces attaques sont en fait les plus sérieuses et les plus sophistiquées, car elles ciblent les applications (d’où le terme employé également d’« attaque couche 7 »), en exploitant les vulnérabilités que celles-ci comportent. Les attaques d’application fonctionnent toujours de la même manière mais demandent, contrairement aux 2 précédentes, beaucoup moins de ressources étant donné qu’elles ciblent les faiblesses au sein des serveurs ciblés. Aussi, beaucoup moins de trafic web est nécessaire pour mettre en œuvre l’attaque afin de monopoliser les processus et protocoles sur ces points faibles, mais rendant aussi l’attaque bien plus difficile à détecter en raison du faible volume de trafic généré qui semble légitime.

Détection d’attaques DDoS ?

Aujourd’hui, n’importe qui est capable de lancer ce genre d’attaque. Certains vont même jusqu’à louer des botnets déjà existants sur le marché noir (voir figure 2), pour mettre en œuvre leurs plans malveillants . En général, les plus touchés par ces attaques ne sont pas des internautes lambda, mais plutôt les API de grosses entreprises qui représentent des cibles de choix, soit de par la conviction personnelle de l’attaquant, soit de par l’important gain pécunier qu’il pourrait percevoir. Ces entreprises risquent gros avec ce genre d’attaques, simplement à cause de la plus ou moins longue indisponibilité causée par une attaque DDoS (plateformes de vente injoignables, vol de fonds ou de données utilisateurs, impact sur l’image de marque de l’entreprise, etc.).

Figure 2. Exemple de vente de botnet sur Twitter

Il est donc essentiel pour ces PME de se doter de moyens efficaces pour détecter ces attaques, bien que cela ne soit pas toujours évident. Plusieurs méthodes existent dont nous présenterons une liste non exhaustive dans la suite.

Analyse de trafic

Cette technique est parmi les plus utilisées puisqu’elle repose essentiellement sur l’analyse du trafic et de la nature des paquets qui transitent sur le réseau. Le but est d’étudier le trafic en situation normale et de le comparer avec un scénario d’attaque. Par exemple, en regardant le graphique d’utilisation de la bande passante d’un serveur et que l’on constate un pic de trafic en fin journée, alors que l’étude du trafic normal (voir figure 3) ne montre aucun supposé trafic à ce moment-là, il y a fort à parier qu’une attaque est en train de se produire si un tel trafic n’est pas justifié. Cette analyse peut se faire aussi bien manuellement qu’heuristiquement en établissant des statistiques ainsi qu’une métrique pour l’utilisation de la bande passante du trafic.

Figure 3. Exemple d’analyse de trafic

Comptage de paquets

Cette technique a des avantages et des inconvénients. Son principal avantage est que c’est un mécanisme de détection relativement facile à implémenter puisqu’il consiste simplement à compter le nombre de paquets IP malformés et d’alerter l’administrateur réseau au bout d’un certain seuil. En pratique cela semble être une bonne solution, et elle l’est souvent, mais elle est également la source de nombreux faux-positifs, car la technique n’est pas assez ciblée. Si il y a trop de fausses alertes, l’utilisateur ne sera plus vigilant à ces alertes et finira par les ignorer systématiquement jusqu’au moment où une vraie alerte sera détectée. L’idée serait alors d’optimiser au mieux ce seuil en étudiant précisément le trafic.

NIDS

Les NIDS (Network Intrusion Detection Systems) sont des systèmes de détection d’intrusion ayant pour objectifs de détecter des activités malveillantes sur la cible qu’ils surveillent et qui déclenchent une alerte dès lors qu’un comportement anormal est repéré. Malheureusement, ces systèmes ne sont efficaces que jusqu’à un certain volume de donné, environ jusqu’à 1Gbps. Mais dès ce seuil dépassé (ce qui sera surement le cas pour une attaque DDoS pouvant aller jusqu’à quelques dizaines de Gbps), ce système aura bien trop de mal à fonctionner et va arrêter de trier les paquets et les perdre : on va parler de packet loss. On comprend donc que ce système n’est donc pas très efficace pour détecter de grosses attaques DDoS.

Les attaques les plus répandues

Figure 4. Illustration d’une attaque TCP Syn-flood

TCP Syn-flood : est une attaque DDOS qui exploite une partie du 3 way handshake utilisé par le protocole TCP. L’attaquant envoie un grand nombre de paquets SYN au serveur ciblé. Puis le serveur répond pour chaque paquet SYN par un paquet SYN-ACK sur l’ensemble des ports ouverts.

Tant que le serveur n’a pas reçu l’ACK du paquet envoyé, il ne peut pas fermer la connexion en envoyant un paquet RST ( RESET) et la connexion reste ouverte. Enfin, tout accès au serveur sera refusé car il a dépassé sa capacité de traitement de requêtes où bien il ne dispose plus de ports à ouvrir pour les nouvelles connexions.

Figure 5. Illustration d’une attaque ICMP flood

ICMP flood : ce type d’attaque DDOS se base sur le protocole ICMP qui est utilisé pour la communication entre deux appareils en mode connecté. Généralement, ICMP est utilisé par un grand nombre d’application pour tester et diagnostiquer la santé d’un appareil ainsi que sa connectivité en mesurant le temps d’aller retour des messages ICMP échangés.

Il faut tout d’abord connaître l’adresse IP du serveur cible ainsi que de disposer d’une bande passante supérieure à celle de la cible. Ce type d’attaque DDOS peut être avoir lieu

  1. Sur le même réseau local : l’attaquant doit disposer d’un accès physique à la machine cible afin de récupérer son adresse IP.
  2. Sur un routeur : l’attaque est plus grave dans ce cas car si l’attaquant réussit à mettre hors service le routeur cible, toutes les machines connectées à ce dernier perdront tout accès au monde extérieur.
Figure 6. Illustration d’une attaque UDP flood

UDP flood : l’attaquant inonde un port de la machine cible avec des datagrammes UDP encapsulés dans des paquets IP. Ensuite, la cible réceptrice vérifie l’application qui écoute sur le port mais elle ne trouve aucune application ce qui entraîne le renvoie du paquet avec le message “ Destination Inaccessible”. La plupart des attaquants exécute ce type d’attaque car le protocole UDP ne nécessite pas le 3 way handshake et la vérification du trafic comme en TCP.

DNS amplification : est un type d’attaque par réflexion qui utilise les serveurs DNS accessibles au grand public pour inonder une machine cible avec un grand nombre de paquet UDP.

Pour exécuter une attaque par amplification DNS, l’attaquant envoie une requête DNS avec l’adresse IP de la cible vers un serveur DNS disponible. Ensuite, le serveur DNS envoie une réponse vers cette adresse falsifiée (voir figure 7).

L’amplification de ce type d’attaque se base sur l’envoie d’un grand nombre de fausses requêtes vers plusieurs serveurs DNS qui répondent en même temps en envoyant une réponse DNS à la machine cible. Pour amplifier une attaque DNS, on peut utiliser l’extension de protocole DNS qui permet d’envoyer des requêtes DNS volumineuses en passant de 60 octets à plus de 4000 octets avec un facteur d’amplification de 70:1.

Figure 7. Illustration d’une attaque DNS amplification

Comment s’en prémunir ?

  • Anti-DDOS by OVH : est une technique développée par l’entreprise OVHcloud fournisseur des solutions Cloud qui a développé son propre mécanisme de protection contre les attaques DDoS (voir figure 8). Cette technique consiste à analyser rapidement et en temps réel tous les paquets qui transite dans le réseau. Ce qui permet de détourner le trafic entrant sur votre serveur vers un autre serveur qui filtrera ce trafic pour laisser passer les éléments légitime et séparer les éléments non légitimes du reste.
Figure 8. Principe d’un anti-DDoS

Dans la solution proposé par OVH, le système qui gère ce filtrage est appelé VAC. Ce dernier permet de filtrer tout le trafic entrant en passant par plusieurs entités à savoir :

  • Le pre-firewall : D’après notre compréhension du système, nous pensons que le rôle du pre-firewall est d’analyser tout type de trafic entrant afin d’intervenir dans le cas de détection d’une attaque. Lorsqu’une attaque DDOS survient, le pré-firewall prend en charge une partie du trafic à analyser et envoie le reste au filtre réseau. Pour isoler le trafic susceptible, le pré-firewall route la partie à analyser vers le filtre réseau en utilisant des VRF dédiés.
  • Le filtre réseau : conçu pour limiter l’exposition aux attaques provenant du monde extérieur. Il s’active seulement en cas d’attaque DDOS et il prend en charge l’analyse d’une partie du trafic entrant en se basant sur 20 règles de filtrage adapté au type d’attaque DDOS
  • Le shield : une solutions plus avancée qui intervient dans le cas d’attaque par amplification.
  • L’armor : le filtre le plus avancé de la solution VAC qui intervient pour modérer les attaques sophistiqués (voir figure 9).
Figure 9. La solution Armor

Déroutement du trafic par des annonces BGP

Cette méthode consiste à diriger l’ensemble du trafic à destination d’un bloc d’adresses IP vers le fournisseur de service de protection. Afin de mettre en place cette redirection de trafic entrant, une interconnexion entre l’entité concernée et le fournisseur du service de protection est nécessaire. Grâce à cette liaison, le fournisseur enverra le trafic légitime vers la cible (voir figure 10).

En premier temps, la cible annonce au fournisseur de service les routes qui permettent d’atteindre le bloc d’adresse IP en utilisant le protocole BGP. Puis, la cible annonce le même bloc d’adresse à l’opérateur de transit ce qui entraîne la redirection du trafic entrant vers le fournisseur de service de protection pour l’analyser.

Ce dernier filtre l’intégralité du trafic entrant et envoie seulement le trafic légitime vers la la cible à l’aide du tunnel sécurisé déjà établi entre les deux entités. Par contre, cette solution ne concerne que le trafic entrant. Le trafic sortant ne passe pas par le fournisseur du service de protection, mais il passe seulement par l’opérateur de transit.

Figure 10. Principe de fonctionnement du déroutement de trafic

Pour finir, vous l’aurez bien compris mais si les attaques DDoS peuvent paraître relativement “simples”, ses conséquences se révèlent souvent dévastatrices. Il est donc bien important de pouvoir les détecter avant que de gros dégâts ne soient commis, mais surtout de s’en prémunir de la manière la plus adaptée à votre environnement. Ça tombe bien, cet article vous en donne toutes les clés ! Bon courage ;)

Sources :

--

--