Sécurité des applications Web - Menaces et contre-mesures

Auteur: Mohamed CHINY Durée necessaire pour le cours de Sécurité des applications Web - Menaces et contre-mesures Niveau recommandé pour le cours de Sécurité des applications Web - Menaces et contre-mesures Supports vidéo non disponibles pour ce cours Exercices de renforcement non disponibles pour ce cours Quiz non disponibles pour ce cours

Page 12: Slowloris (Attaque par déni de service - DoS)

Toutes les pages

Attaque Slowloris pour saturer un serveur Web

Définition

Slowloris et une attaque développée en Perl. Elle vise à rendre indisponible un serveur Web en l'inondant de requêtes HTTP incomplètes. A l'instar des attaques de type DoS, l'objectif est de compromettre la disponibilité du serveur Web.

En effet, le script Perl automatise l'envoi des demi-requêtes HTTP au serveur Web et les maintient durant un temps déterminé. Cette opération fini par remplir le pool de requêtes du serveur qui sera contraint de rejeter toutes les autres requêtes entrantes. En faisant ceci, le serveur Web devient systématiquement indisponible.

Slowloris est une attaque de type Déni de Service (Denial of Service ou DoS). Bien qu'il existe beaucoup de variantes pour ce type d'attaques et qui peuvent également présenter un risque important vis-à-vis des serveurs Web (comme TCP SYN Flood, UDP Flooding, Packet Fragment...), Slowloris présente une attaque au niveau application (couche 7 du model OSI) qui cible exclusivement des Serveurs Web et qui ne nécessite qu'une toute petite bande passante et ses chances de réussite sont considérables même avec une seule machine source. Les autres variantes par contre sont plutôt efficaces dans le cas d'un Déni de Service Distribué (DDoS) et qui demande la mise en marche de centaines, voir des milliers de machines sources (qui peuvent aussi être des botnets ou machines zombies).

Comment s'en protéger

Au niveau du code PHP

Il n'y a pratiquement rien à faire pour palier cette attaque au niveau du code PHP, donc il faut surtout miser sur la configuration du serveur et la sécurisation du réseau qui abrite celui-ci.

Au niveau de la configuration du serveur et du réseau

Bonne configuration du serveur Web

Pour perfectionner la sécurité contre les DoS de manière générale on peut déjà commencer par bien configurer le serveur Web. Dans le cas du serveur Apache on peut revoir les directives suivantes (présentes dans le fichier de configuration principal apache2.conf ou httpd.conf):
  • MaxConnPerIP: permet de définir le nombre maximal de connexions par adresse IP unique.
  • MaxClients: définie le nombre maximal de requêtes simultanées.
  • KeepAlive: Définissent si les requêtes multiples doivent être envoyées sur la même connexion TCP. Il se trouve que des fois, une page Web contient beaucoup d'éléments qui sont chargés indépendamment (images, vidéos...) et qui font chacune l'objet d'une nouvelle requête. Pour ne pas créer autant de connexion TCP que de requêtes on active cette directive avec la valeur On.


Mitigation des attaques DoS

Il s'agit d'un ensemble de techniques qui visent à atténuer l'impact des attaques DoS. La plupart des hébergeurs les utilisent au sein de leurs réseaux pour surmonter les risques d'une telle attaque.

Utilisation d'un Reverse Proxy

Un reverse Proxy sert d'intermédiaire entre le réseau externe et le réseau interne. Il est donc en mesure d'encaisser tous les coups à la place du serveur Web mais il est conçu pour être plus résistant à de tels aléas.

Utilisation d'IPS applicatifs

Les IPS applicatifs sont des modules pour le serveur Web (ou des logiciels indépendants) qui permettent de filtrer les requêtes et détourner les menaces. Ils sont en mesure de reconnaitre les requêtes incomplètes et les rejeter ensuite, libérant ainsi le pool du serveur.