Убийца Apache, патчим сервер под Ubuntu и Debian


Важное дополнение к прошлому топику: официальные источники (mail-archives.apache.org/mod_mbox/httpd-announce/201108.mbox/%3C20110826103531.998348F82@minotaur.apache.org%3E) сообщают что уязвимости также подвержен устаревший заголовок Request-Range времен MSIE 3.
Проверить, уязвим ли ваш сервер к этому варианту атаки можно так:

curl -I -H «Request-Range: bytes=0-1,0-2,0-3,0-4,0-5,0-6» -s www.example.com/robots.txt | grep Partial

Если у вас на такие запросы отвечает Apache и вы видите 206 Partial Content, значит быть беде.

Решение для nginx

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

proxy_set_header Range “”;
proxy_set_header Request-Range “”;

Решение для Apache

Заблокировать проблемные заголовки можно при помощи mod_headers:

# a2enmod headers
RequestHeader unset Range
RequestHeader unset Request-Range

Подробное описание этой атаки читайте в предыдущем топике на эту тему habrahabr.ru/blogs/infosecurity/127029/.

habrahabr.ru/blogs/infosecurity/127199/

Быстрый фикс под Ubuntu:


echo "

# Drop the Range header when more than 5 ranges.
# CVE-2011-3192
SetEnvIf Range (?:,.*?){5,5} bad-range=1
RequestHeader unset Range env=bad-range
# We always drop Request-Range; as this is a legacy
# dating back to MSIE3 and Netscape 2 and 3.
RequestHeader unset Request-Range
# optional logging
# CustomLog /var/log/apache2/range-CVE-2011-3192.log common env=bad-range
" | sudo tee /etc/apache2/mods-available/headers.conf
sudo a2enmod headers
sudo /etc/init.d/apache2 restart
Яндекс.Метрика