LINUX.ORG.RU
 
ins3y3d

Новая серьезная уязвимость веб-сервера Apache


0

2

Обнаружена уязвимость в веб-сервере Apache, позволяющая провести атаку на приложение версии 2.2.х. Уязвимость находится в коде, отвечающем за обработку байтовых диапазонов, указанных в специальных HTTP-заголовках. Как известно, задание байтового диапазона позволяет загружать только определенную часть документа, например с 500-ого по 1000-ный байт. Данные заголовки широко используются, в частности, в менеджерах загрузки файлов для возобновления скачивания после паузы или разрыва соединения, а также позволяют снизить объем передаваемого трафика. Однако как показывает исследование, указание в заголовке нескольких неотсортированных диапазонов может привести к нарушению работы веб-сервера.

Уже опубликован perl-скрипт, демонстрирующий наличие проблемы и вызывающий падение веб-сервера Apache. Скрипт посылает серверу GET-запрос c заданием нескольких байтовых диапазонов, что при обработке приводит к серьезному увеличению потребления оперативной памяти.

Команда разработчиков пока не представила официального патча для исправления проблемы, однако на данный момент доступно решение, заключающееся в установке правила принимать только запросы с одним заданным байтовым диапазоном, что решит проблему для большинства веб-серверов. Для работы указанного способа необходимо загрузить в веб-сервер Apache модуль mod_rewrite.

Другим средством решения проблемы является использование модуля mod_headers с параметром RequestHeader unset Range, который удаляет из заголовка все содержащиеся в нем байтовые диапазоны. От этого способа больше вреда, чем пользы, поэтому администраторы перед применением любого решения для борьбы с уязвимостью должны проверить его эффективность и влияние на работу веб-сервера.

>>> Подробности


