Как обнаружить Slowloris?

Как обнаружить Slowloris?

Я почти уверен, что подвергся атаке Slowloris. Я установил правило iptables, чтобы ограничить максимальное количество подключений к моему веб-серверу, но я хотел бы знать, как я могу выяснить, действительно ли это была атака Slowloris, и если да, как я могу узнать IP-адрес атакующего. Я бы очень хотел передать логи его интернет-провайдеру.

Спасибо

решение1

Атаки Slowloris работают, отправляя данные запроса как можно медленнее. Поэтому, если вы можете измерить использование полосы пропускания на IP-адрес, то если оно ниже некоторого порога (обнаруженного путем измерения полосы пропускания в известной атаке Slowloris), то вы знаете, что подверглись атаке.

Чтобы предотвратить атаки, я бы посоветовал сменить программное обеспечение веб-сервера. Я использую cherokee, который устойчив в своей конфигурации по умолчанию. Я не могу определить, уязвим ли nginx, но уязвим lighttpd. Я также не уверен, что использование устойчивого веб-сервера в качестве прокси-сервера что-то изменит.

Вот более подробная информация:http://ha.ckers.org/blog/20090617/slowloris-http-dos/

решение2

Уровень 1: простой slowloris DOS


Чтобы найти IP-адрес злоумышленника Slowloris, я использую следующую командную строку:

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

Это даст вам количество активных подключений для каждого подключенного IP-адреса.

Если вы подверглись простой DOS-атаке, атаке ребенка с одним или несколькими IP-адресами, а также атаке с 50-100 соединениями (или более), скорее всего, это злоумышленник Slowloris, которого можно отбросить.

Это необходимо для их обнаружения и удаления (с помощью iptables или предпочитаемого вами hlfw) в режиме реального времени, если вы подключены к серверу во время атаки.

Добавление времени обработки (аргумент %D или %T) в ваши логи Apache также может, вероятно, помочь обнаружить атаки Slowloris «посмертно» путем анализа журналов; если у вас нет этой информации в ваших журналах, вы не сможете найти ничего интересного. Смотритеhttp://httpd.apache.org/docs/current/mod/mod_log_config.htmlдля конфигурации журнала.

Уровень 2: очень большой Slowloris DDOS


netstat (используйте watch netstat для обновления) все еще может помочь вам увидеть, что некоторые IP-адреса просто всегда подключены

Чтобы бороться с slowloris, на Apache установите модули reqtimeout и настройте их, например:

http://pastebin.com/3BNNwfyb

После этого каждый код 408, который вы видите в access_log, на 99,999% означает IP-адрес атакующего Slowloris.

Используя модуль Apache reqtimeout, вы можете легко противостоять тысячам IP-адресов и тысячам пакетов в секунду на приличном выделенном сервере.

Iptables также может немного помочь с чем-то вроде:

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

Связанный контент