LINUX.ORG.RU

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

 , ,


0

2

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

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

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

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

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

★★★★★

Проверено: maxcom ()
Последнее исправление: post-factum (всего исправлений: 1)

Ответ на: комментарий от kid_lester

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

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

anonymous
()
Ответ на: комментарий от kid_lester

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

XVilka ★★★★★
()
Ответ на: комментарий от anonymous

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

anonymous
()
Ответ на: комментарий от X-Pilot

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

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

anonymous
()
Ответ на: комментарий от Komintern

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

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

anonymous
()
Ответ на: комментарий от anonymous

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

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

anonymous
()
Ответ на: комментарий от anonymous

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

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

anonymous
()
Ответ на: комментарий от anonymous

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

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

anonymous
()
Ответ на: комментарий от anonymous

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

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

anonymous
()
Ответ на: комментарий от gnunixon

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

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

some-body ★★
()
Ответ на: комментарий от some-body

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

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

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

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

anonymous
()

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

po1s0n
()
Ответ на: комментарий от borisych

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

boombick ★★★★★
()
Ответ на: комментарий от anonymous

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

boombick ★★★★★
()
Ответ на: комментарий от qbbr

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

HTTP/1.1 200 OK
Host does not seem vulnerable

grouzen ★★
()

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

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

matumba ★★★★★
()

Пишет Host does not seem vulnerable

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

anonymous
()
Ответ на: комментарий от boombick

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

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

anonymous
()
Ответ на: комментарий от boombick

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

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

anonymous
()
Ответ на: комментарий от boombick

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

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

anonymous
()
Ответ на: комментарий от gnunixon

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

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

AVL2 ★★★★★
()
Ответ на: комментарий от AVL2

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

gnunixon ★★★
()
Ответ на: комментарий от gnunixon

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

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

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

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

AVL2 ★★★★★
()

Негодники

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

real_kas
()
Ответ на: комментарий от matumba

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

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

firstep
()

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

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

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

some-body ★★
()

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

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

o_0
()

[Копипаста]
Скрипт 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/

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

Blood_Raven
()

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

alx_me ★★☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.