Qu’est-ce qu’une attaque par HTTP flood ?
Une attaque par HTTP flood est une forme particulière d’attaque DDoS (Distributed Denial of Service). Il s’agit d’une tentative de faire planter le site Web ou l’application en le visitant depuis différents endroits. Une attaque par HTTP flood est souvent appelée layer 7 attack. La « Layer 7 », pour « couche 7 » en français, fait référence à la « couche application » du modèle OSI. Le modèle indique qu’Internet se compose de sept couches.
Une attaque dans cette couche consiste à prendre des ressources du réseau ou du serveur. Dès que le matériel ne dispose plus de ressources suffisantes, le client a besoin de plus de temps pour répondre aux demandes. Comme d’innombrables demandes sont encore adressées au matériel, une surcharge constante du système est créée et le serveur ou l’ensemble du réseau n’est plus accessible.
Quand les attaquants ont recours au HTTP flood, ils essaient de provoquer un crash du serveur en utilisant des requêtes normales. Alors comment les méthodes HTTP peuvent-elles conduire à des attaques nuisibles ?
Comment fonctionne le HTTP flood ?
Une attaque par HTTP flood est basée sur les requêtes GET ou POST du client. Le client, c’est-à-dire le navigateur qui appelle la page Web, envoie une de ces demandes, le serveur traite la demande et renvoie le résultat au client.
La requête GET est utilisée pour récupérer des contenus statiques tels que des images ou des blocs de texte. Une demande POST est utilisée lorsque l’accès à des ressources dynamiques est requis. En termes simples, la méthode GET reçoit des données du serveur et la méthode POST envoie des données au serveur. Les deux méthodes peuvent être utilisées dans l’attaque, mais la méthode POST est davantage utilisée car elle implique un traitement plus complexe pour le serveur.
L’attaque par HTTP flood repose sur le fait que de nombreuses demandes de ce type sont faites simultanément sur une longue période de temps. Un botnet (ou « réseau de machines zombies ») est généralement utilisé pour augmenter le volume des demandes. L’attaque par HTTP flood est conçue de sorte que le serveur alloue la plus grande ressource possible à chaque requête. Dans une situation normale, cela est voulu, car le serveur ne reçoit pas des milliers ou des centaines de milliers de demandes par minute. Compte tenu du nombre élevé de demandes et d’appels, l’attaquant s’attend toutefois à ce que le serveur soit surchargé par les demandes à forte intensité de traitement et à ce que la page ou l’application Web ne s’affiche plus correctement.
Comment arrêter une attaque par HTTP flood ?
Comme il est tout à fait possible qu’un site reçoive temporairement beaucoup de trafic, il est parfois difficile de discerner si l’augmentation du nombre de demandes est dû à une attaque ou simplement aux bons résultats d’une campagne marketing. Toutefois, si une attaque par HTTP flood a été détectée, le pare-feu peut identifier et bloquer les adresses IP suspectes.
La première étape dans une telle situation consiste à renvoyer au client ce que l’on appelle un challenge computationnel JavaScript. Ainsi, il est facile de déterminer si le client appartient à un réseau de machines zombies (botnet), ou si c’est un utilisateur classique. Contrairement à un bot, n’importe quel navigateur d’un visiteur normal peut gérer cette difficulté.
Si la méthode de l’attaque est connue, des règles simples peuvent être introduites dans le système de pare-feu qui bloquera automatiquement les adresses IP du réseau de machines zombies. Normalement, un HTTP flood peut être détecté et stoppé en quelques minutes si vous savez que c’est la cause de la défaillance du système.
Comment s’en prémunir ?
Il est très difficile de se prémunir d’une attaque par HTTP flood, car les requêtes font penser au départ à un trafic normal sur le site Web. Aucun malware n’est envoyé au serveur, et aucune tentative n’est faite pour exploiter les éventuelles failles de sécurité. A la place, les attaquants inondent le serveur avec des accès autorisés. Comme ceci consomme beaucoup moins de bande passante qu’une intrusion violente dans le code du site, les attaques ne sont généralement pas détectées au début.
La plupart des sites Web reposent sur un système de protection constituant en un test captcha qui doit être exécuté manuellement par les utilisateurs réels. Cela permet de détecter à l’avance un botnet et de bloquer les adresses IP. Mais il existe aussi des pare-feu pour sites Web et applications. Ces systèmes vérifient et analysent le trafic qui arrive sur le site Web. Cela ne ralentit que très peu le site, et en contrepartie, assure sa protection et sa stabilité. Si la page elle-même consomme déjà beaucoup de données et processus, il est judicieux d’intégrer un écran de chargement pendant que la page principale se charge en arrière-plan.
Le HTTP flood ne représente qu’une des différentes formes d’attaques DDoS. Les attaquants ont également recours au Ping Flood, SYN Flood, UDP Flood ainsi qu’au Ping of Death pour tenter de stopper le service des serveurs Web.