Уязвимость HTTPoxy: CVE-2016-5387

Создана:

2016-11-16 12:42:41 UTC

Изменена:

2017-04-24 11:22:51 UTC

0

Помогла ли вам статья?


Есть вопросы?

Отправить запрос

Уязвимость HTTPoxy: CVE-2016-5387

Обзор

18 июля было объявлено об обнаружении уязвимости "HTTPoxy", затрагивающей некоторые веб-приложения на стороне сервера, работающие в CGI или CGI‑подобных окружениях, например, некоторые конфигурации FastCGI.

Некоторые веб-серверы, веб-фреймворки и языки программирования (как правило в CGI-окружении) задают значение переменной окружения HTTP_PROXY , используя данные входящих запросов (например, заголовок запроса Proxy с данными пользователя). Переменная окружения HTTP_PROXY используется различными пакетами веб-клиентов для обозначения удаленного прокси-сервера, используемого для HTTP-, а иногда и для HTTPS-запросов.

Это приводит к уязвимости, которую можно использовать дистанционно. Во время работы веб-приложения злоумышленник может указать прокси-сервер, который приложение будет использовать для последующих исходящих запросов, которые будут пересылаться через прокси-сервер атакующего, делая возможным активное вмешательство в соединение. Эта уязвимость получила название HTTPoxy

Если вы работаете с PHP или CGI, отключите Proxy хедеры немедленно.

Дополнительную информацию можно найти на странице https://httpoxy.org/

Причина

Согласно спецификациям CGI, хедеры предоставляются в переменных окружения. (Их называют определяемыми протоколом метапеременными - “ Protocol-Specific Meta-Variables ”). Так работают спецификации, это не ошибка.

Решение

  • Если вы используете PHP от команды Plesk с Plesk 12.5 :

    Установите микрообновление Plesk 12.5.30 MU#41 с обновлением PHP.

  • Если вы используете PHP от команды Plesk с Plesk 12.0 :

    Установите микрообновление Plesk 12.0.18 MU#88 с обновлением PHP.

  • В остальных случаях, когда на сервере Plesk используется версия PHP от другого поставщика :

    Linux :

    1. Для приложений, обслуживаемых Apache (при условии, что Apache от поставщика ОС):

      sudo yum update

      или

      sudo apt-get update
      sudo apt-get upgrade

      Debian : https://security-tracker.debian.org/tracker/CVE-2016-5387

      Ubuntu : https://people.canonical.com/~ubuntu-security/cve/2016/CVE-2016-5387.html

      Red Hat EL 7 : https://access.redhat.com/errata/RHSA-2016:1422

      Red Hat EL 6, 5 : https://access.redhat.com/errata/RHSA-2016:1421

      CentOS 7 : https://rpmfind.net/linux/RPM/centos/updates/7.2.1511/x86_64/Packages/httpd-tools-2.4.6-40.el7.centos.4.x86_64.html

      CentOS 6 : https://rpmfind.net/linux/RPM/centos/updates/6.8/x86_64/Packages/httpd-2.2.15-54.el6.centos.x86_64.html

      CentOS 5 : https://rpmfind.net/linux/RPM/centos/updates/5.11/x86_64/RPMS/httpd-2.2.3-92.el5.centos.x86_64.html

      openSUSE : https://www.suse.com/security/cve/CVE-2016-5387.html

      Если по какой-то причине вы не смогли обновить Apache, вы можете уменьшить риски при помощи следующей секции в .htaccess

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

      Если вы используете mod_security , можно воспользоваться правилом SecRule , чтобы не пропускать трафик с хедером Proxy. Далее мы приводим пример, действие можно менять по своему усмотрению, SecRuleEngine должен быть включен. Этой проблеме был назначен ID 1000005.

      SecRule &REQUEST_HEADERS:Proxy "@gt 0" "id:1000005,log,deny,msg:'httpoxy denied'"
    2. Для Apache, собранного для Plesk с поддержкой SNI для CentOS 5 / CloudLinux 5 :

      Обновите соответствующий компонент с помощью установщика Plesk в командной строке.

      ~#/usr/local/psa/admin/sbin/autoinstaller
    3. Для FPM-приложений, обслуживаемых nginx:

      • Plesk 12.5 :

        Установите микрообновление Plesk 12.5.30 MU#42 , в котором эта проблема исправлена.

      • Другие версии Plesk :

      https://www.nginx.com/blog/mitigating-the-httpoxy-vulnerability-with-nginx/

      Можно использовать NGINX для “дезинфекции” входящих данных для приложения, установив пустую строку в качестве значения параметра FastCGI HTTP_PROXY . Так этот параметр будет полностью удален из запроса FastCGI:

      ~# sudo cat << EOF >> /etc/nginx/fastcgi.conf

      # Mitigate httpoxy. Details: https://www.nginx.com/blog/mitigating-the-httpoxy-vulnerability-with-nginx/
      fastcgi_param HTTP_PROXY "";
      EOF

      Перезапустите nginx

      ~# sudo service nginx reload
    4. Для Plesk:

      • Plesk 12.5 :

        Установите микрообновление Plesk 12.5.30 MU#42 , в котором эта проблема исправлена.

      • Другие версии Plesk:

        ~# sudo cat << EOF >> /etc/sw-cp-server/fastcgi.conf

        # Mitigate httpoxy. Details: https://www.nginx.com/blog/mitigating-the-httpoxy-vulnerability-with-nginx/
        fastcgi_param HTTP_PROXY "";
        EOF

        Перезапустите sw-cp-server

        ~# sudo service sw-cp-server reload

    Windows :

    • Plesk 12.5 :

      Установите микрообновление Plesk 12.5.30 MU#42 , в котором эта проблема исправлена.

    • Другие версии Plesk:

    Чтобы отключить запрос, содержащий хедер Proxy (лучшее решение), выполните следующую команду:

    "%systemroot%\\system32\\inetsrv\\appcmd.exe" set config /section:requestfiltering /+requestlimits.headerLimits.[header='proxy',sizelimit='0']

    Для проверки состояния, выполните:

    "%systemroot%\\system32\\inetsrv\\appcmd.exe" list config /section:requestfiltering

    Чтобы отменить это, выполните:

    "%systemroot%\\system32\\inetsrv\\appcmd.exe" set config /section:requestfiltering /-requestlimits.headerLimits.[header='proxy',sizelimit='0']

    Примечание: "HTTPoxy" не затрагивает среды для веб-приложений от Microsoft, например, ASP.NET или Active Server Pages.

    Дополнительную информацию можно найти здесь: https://support.microsoft.com/en-us/kb/3179800

Была ли эта статья полезной?
Пользователи, считающие этот материал полезным: 0 из 3
Еще есть вопросы? Отправить запрос
Войдите в службу, чтобы оставить комментарий.