anonymous@RULINUX.NET~# Last login: 2024-12-24 00:15:13
Регистрация Вход Новости | Разметка | Пользователи | Галерея | Форум | Статьи | Неподтвержденное | Трекер | Правила форума | F.A.Q. | Ссылки | Поиск
[#] [Добавить метку] [Редактировать]
Скрыть

Легко эксплуатируемая DoS-уязвимость в HTTP-сервере Apache

В http-сервере Apache найдена опасная уязвимость, позволяющая вызвать отказ в обслуживании через исчерпание всей доступной памяти. Опасность уязвимости усугубляется тем, что для её осуществления уже доступен готовый эксплоит (  http://seclists.org/fulldisclosure/2011/Aug/175 ), позволяющий совершить атаку с одной машины с генерацией минимального трафика. При отсутствия отдельных лимитов на размер выделяемой Apache памяти, после выполнения эксплоита наблюдается полное исчерпание памяти с уходом в бесконечный своппинг без возможности зайти в консоль.

Проблема вызвана ошибкой в реализации поддержки загрузки части файла по указанному диапазону (например, после обрыва соединения можно запросить загрузку начиная с определенной позиции). Ошибка связана с тем, что при обработке запроса, содержащего большое число диапазонов (например, "Range:bytes=0-,5-1,5-2,5-3,...,5-1000"), расходуется слишком много памяти. Для осуществления удачной атаки достаточно отправить около 50 подобных запросов на сервер.

Проблема присутствует в Apache 2.2.x, включая последний релиз 2.2.19. Исправление пока доступно в виде патча (  http://www.gossamer-threads.com/lists/apache/dev/401638 ). Также имеется несколько способов временной защиты, не требующих пересборки Apache. Например, можно принудительно очищать заголовок Range при помощи mod_header ("RequestHeader unset Range") или блокировать длинные последовательности Range через mod_rewrite:

# Вариант 1:

RewriteEngine On

RewriteCond %{HTTP:Range} bytes=0-[0-9]+, [NC,OR]

RewriteCond %{HTTP:Range} bytes=([0-9-],){4,} [NC,OR]

RewriteCond %{HTTP:Range} bytes=[0-9,-]+,0-(,|$) [NC]

RewriteRule .?  http://%{SERVER_NAME}/ [NS,L,F]

 # Вариант 2:

RewriteEngine On

RewriteCond %{REQUEST_METHOD} ^(HEAD|GET) [NC]

RewriteCond %{HTTP:Range} ([0-9]*-[0-9]*)(s*,s*[0-9]*-[0-9]*)+

RewriteRule .* - [F]

# Вариант 3:

RewriteEngine On

RewriteCond %{HTTP:Range} bytes=0-.* [NC]

RewriteRule .?  http://%{SERVER_NAME}/ [R=302,L]

 

Интересно, что о теоретической возможности совершения подобной атаки Михаил Залевски (Michal Zalewski), известный польский эксперт в области компьютерной безопасности в настоящее время работающий в Google, сообщал еще 4 года назад, но проблема по каким-то причинам не была воспринята всерьез и исправления не были внесены.

Цельнотянуто с Opennet.ru


>>> Подробнее

Id(*) (2011-08-25 01:13:27)


Подтверждено: Bod(*) (2011-08-25 09:55:57)

[Ответить на это сообщение]

avatar
Скрыть

Re: Легко эксплуатируемая DoS-уязвимость в HTTP-сервере Apache

Никак с разметкой нормально не разберусь, поправьте пожалуйста.

Id(*)(2011-08-25 01:15:15)

Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.1.19) Gecko/20110701 Iceweasel/3.5.19 (like Firefox/3.5.19)
avatar
Скрыть

Re: Легко эксплуатируемая DoS-уязвимость в HTTP-сервере Apache

Я бы поправил, но после нескольких неудачных попыток это сделать с другими новостями, лучше не буду браться - ещё хуже будет.

spaceivan(*)(2011-08-25 01:54:11)

Mozilla/5.0 (X11; Linux x86_64; rv:6.0) Gecko/20100101 Firefox/6.0
avatar
Скрыть

Re: Легко эксплуатируемая DoS-уязвимость в HTTP-сервере Apache

+1 Ну её лесом, эту редактировалку :) Лучше была бы такая, как в сообщениях. Без лишних наворотов, сложностей и глюков.

P.S.

Хм. На удивление, в этот раз что-то получилось, да ещё и с первого раза..

Bod(*)(2011-08-25 09:58:11)

Mozilla/5.0 (Windows NT 5.1; rv:9.0a1) Gecko/20110824 Firefox/9.0a1
Этот тред читают 2 пользователя:
Анонимных: 2
Зарегистрированных: 0




(c) 2010-2020 LOR-NG Developers Group
Powered by TimeMachine

Valid HTML 4.01 Transitional Правильный CSS!