[#] Ответ на: комментарий от kid_lester 25.08.2011 21:48:07  

>После этого обычно php на сервере отключают, как класс.

А после этого все клиенты разбегаются и хостинг вылетает в трубу.

anonymous ()
[#] Ответ на: комментарий от kid_lester 25.08.2011 21:48:07  
XVilka

Я вот тоже не любитель php, но, есть продукты, например MediaWiki, не имеющие полнофункциональных аналогов. Рад бы перейти на что-то на питоне, например, но MoinMoin не допилен, и многих плюшек нет. Так что, пусть пока живет.

** ()
[#] Ответ на: комментарий от anonymous 26.08.2011 0:00:20  

шареды нинужны, впс/вдс наше фсио

anonymous ()
[#] Ответ на: комментарий от anonymous 26.08.2011 0:00:20  
gnunixon

При нынешних ценах на VPS у меня вызывают недоумение товарищи пользующиеся шаред-хостингами.

* ()
[#] Ответ на: комментарий от X-Pilot 25.08.2011 17:08:21  

> А утечки памяти там пофиксили?

это у тебя утечка газа. это проблема была только в бздевой версии и в очень специальном случаяе.

anonymous ()
[#] Ответ на: комментарий от polovinamozga 25.08.2011 19:46:27  
qbbr

отнюдь, скрипт вполне работоспособен.

// говорящий ник =)

** ()
[#] Ответ на: комментарий от Komintern 25.08.2011 18:16:15  

> кеш со стороны клиента да, можно реализовать сквидом. но кеширование той же статики со стороны веб-сервера - лучше чем nginx не встречал ничего.

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

anonymous ()
[#] Ответ на: комментарий от anonymous 26.08.2011 0:37:50  

> кеш со стороны клиента да, можно реализовать сквидом. но кеширование той же статики со стороны веб-сервера - лучше чем nginx не встречал ничего.

а уж по гибкости настройки и возможностям nginx вообще бледненько смотрится на фоне сквида.

anonymous ()
[#] Ответ на: комментарий от anonymous 26.08.2011 0:39:50  

> а уж по гибкости настройки и возможностям nginx вообще бледненько смотрится на фоне сквида.

только статику он отдавать не умеет, в отличии от.

anonymous ()
[#] Ответ на: комментарий от anonymous 26.08.2011 3:18:42  

> только статику он отдавать не умеет, в отличии от.

отдавать статику - это не задача прокси-сервера и я не утверждал что сквид - это еще и http-сервер. но когда мне нужен гибкий, мощный, стабильный, легко настраиваемый, рассчитанный на огромную нагрузку прокси сервер для распределения нагрузки между http-серверами и кэширования, я возмьу сквид, а не непонятно что, заточенное под более чем странные нужды рэмблера (им, знаете ли, imap-authentication-proxy в этом комбайне нужен позарез, а вот keep-alive до серверов им не нужен).

anonymous ()
[#] Ответ на: комментарий от anonymous 26.08.2011 3:45:10  

а уж статику-то можно хоть G-WAN раздавать - он на статике nginx уделывает в разы.

а nginx вылез на верх благодаря роликам про то, как быстро развернуть RoR и Django используя nginx. 95% - это пионэры, вдохновившиеся простотой того, как легко себя почувствовать "крутым" веб-разработчиком - достаточно посмотреть такой ролик и повторить эти шаги на своем компьютере.

anonymous ()
[#] Ответ на: комментарий от gnunixon 26.08.2011 0:31:06  

Не все пользователи хотят копаться на сервере по SSH. Многим гораздо приятно потыкаться в панели управления. К тому же, стандарт APS позволяет вообще не напрягаясь забить свой хостинг всеми нужными приложениями.

Для кого-то шаредхостинг это лишь средство для предоставления некоей информации: реклама, визитка, и таким абсолютно не важно, как это будет работать, главное - чтобы работало.

** ()
[#] Ответ на: комментарий от some-body 26.08.2011 5:25:03  

>Не все пользователи хотят копаться на сервере по SSH.

пользователи вообще не должны копаться на сервере, для этого есть админы.

>Многим гораздо приятно потыкаться в панели управления.

панель управления не инструмент для пользователей.

anonymous ()
[#]  
po1s0n

Вот сколько энергии можно было бы сэкономить датацентрам на запусках этого перла по всему миру.

()
[#] Ответ на: комментарий от borisych 25.08.2011 23:21:09  

nginx больше не имеет отношения к рамблеру. И на кой там поддержка всего этого хлама? Под ваши ынтырпрайз-нужды?

***** ()
[#] Ответ на: комментарий от anonymous 26.08.2011 3:45:10  

keep-alive до серверов уже есть. А сквид - монстроподобный комбайн, есть куда более легкие решения для лоад-балансинга и кеширования.

***** ()
[#] Ответ на: комментарий от qbbr 26.08.2011 0:34:06  

Подтверждаю. Хотя на одном из моих серверов со слакой оно не сработало:

HTTP/1.1 200 OK
Host does not seem vulnerable

* ()
[#]  
matumba
>>-----Цитата---->>

указание в заголовке ... диапазонОВ....

<<-----Цитата----<<

Убейте меня, но накой из одного файла вырезать несколько кусков?? Зачем нужны НЕСКОЛЬКО диапазонов в одном запросе?

**** ()
[#]  

Пишет Host does not seem vulnerable

Апач на рабочем компе под opensuse.

anonymous ()
[#] Ответ на: комментарий от boombick 26.08.2011 7:42:46  

> keep-alive до серверов уже есть

на клиентской стороне - есть, а на серверной - как не было, так и нет, по крайней мере, в 1.0.5 которая последняя в стабильной ветке. в 1.1.* я не заглядывал, поскольку development - он и есть development.

anonymous ()
[#] Ответ на: комментарий от boombick 26.08.2011 7:40:35  

> nginx больше не имеет отношения к рамблеру. И на кой там поддержка всего этого хлама? Под ваши ынтырпрайз-нужды?

ты делаешь меня смеяться. keep-alive не нужен, а imap-authentication-proxy - нужен всем всенепременно. и зачем я спорю с болваном?

anonymous ()
[#] Ответ на: комментарий от boombick 26.08.2011 7:42:46  

> keep-alive до серверов уже есть

и в development ветке все в том же состоянии /* TODO: NGX_PEER_KEEPALIVE */

anonymous ()
[#] Ответ на: комментарий от gnunixon 26.08.2011 0:31:06  

А что с ценами на VPS. Минималка, которую я видел - 500р/мес.

А шаред хостинг начинается с карманных денег.

***** ()
[#] Ответ на: комментарий от AVL2 26.08.2011 12:05:18  
gnunixon

Минимальная цена котурую видел я - 250 рублей за VPS с 256 мб памяти. А еще бывают scale-server-а, где можно уложится вообще в 170-200 рублей. Не знаю как у вас в России, но даже у нас, в Молдове это смешные деньги, которые может себе позволить даже школьник, подозревая что не экономя даже на завтраках. Причем заметь, что на одном VPS могут крутиться несколько сайтов.

* ()
[#] Ответ на: комментарий от gnunixon 26.08.2011 12:18:46  

>Минимальная цена котурую видел я - 250 рублей за VPS с 256 мб памяти.

ну во первых, это все равно заметно больше, чем шаред.

>Не знаю как у вас в России, но даже у нас, в Молдове это смешные деньги, которые может себе позволить даже школьник, подозревая что не экономя даже на завтраках.

видишь ли, единоразово - да. Но если как по часам гребут ежемесячно, то через год-два может и надоесть.

***** ()
[#] Ответ на: комментарий от anonymous 26.08.2011 10:54:58  

Да не, я про керберос и подобное говно

***** ()
[#]  
real_kas

Негодники

Почему-же Apache'мены так долго не фиксят баг?

* ()
[#] Ответ на: комментарий от matumba 26.08.2011 10:36:13  
firstep

> Убейте меня, но накой из одного файла вырезать несколько кусков?? Зачем нужны НЕСКОЛЬКО диапазонов в одном запросе?

Для торрентов :)

()
[#]  
firstep

Самое фееричное:

perl ./killapache_pl.bin apache.org
host seems vuln
ATTACKING apache.org [using 50 forks]
:pPpPpppPpPPppPpppPp
()
[#] Ответ на: комментарий от anonymous 26.08.2011 7:21:16  

Я хочу разместить сайт-визитку -> я заказываю шаред с cPanel или Plesk -> я пользователь и пользуюсь панелью. Что не так? В последнем так вообще есть встроенное средство для создания сайта-визитки (sitebuilder)

** ()
[#] Ответ на: комментарий от AVL2 26.08.2011 12:05:18  

есть и за 200р, кстати. А самый дешёвый шаред, который я видел - 68р.

** ()
[#] Ответ на: комментарий от some-body 26.08.2011 18:11:34  

И да, VPS за 200р с 512Мб памяти + 20Гб диска.

** ()
[#]  
o_0

> Скрипт посылает серверу GET-запрос c заданием нескольких байтовых диапазонов

ВоОбще-то там HEAD-запрос...

()
[#]  

[Копипаста]
Скрипт killapache.pl запускает в несколько десятков потоков простой запроc:

HEAD / HTTP/1.1
Host: www.example.com
Range: bytes=0-,5-0,5-1,5-2,5-3,5-4,<...>,5-1299,5-1300
Accept-Encoding: gzip
Connection: close

Разработчики Apache подошли к этой проблеме серьёзно, инициативные лица уже предложили изменения в RFC, закрывающие эту уязвимостью. Тем временем все сервера стоят открыты и не защищены.

Проверить, уязвим ли ваш сервер к этой атаке легко:

curl -I -H "Range: bytes=0-1,0-2" -s www.example.com/robots.txt | grep Partial

Запретить nginx проксировать опасный заголовок можно директивой:

proxy_set_header Range "";
[/Копипаста]

по ссылке еще много чего http://habrahabr.ru/blogs/infosecurity/127029/

уязвимость не работает на динамических сайтах, нужно грузить статику

()
[#]  

Новость про то что умные люди пишут на perl.

**# ()