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.

Table des matières
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.
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.
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 :
Liens
- Les attaques DDoS : Le déni de service
- SYN Flood : Explications et Protections
- Les attaques DoS UDP (UDP flood) : Explications
- Qu’est-ce qu’une attaque DoS par amplification
- HTTP Flood : les attaques DoS visant les serveurs WEB
- Comment protéger son site WEB des attaques DoS Layer 7 (DoS L7)
- Cloudflare : comment protéger Nginx et WordPress des attaques DoS, piratages et bruteforce
- Iptables : bloquer SYN flood
- Protéger Nginx des attaques DoS et bruteforce
- Fail2ban : protéger son serveur des attaques DoS et Bruteforce
- Sécuriser et protéger WordPress contre les piratages ou hacks
- Le Web Firewall de Cloudflare : fonctionnement, configuration pour protéger son site internet
- Se protéger des attaques par brute force