Ticker

6/recent/ticker-posts

Ad Code

Responsive Advertisement

HTTP Flood : les attaques DoS visant les serveurs WEB

Dans les articles précédents, je détaillais les types d’attaques Dos comme le Syn Flood, UDP Flood ou les attaques DoS par amplification.
Parmi les autres types, on trouve aussi le HTTP Flood, une attaque DoS Layer 7.
Il s’agit d’attaquant visant les serveurs WEB par une saturation HTTP.

Dans ce tutoriel, je vous explique ce qu’est le HTTP Flood, les méthodes et comment les mitiger.

HTTP Flood : les attaques DoS visant les serveurs WEB

Qu’est-ce que le HTTP Flood

Le HTTP Flood est une attaque qui vise à inonder un serveur WEB.
Pour saturer le serveur WEB, l’attaquant en envoie des requêtes sur une ou plusieurs pages.
Si le serveur WEB sature, il ne pourra plus délivrer les pages aux visiteurs.
C’est donc une forme d’attaque DOS par déni de service visant à paralyser un site internet.

L’attaque est plus efficace lorsqu’elle oblige le serveur ou l’application à allouer le maximum de ressources possibles en réponse à chaque demande. Ainsi, l’auteur de l’attaque cherchera généralement à inonder le serveur ou l’application de multiples requêtes qui nécessitent chacune un traitement aussi intensif que possible.
Pour cela, l’attaquant peut avoir recours à des botnet (réseau de machines infectées).

Ci-dessous, le journal d’un serveur WEB avec une IP spécifique qui envoie plusieurs requêtes par secondes.

Exemple d'attaque DoS L7

On utilise aussi le terme attaque DOS Layer 7 (ou L7), car le protocole HTTP est un protocole de la couche 7 du modèle OSI.

La principale difficulté lors d’une attaque est de différencier les requêtes HTTP légitimes, des requêtes HTTP malveillantes.

Les méthodes des attaques HTTP Flood sur un site WEB

Méthode GET, POST, HEAD

L’attaque peut jouer le type de méthode (GET, POST, HEAD).

Mais les attaques par inondation HTTP utilisant des requêtes POST ont tendance à être les plus efficaces en termes de ressources du point de vue de l’attaquant, car les requêtes POST peuvent inclure des paramètres qui déclenchent un traitement complexe côté serveur. D’autre part, les attaques basées sur les requêtes HTTP GET sont plus simples à créer et peuvent s’étendre plus efficacement dans un scénario de botnet.

Échapper aux limite de taux du serveur WEB

Ici c’est une attaque particulièrement inefficace, car elle est très simple à contrer et bloquer.
Un serveur WEB peut très facilement détecter trop de requêtes en un court laps de temps et bloquer l’accès au site.
On parle de taux de limite en anglais rate limit.
Il est même possible de bloquer entièrement l’IP avec fail2ban.
Bien entendu, cela peut fonctionner contre un site WEB mal préparé.

Ainsi une bonne attaque DoS L7 doit pouvoir fournir beaucoup d’IP et espacer les requêtes entre chaque IP pour que le serveur WEB ne la bloque.
Par exemple :

IP1
IP2
IP3
IP4

Puis on boucle là dessus.
Toutefois, il vaut mieux éviter de boucler dans un ordre particulier car on peut alors détecter automatiquement l’attaque à travers un modèle (pattern).

Ainsi pour une attaque DoS L7, il faut donc un botnet assez conséquent.

Cibler les pages WEB qui utilisent le plus de ressources

Ensuite, il faut viser les pages WEB qui demandent des ressources.
Il est assez idiot d’attaquer la page d’index d’un site WEB comme on le voit souvent.
Il vaut mieux par exemple viser le moteur de recherche du site puisque ce dernier effectue des interrogations SQL.
Ainsi, si vous ne parvenez pas à faire tomber le site WEB, vous pouvez mettre hors de service la base de données.
Le site va mal fonctionner.

Ce sont donc des emplacements du site à protéger en priorité car très vulnérables.

Contourner les caches

Certains sites internet ont de systèmes de cache.
On peut en installer sur WordPress ou utiliser en amont Varnish ou encore des CDN.
Jouer sur les paramètres URLs peuvent permettre de contourner les caches pour maximiser l’attaque DoS L7.

Attaque DoS L7 sur un site WEB

Comment mitiger les attaques HTTP flood

Pour les serveurs en Linux, vous pouvez utiliser des règles iptables spécifiques et fail2ban.
Toutefois, si l’attaque est importante ou sophistiquées, cela ne fonctionnera pas.
La meilleure solution reste l’utilisation d’un WAF comme Cloudflare, Sucuri, Imperva.

De manière générale, vous pouvez aussi consulter ce tutoriel :

WAF (Web Application Firewall) pour protéger son serveur WEB des attaques DoS et piratages

L’article HTTP Flood : les attaques DoS visant les serveurs WEB est apparu en premier sur malekal.com.

Enregistrer un commentaire

0 Commentaires