Назад | Перейти на главную страницу

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

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

Спасибо

Уровень 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 злоумышленника.

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

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

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

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

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

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