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

14

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

Благодарность

обкрадывать
источник

Ответы:

5

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

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

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

dan_waterworth
источник
10

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


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

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

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

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

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

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

Уровень 2: очень большой замедленный DDOS


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

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

http://pastebin.com/3BNNwfyb

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

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

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

iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 100 -j DROP
neofutur
источник