Question Comment détecter Slowloris?


Je suis à peu près sûr d'être sous l'attaque de Slowloris. J'ai configuré une règle iptables pour limiter le nombre maximal de connexions à mon serveur Web, mais j'aimerais savoir comment déterminer s'il s'agissait vraiment d'une attaque Slowloris et, le cas échéant, comment trouver l'adresse IP de l'attaquant. J'aimerais vraiment transmettre les journaux à son fournisseur de services Internet.

Merci


14
2017-12-26 12:43


origine




Réponses:


Les attaques de Slowloris fonctionnent en envoyant des données de requête aussi lentement que possible. Par conséquent, si vous pouvez mesurer l'utilisation de la bande passante par adresse IP, s'il est inférieur à un seuil (détecté en mesurant la bande passante lors d'une attaque slowloris connue), vous saurez que vous êtes attaqué.

Pour éviter les attaques, je vous suggère de changer le logiciel de votre serveur Web. J'utilise cherokee qui résiste 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 comme proxy fera toute la différence.

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


5
2017-12-26 15:14





Niveau 1: simple slowloris 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 attaque DOS simple, un enfant avec une ou plusieurs adresses IP, celui avec 50-100 connexions (ou plus) est très probablement un attaquant de slowloris que vous pouvez abandonner.

Ceci est pour détecter et déposer (avec iptables ou votre hlfw préféré) les "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 probablement aider à détecter les attaques slowloris "post mortem" en analysant les journaux. Si vous n'avez pas cette information dans vos journaux, vous ne pourrez rien trouver d'intéressant. .  Voir http://httpd.apache.org/docs/current/mod/mod_log_config.html pour la configuration du journal.

Niveau 2: vraiment gros slowloris DDOS


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

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

http://pastebin.com/3BNNwfyb

Après cela, tous les 408 que vous voyez dans access_log sont à 99,999% sûrs d'un ip de l'attaquant slowloris.

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

Iptables peut aussi aider un peu avec quelque chose comme:

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

10
2017-11-05 01:50