Blog

Défendre contre Slowloris avec HAProxy


RSS Feed Gazouillement

Le blog rompit est un endroit idéal pour tenir à jour avec ce qu'il se passe! Sinon, vous pouvez vous abonner à notre flux RSS ou suivez-nous sur Twitter ci-dessus.

Défendre contre Slowloris avec HAProxy

Slowloris (et tout type de DOS avec une intention similaire) est un outil conçu pour accueillir toutes les connexions disponibles sur un serveur Apache sans avoir un énorme réseau de déni de l'hôte. Le concept est mieux décrit par le développeur Slowloris -

En examinant les ramifications d'un déni de service lente d'attaque contre les services particuliers, plutôt que d'inonder les réseaux, un concept apparu qui permettrait à une seule machine à prendre par le serveur Web d'une autre machine avec une bande passante minimale et les effets secondaires sur les services indépendants et les ports. La situation idéale pour de nombreux refus d'attaques de service est l'endroit où tous les autres services restent intacts mais le serveur lui-même est totalement inaccessible. Slowloris est né de ce concept, et est donc relativement très discret par rapport aux outils les plus crues.

Le concept est simple - Slowloris envoie remplir partiellement les requêtes HTTP d'Apache et continue d'envoyer des en-têtes sur ces connexions en s'assurant qu'ils ne sont jamais fermées et ne sont pas de délai d'attente. Il continue d'ouvrir de plus en plus jusqu'à ce que toutes les prises disponibles sur le serveur sont utilisés, ce qui prive effectivement de service à l'hôte. Parce que les demandes sont de véritables requêtes HTTP, et de continuer à obtenir des données envoyées, il s'agit d'une attaque particulièrement dangereux car il peut être difficile à protéger.

C'est là que HAProxy brille vraiment. Dans un post sur le site HAProxy ils expliquent comment HAProxy serait face à une telle attaque. La première chose à noter est que HAProxy transmet uniquement les requêtes HTTP complète - ce qui signifie tout-compléter les demandes non jamais vous arriver sur le serveur en premier lieu!

Si Apache a besoin d'un nouveau thread pour traiter une connexion entrante, HAProxy n'a besoin que de 16 à 32 ko de mémoire ce qui signifie qu'il peut évoluer au-delà de ce que votre serveur Apache (ou ferme) la plus probable peut atteindre. Ajouté à cela, vous pouvez ajouter un délai d'attente spécifique pour les requêtes HTTP, ce qui permet HAProxy de tuer toutes les demandes de non-finition (voir "http timeout-demande").

La beauté de cette solution est que vos serveurs Apache continuera de recevoir des demandes valides, tandis que HAProxy suce et se termine les connexions en provenance de l'outil Slowloris.

HAProxy a mis en place une halte-exemple de configuration pour empêcher ce, disponible sur leur site ou via ce lien direct .

Tags: , ,

Laisser un commentaire