Locked History Actions

Slowloris

Description

Une description de l'attaque est disponible ici : http://ha.ckers.org/slowloris/

Les réponses

Chaque éditeur propose des solutions mais dans le domaine de l'open source, et en particulier pour Apache, différents modules existent :

  • mod_reqtimeout
  • mod_noloris
  • mod_antiloris

Chaque module adopte une technique particulière mais nous ne nous intéressons pas ici aux modules qui empêchent les connexions multiples à partir d'une adresse IP donnée. En effet, des utilisateurs légitimes se trouvant derrière un proxy pourraient alors se trouver bannis.

mod_reqtimeout

Mod_reqtimeout est comme son nom l'indique un module qui permet d'instaurer un temps limite pour recevoir une requête. Ainsi slowloris ne peut plus garder les connexions ouvertes en envoyant régulièrement des entêtes.

Ce module est disponible à l'adresse : http://www.sfritsch.de/mod_reqtimeout/

Implémentation dans Vulture

Sous distribution à base de RPM, la version 1.9 d'INTRINsec-common embarque une version compilée de mod_reqtimeout. Sous debian il faut le compiler "manuellement" puisque Vulture utilise la version d'apache de cette distribution.

La procédure se déroule ensuite en 2 étapes :

1. Modification du fichier vulture/www/config.php pour charger le module mod_reqtimeout :

$apache_modules = "
LoadModule perl_module          $httpd_root/modules/mod_perl.so
LoadFile   $libxml
LoadModule proxy_html_module    $httpd_root/modules/mod_proxy_html.so
LoadModule security2_module      $httpd_root/modules/mod_security2.so

LoadModule reqtimeout_module      $httpd_root/modules/mod_reqtimeout.so

SecRuleEngine On

...

2. Utilisation de la directive RequestHeaderTimeout dans les directives Virtualhost de chaque application Vulture.

RequestHeaderTimeout 2