Как защитить ваш сервер от уязвимости POODLE SSLv3

Вступление

14 октября 2014 года была обнаружена уязвимость в версии 3 протокола шифрования SSL. Эта уязвимость, получившая название POODLE (Padding Oracle On Downgraded Legacy Encryption), позволяет злоумышленнику читать информацию, зашифрованную с помощью этой версии протокола, в виде обычного текста с использованием атаки «человек посередине».

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

Уязвимость POODLE затрагивает любые службы или клиенты, которые позволяют общаться с помощью SSLv3. Поскольку это недостаток конструкции протокола, а не проблема реализации, часть программного обеспеченияevery, использующая SSLv3, уязвима.

Чтобы узнать больше об уязвимости, обратитесь к информации CVE, найденной вCVE-2014-3566.

Что такое уязвимость POODLE?

Уязвимость POODLE - это слабость в версии 3 протокола SSL, которая позволяет злоумышленнику в контексте «человек посередине» дешифровать текстовое содержимое зашифрованного сообщения SSLv3.

На кого влияет эта уязвимость?

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

Некоторые распространенные части программного обеспечения, которые могут быть затронуты, - это веб-браузеры, веб-серверы, VPN-серверы, почтовые серверы и т. Д.

Как это работает?

Короче говоря, уязвимость POODLE существует, потому что протокол SSLv3 не позволяет адекватно проверять байты заполнения, отправляемые с зашифрованными сообщениями.

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

В среднем один из каждых 256 запросов принимается в месте назначения, что позволяет злоумышленнику расшифровать один байт. Это можно легко повторить, чтобы постепенно расшифровать дополнительные байты. Любой злоумышленник, способный многократно заставить участника переслать данные с использованием этого протокола, может за короткое время нарушить шифрование.

Как я могу защитить себя?

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

Серверы и клиенты должны предпринять шаги для полного отключения поддержки SSLv3. Многие приложения по умолчанию используют лучшее шифрование, но реализуют поддержку SSLv3 как запасной вариант. Это должно быть отключено, поскольку злонамеренный пользователь может принудительно установить связь SSLv3, если оба участника допустят это как приемлемый метод.

Как защитить общие приложения

Ниже мы рассмотрим, как отключить SSLv3 в некоторых распространенных серверных приложениях. Позаботьтесь о том, чтобы оценить свои серверы для защиты любых дополнительных сервисов, которые могут использовать шифрование SSL / TCP.

Поскольку уязвимость POODLE не представляет проблемы реализации и является неотъемлемой проблемой всего протокола, обходного пути не существует, и единственное надежное решение - его не использовать.

Nginx веб-сервер

Чтобы отключить SSLv3 на веб-сервере Nginx, вы можете использовать директивуssl_protocols. Он будет расположен в блокахserver илиhttp в вашей конфигурации.

Например, в Ubuntu вы можете добавить это глобально в/etc/nginx/nginx.conf внутри блокаhttp или в каждый блокserver в каталоге/etc/nginx/sites-enabled.

sudo nano /etc/nginx/nginx.conf

Чтобы отключить SSLv3, ваша директиваssl_protocols должна быть установлена ​​следующим образом:

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

Вам следует перезапустить сервер после того, как вы сделали вышеуказанную модификацию

sudo service nginx restart

Веб-сервер Apache

Чтобы отключить SSLv3 на веб-сервере Apache, вам нужно будет настроить директивуSSLProtocol, предоставляемую модулемmod_ssl.

Эта директива может быть установлена ​​на уровне сервера или в конфигурации виртуального хоста. В зависимости от конфигурации Apache вашего дистрибутива, конфигурация SSL может находиться в отдельном исходном файле.

В Ubuntu общесерверную спецификацию серверов можно изменить, отредактировав файл/etc/apache2/mods-available/ssl.conf. Еслиmod_ssl включен, символическая ссылка соединит этот файл с подкаталогомmods-enabled:

sudo nano /etc/apache2/mods-available/ssl.conf

В CentOS вы можете настроить это в файле конфигурации SSL, расположенном здесь (если SSL включен):

sudo nano /etc/httpd/conf.d/ssl.conf

Внутри находится директиваSSLProtocol. Если это недоступно, создайте его. Измените это, чтобы явно удалить поддержку SSLv3:

SSLProtocol all -SSLv3 -SSLv2

Сохраните и закройте файл. Перезапустите службу, чтобы активировать изменения.

В Ubuntu вы можете ввести:

sudo service apache2 restart

На CentOS это будет:

sudo service httpd restart

HAProxy Load Balancer

Чтобы отключить SSLv3 в балансировщике нагрузки HAProxy, вам необходимо открыть файлhaproxy.cfg.

Он расположен в/etc/haproxy/haproxy.cfg:

sudo nano /etc/haproxy/haproxy.cfg

В конфигурации внешнего интерфейса, если у вас включен SSL, ваша директиваbind будет указывать общедоступный IP-адрес и порт. Если вы используете SSL, вам нужно добавитьno-sslv3 в конец этой строки:

frontend name
    bind public_ip:443 ssl crt /path/to/certs no-sslv3

Сохраните и закройте файл.

Вам нужно будет перезапустить сервис для реализации изменений:

sudo service haproxy restart

OpenVPN VPN-сервер

Последние версии OpenVPN фактически не поддерживают SSLv3. Служба не подвержена этой конкретной проблеме, поэтому вам не нужно настраивать свою конфигурацию.

Postfix SMTP-сервер

Если ваша конфигурация Postfix настроена на требование шифрования, она будет использовать директиву с именемsmtpd_tls_mandatory_protocols.

Вы можете найти это в основном файле конфигурации Postfix:

sudo nano /etc/postfix/main.cf

Для сервера Postfix, настроенного на постоянное использование шифрования, вы можете убедиться, что SSLv3 и SSLv2 не принимаются, установив этот параметр. Если вы не форсируете шифрование, вам не нужно ничего делать:

smtpd_tls_mandatory_protocols=!SSLv2, !SSLv3

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

sudo service postfix restart

Dovecot IMAP и POP3 сервер

Чтобы отключить SSLv3 на сервере Dovecot, вам нужно будет настроить директивуssl_protocols. В зависимости от методов упаковки вашего дистрибутива конфигурации SSL могут храниться в альтернативном файле конфигурации.

Для большинства дистрибутивов вы можете настроить эту директиву, открыв этот файл:

sudo nano /etc/dovecot/conf.d/10-ssl.conf

Внутри, если вы используете Dovecot 2.1 или выше, установите директивуssl_protocols, чтобы отключить SSLv2 и SSLv3:

ssl_protocols = !SSLv3 !SSLv2

Если вы используете версию Dovecot ниже 2.1, вы можете установитьssl_cipher_list, чтобы запретить SSLv3 следующим образом:

ssl_cipher_list = ALL:!LOW:!SSLv2:!EXP:!aNULL:!SSLv3

Сохраните и закройте файл.

Перезапустите сервис, чтобы применить ваши изменения:

sudo service dovecot restart

Дальнейшие шаги

Наряду с вашими серверными приложениями вы также должны обновить любые клиентские приложения.

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

Заключение

Благодаря широко распространенной поддержке SSLv3, даже если включено более сильное шифрование, эта уязвимость является далеко идущей и опасной. Вам нужно будет принять меры, чтобы защитить себя как потребителя и поставщика любых ресурсов, использующих шифрование SSL.

Обязательно проверьте все доступные в сети службы, которые могут использовать SSL / TLS в любой форме. Часто этим приложениям требуются явные инструкции для полного отключения более слабых форм шифрования, таких как SSLv3.

Related