Поиск по сайту:

Уязвимость HTTPOXY: как защитить и протестировать веб-сервер


На этой странице

  1. 1 Как HTTPOXY влияет на мой сервер?
    1. 1.1 Общее решение

    1. 2.2 Debian 8 (Джесси) с Apache
    2. 2.2 Debian 7 (Wheezy) с Apache
    3. 2.3 Debian с Nginx

    1. 3.1 Ubuntu с Apache
    2. 3.2 Ubuntu с Nginx

    1. 4.1 Апач
    2. 4.2 Nginx

    Обнаруженная недавно уязвимость HTTPOXY затрагивает приложения, работающие в cgi или CGI-подобных средах. Это означает, что проблема затрагивает почти все веб-серверы, включая Apache и Nginx, а также большинство приложений PHP. Это влияет даже на режим mod_php в apache.

    В этом руководстве показано, как защитить ваш веб-сервер от HTTPOXY. Он содержит разделы для наиболее часто используемых дистрибутивов Linux CentOS + RHEL, Debian и Ubuntu. Эти шаги можно применить и к другим дистрибутивам Linux, но пути к файлам конфигурации могут отличаться.

    Подробное описание уязвимости HTTPOXY можно найти на этом сайте https://httpoxy.org/.

    Шаги, описанные в этом руководстве, совместимы с руководствами ISPConfig perfect server.

    1 Как HTTPOXY влияет на мой сервер?

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

    1.1 Общее решение

    На данный момент рекомендуемое решение – отключить или отфильтровать переменную заголовка HTTP_PROXY. Это делается в apache с помощью модуля mod_headers и этого оператора конфигурации:

    RequestHeader unset Proxy early

    В Nginx вы можете использовать эту строку для сброса переменной HTTP_PROXY.

    fastcgi_param HTTP_PROXY "";

    В следующей главе подробно описывается процедура для различных дистрибутивов Linux.

    2 Дебиан

    В этой главе описывается конфигурация для защиты Apache и Nginx на серверах Debian 8 (Jessie) и Debian 7 (Wheezy) от HTTPOXY. Следующие шаги предполагают, что вы вошли в систему как пользователь root в оболочке. Если вы вошли в систему под другим пользователем, используйте команду su (или sudo, если вы настроили sudo), чтобы стать пользователем root.

    2.2 Debian 8 (Джесси) с Apache

    Включить модуль заголовков apache

    a2enmod headers

    Добавьте файл глобальной конфигурации /etc/apache2/conf-available/httpoxy.conf. Здесь я буду использовать редактор nano:

    nano /etc/apache2/conf-available/httpoxy.conf

    и вставьте в этот файл следующее содержимое:

    <IfModule mod_headers.c>
        RequestHeader unset Proxy early
    </IfModule>

    Сохраните файл. Затем включите его в конфигурации с помощью команды a2enconf и перезапустите apache.

    a2enconf httpoxy
    service apache2 restart

    2.2 Debian 7 (Wheezy) с Apache

    Включите модуль заголовков Apache:

    a2enmod headers

    Добавьте файл глобальной конфигурации /etc/apache2/conf.d/httpoxy.conf. Здесь я буду использовать редактор nano:

    nano /etc/apache2/conf.d/httpoxy.conf

    и вставьте в этот файл следующее содержимое:

    <IfModule mod_headers.c>
        RequestHeader unset Proxy early
    </IfModule>

    Сохраните файл. Затем перезапустите апач.

    service apache2 restart

    2.3 Debian с Nginx

    Следующая команда добавит параметр fastcgi_param, который задает для переменной HTTP_PROXY пустую строку, в файл /etc/nginx/fastcgi_params.

    echo 'fastcgi_param HTTP_PROXY "";' >> /etc/nginx/fastcgi_params

    Затем перезапустите nginx, чтобы применить изменения конфигурации.

    service nginx restart

    3 Убунту

    В этой главе описывается конфигурация для защиты Apache и Nginx на серверах Ubuntu 14.04–16.04 от HTTPOXY.

    3.1 Ubuntu с Apache

    Включите модуль заголовков Apache.

    sudo a2enmod headers

    Добавьте файл глобальной конфигурации /etc/apache2/conf-available/httpoxy.conf. Здесь я буду использовать редактор nano:

    sudo nano /etc/apache2/conf-available/httpoxy.conf

    и вставьте в этот файл следующее содержимое:

    <IfModule mod_headers.c>
        RequestHeader unset Proxy early
    </IfModule>

    Сохраните файл. Затем включите его в конфигурации с помощью команды a2enconf и перезапустите apache.

    sudo a2enconf httpoxy
    sudo service apache2 restart

    3.2 Ubuntu с Nginx

    Шаги по защите Ubuntu от HTTPOXY аналогичны шагам для Debian. Нам просто нужно убедиться, что команды выполняются с помощью sudo. Эта команда echo добавит строку fastcgi_param, которая устанавливает переменную HTTP_PROXY как пустую строку. Файл /etc/nginx/fastcgi_params включен в разделы @PHP и cgi-bin по умолчанию файлов vhost nginx, а также в vhosts, созданные ISPConfig. Если вы добавили пользовательские виртуальные хосты, убедитесь, что они содержат \include /etc/nginx/fastcgi_params;\ в разделах конфигурации для php и других коннекторов cgi или fastcgi.

    Выполните следующую команду, чтобы добавить пустую переменную HTTP_PROXY.

    sudo echo 'fastcgi_param HTTP_PROXY "";' >> /etc/nginx/fastcgi_params

    Затем перезапустите Nginx, чтобы применить изменения конфигурации.

    sudo service nginx restart

    4 CentOS, RHEL и Fedora

    В этой главе описывается конфигурация для защиты Apache и Nginx на серверах CentOS от HTTPOXY. Те же шаги должны работать и для серверов Fedora. Войдите в систему как пользователь root в оболочке, прежде чем выполнять приведенные ниже команды.

    4.1 Апач

    Файл конфигурации Apache (httpd) в CentOS — это /etc/httpd/conf/httpd.conf. Я добавлю правило заголовка apache в конец файла httpd.conf с помощью этой команды:

    echo "RequestHeader unset Proxy early" >> /etc/httpd/conf/httpd.conf

    Затем перезапустите httpd, чтобы применить изменения конфигурации.

    service httpd restart

    4.2 Нгинкс

    Веб-сервер Nginx в CentOS включает fastcgi_params в раздел PHP и CGI виртуального хоста по умолчанию, поэтому мы можем добавить правило для установки пустой переменной HTTP_PROXY. Запустите эту команду, чтобы добавить пустую переменную HTTP_PROXY.

    echo 'fastcgi_param HTTP_PROXY "";' >> /etc/nginx/fastcgi_params

    Затем перезапустите nginx, чтобы применить изменения конфигурации.

    service nginx restart

    5 Тест

    Наконец, вы должны проверить, безопасен ли ваш сервер сейчас. Люк Рехман разработал хороший онлайн-инструмент для тестирования, который можно найти здесь: https://httpoxy.rehmann.co/

    Введите URL-адрес вашего сервера или веб-сайта в инструмент и нажмите кнопку «Проверить».

    Вот результат для linux-console.net. Как видите, наш сайт безопасен.

    6 ссылок

    • Веб-сайт HTTPOXY
    • Спасибо Джесси за рецепт Debian 8.