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

Romka_Kharkov
На сайте с 08.04.2009
Offline
485
6250

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

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

http://www.opennet.ru/opennews/art.shtml?num=31582

http://seclists.org/fulldisclosure/2011/Aug/175

http://habrahabr.ru/blogs/infosecurity/127029/#habracut

Обсуждаем, делимся соображениями!

Есть около 15.000 ipv4 !!! (http://onyx.net.ua/price.php#ipv4) Качественный хостинг с 2005 года - лучшее клиентам! (http://onyx.net.ua/)
M
На сайте с 01.12.2009
Offline
235
#1

Перепроверил ещё раз тест прошло.

Администратор Linux,Freebsd. построения крупных проектов.
Jake Foley
На сайте с 16.08.2008
Offline
151
#2

Тест прошло :(

Будем фиксить

Raistlin
На сайте с 01.02.2010
Offline
247
#3

мда. Лимит на число подключений с одного ип отменили? или у нас сокеты стали память тоннами жрать? или что случилось то? На хабре давно толкового ничего не пишут.

HostAce - Асы в своем деле (http://hostace.ru)
Romka_Kharkov
На сайте с 08.04.2009
Offline
485
#4

А доменчик какойнить дать можешь? А то у меня прошло и еще как прошло, а у меня:

Server version: Apache/2.2.17 (Unix)

Server built: Feb 9 2011 10:14:34

Пока что помогает вот такая вот штуковина:


SetEnvIf Range (,.*?){5,} bad-range=1
RequestHeader unset Range env=bad-range
CustomLog logs/range-CVE-2011-3192.log common env=bad-range

После чего тестом вида:


curl -I -H "Range: bytes=0-1,0-2" -s <domain.com>|grep -i 206

все равно выдает (на некоторых серверах, а на некоторых в 200 / OK превратилось)


HTTP/1.1 206 Partial Content

Но вот swap уже себя ведет совершенно иначе, по просту нет реакции, хотя без этих трех строк своп из 0 MB в 3 GB USED превратился в считанные секунды.

Описывается что путем сквознякового nginx можно тоже рубать это все... Но в киллере там еще проверяется gzip ... который собственно и приводит к переполнению. Мож у тебя на апаче gzip нету ?:)

Romka_Kharkov добавил 25.08.2011 в 23:30

Raistlin:
мда. Лимит на число подключений с одного ип отменили? или у нас сокеты стали память тоннами жрать? или что случилось то? На хабре давно толкового ничего не пишут.

Я честно говоря тоже подумал об этом но не кажется ли вам такой метод радикальным? А если вам форкать начнут с 100 ИП разных?

[Удален]
#5

Там, где 200ОК отдает, попробуйте к статике обратиться: www/robots.txt

Raistlin
На сайте с 01.02.2010
Offline
247
#6

ой-ой. у вас на хост-сервере гиг рамы? У меня - 24 сейчас. так что 100 ип совсем не проблема. И, да. Число коннектов всё равно зарезано. У мня хостинг, а не файлохранилище с необходимостью отдавать файлы в 100 потоков на один ип.

Romka_Kharkov
На сайте с 08.04.2009
Offline
485
#7

Да, на тачках без gzip в PHP такой реакции не наблюдается!

Raistlin
На сайте с 01.02.2010
Offline
247
#8

hostace.ru - попробуйте

Romka_Kharkov
На сайте с 08.04.2009
Offline
485
#9
MajorHost:
Там, где 200ОК отдает, попробуйте к статике обратиться: www/robots.txt

пробовал, эфект тот же , 206 выдает, но свап не мучит.

Romka_Kharkov добавил 25.08.2011 в 23:41

Raistlin:
ой-ой. у вас на хост-сервере гиг рамы? У меня - 24 сейчас. так что 100 ип совсем не проблема. И, да. Число коннектов всё равно зарезано. У мня хостинг, а не файлохранилище с необходимостью отдавать файлы в 100 потоков на один ип.

Не, ну дело конечно ваше :D Что тут сказать еще :D

Romka_Kharkov добавил 25.08.2011 в 23:42

Raistlin:
hostace.ru - попробуйте

попробовал, меня рубануло или упало таки?:)

Raistlin
На сайте с 01.02.2010
Offline
247
#10

рубануло нафиг

Time: Thu Aug 25 23:51:08 2011 +0400

IP: 109.87.**.*8 (UA/Ukraine/*******)

Connections: 844

Blocked: Temporary Block

Connections:

Raistlin добавил 25.08.2011 в 23:45

лимит в 400 штук стоит кстати

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий