Comment détecter Slowloris?

14

Je suis à peu près sûr que j'étais sous l'attaque de Slowloris. J'ai mis en place une règle iptables pour limiter le nombre maximal de connexions à mon serveur Web, mais j'aimerais savoir comment je peux savoir s'il s'agissait vraiment d'une attaque Slowloris et, dans l'affirmative, comment trouver l'adresse IP de l'attaquant. J'aimerais vraiment transmettre les journaux à son FAI.

Merci

Rob
la source

Réponses:

5

Les attaques Slowloris fonctionnent en envoyant les données de demande aussi lentement que possible. Par conséquent, si vous pouviez mesurer l'utilisation de la bande passante par adresse IP, alors si elle est inférieure à un certain seuil (trouvé en mesurant la bande passante dans une attaque slowloris connue), alors vous savez que vous êtes attaqué.

Pour éviter les attaques, je vous suggère de changer de logiciel de serveur Web. J'utilise cherokee qui est résistant dans sa configuration par défaut. Je ne peux pas déterminer si nginx est vulnérable, mais lighttpd l'est. Je ne peux pas non plus être sûr que l'utilisation d'un serveur Web résistant en tant que proxy fera une différence.

Voici plus d'informations: http://ha.ckers.org/blog/20090617/slowloris-http-dos/

dan_waterworth
la source
10

Niveau 1: slowloris simple DOS


Pour trouver l'adresse IP de l'attaquant slowloris, j'utilise la ligne de commande suivante:

netstat -ntu -4 -6 |  awk '/^tcp/{ print $5 }' | sed -r 's/:[0-9]+$//' |  sort | uniq -c | sort -n

Cela vous donnera le nombre de connexions actives pour chaque IP connectée

Si vous êtes sous une simple attaque DOS, un kiddie avec une ou quelques adresses IP, celui avec 50-100 connexions (ou plus) est très probablement un attaquant slowloris que vous pouvez supprimer.

Il s'agit de les détecter et de les supprimer (avec iptables ou votre hlfw préféré) en "temps réel" si vous êtes connecté sur le serveur pendant l'attaque.

L'ajout du temps de traitement (argument% D ou% T) dans vos journaux apache peut également aider à détecter les attaques de slowloris "post mortem" en analysant les journaux, si vous n'avez pas cette information dans vos journaux, vous ne pourrez pas trouver quelque chose d'intéressant . Voir http://httpd.apache.org/docs/current/mod/mod_log_config.html pour la configuration du journal.

Niveau 2: vrai gros slowloris DDOS


netstat (utilisez watch netstat pour l'actualisation) peut toujours vous aider à voir que certaines adresses IP sont toujours toujours connectées

Pour combattre slowloris, sur apache, installez les modules reqtimeout et configurez-le, exemple:

http://pastebin.com/3BNNwfyb

Après cela, chaque 408 que vous voyez dans access_log est à 99,999% sûr qu'un ip d'attaquant de slowloris.

En utilisant le module apache reqtimeout, vous pouvez facilement affronter des milliers d'ips et des milliers de paquets / seconde sur un serveur dédié décent

Iptables peut également aider un peu avec quelque chose comme:

iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 100 -j DROP
neofutur
la source