Une attaque par HTTP flood est une forme par­ti­cu­lière d’attaque DDoS (Dis­tri­bu­ted Denial of Service). Il s’agit d’une tentative de faire planter le site Web ou l’ap­pli­ca­tion en le visitant depuis dif­fé­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 ap­pli­ca­tion » du modèle OSI. Le modèle indique qu’Internet se compose de sept couches.

Une attaque dans cette couche consiste à prendre des res­sources du réseau ou du serveur. Dès que le matériel ne dispose plus de res­sources suf­fi­santes, le client a besoin de plus de temps pour répondre aux demandes. Comme d’in­nom­brables 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 ac­ces­sible.

Quand les at­ta­quants 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 fonc­tionne 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 na­vi­ga­teur 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 res­sources dy­na­miques 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 trai­te­ment plus complexe pour le serveur.

L’attaque par HTTP flood repose sur le fait que de nom­breuses demandes de ce type sont faites si­mul­ta­né­ment sur une longue période de temps. Un botnet (ou « réseau de machines zombies ») est gé­né­ra­le­ment 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 trai­te­ment et à ce que la page ou l’ap­pli­ca­tion Web ne s’affiche plus cor­rec­te­ment.

Comment arrêter une attaque par HTTP flood ?

Comme il est tout à fait possible qu’un site reçoive tem­po­rai­re­ment beaucoup de trafic, il est parfois difficile de discerner si l’aug­men­ta­tion du nombre de demandes est dû à une attaque ou sim­ple­ment aux bons résultats d’une campagne marketing. Toutefois, si une attaque par HTTP flood a été détectée, le pare-feu peut iden­ti­fier 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 com­pu­ta­tion­nel Ja­vaS­cript. Ainsi, il est facile de dé­ter­mi­ner si le client ap­par­tient à un réseau de machines zombies (botnet), ou si c’est un uti­li­sa­teur classique. Con­trai­re­ment à un bot, n’importe quel na­vi­ga­teur d’un visiteur normal peut gérer cette dif­fi­culté.

Si la méthode de l’attaque est connue, des règles simples peuvent être in­tro­duites dans le système de pare-feu qui bloquera au­to­ma­ti­que­ment les adresses IP du réseau de machines zombies. Nor­ma­le­ment, un HTTP flood peut être détecté et stoppé en quelques minutes si vous savez que c’est la cause de la dé­fail­lance 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 éven­tuelles failles de sécurité. A la place, les at­ta­quants 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é­ra­le­ment pas détectées au début.

La plupart des sites Web reposent sur un système de pro­tec­tion cons­ti­tuant en un test captcha qui doit être exécuté ma­nuel­le­ment par les uti­li­sa­teurs 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 ap­pli­ca­tions. 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 con­tre­par­tie, assure sa pro­tec­tion 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 char­ge­ment pendant que la page prin­ci­pale se charge en arrière-plan.

Note

Le HTTP flood ne re­pré­sente qu’une des dif­fé­rentes formes d’attaques DDoS. Les at­ta­quants 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.

Aller au menu principal