geektimes

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

  • вторник, 21 октября 2014 г. в 03:10:45
http://habrahabr.ru/company/first/blog/240889/

Вводная информация


14 октября 2014 года в протоколе шифрования SSL версии 3 была выявлена уязвимость. Эта уязвимость, названная POODLE (Padding Oracle On Downgraded Legacy Encryption), позволяет злоумышленнику читать информацию, зашифрованную этой версией протокола, используя атаку man-in-the-middle.
Также SSLv3 является очень старой версией протокола, но тем не менее многие приложения поддерживают его и используют SSLv3 в случаях, когда недоступны другие более новые и лучшие варианты шифрования. Что важно, злоумышленник может нарочно требовать использования только SSLv3 на обоих сторонах соединения.
Уязвимости POODLE подвержены любые сервисы или клиенты, которые могут соединяться, используя SSLv3.
Более подробная информация по этой уязвимости опубликована здесь CVE-2014-3566.




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


Этой уязвимости поддвержен SSL-протокол версии 3, который позволяет перехватить содержимое зашифрованное с помощью SSLv3.

Кто подвержен этой уязвимости?


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

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


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

Как защититься?


Должны быть предприняты действия, которые не позволят использовать SSLv3 ни в случае использования клиентских приложений, ни в случае серверных.
И серверы и клиенты должны отключить полностью поддержку SSLv3.
Проверить серверные приложения можно с помощью онлайн-сервиса: http://poodlebleed.com/.
Свой браузер на наличие уязвимости проверить можно здесь: https://www.poodletest.com/.

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


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

Firefox


В новой версии Firefox 33 эта уязвимость исключена. Но на всех остальных версиях следует произвести настройку браузера в about:config, установив параметр security.tls.version.min на значение “1”. Или с помощью расширения SSL Version Control.

Google Chome


Браузеры, созданные на базе Chromium, следует запускать с ключом “--ssl-version-min=tls1”

Internet Explorer


В настройках безопасности IE уберите галочку с параметра “SSLv3”.


Отключение SSLv3 в IE.

Safari


Разработчики веб-браузера Safari молниеносно отреагировали на эту проблему и выпустили обновление безопасности.

Веб-сервер Nginx


Для отключения SSLv3 в веб-сервере Nginx, следует найти параметр ssl_protocols. Он расположен в блоке server {} или http {}.
Конфигурационный файл Nging может быть расположен в разных директориях, в зависимости, от ОС или используемого дистрибутива на сервере. В основном, это
/usr/local/etc/nginx/nginx.conf во FreeBSD и
/etc/nginx/nginx.conf в Linux

Для отключения SSLv3, параметр ssl_protocols должен содержать похожие настройки:
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

Теперь следует дать команду серверу для применения изменений в конфигурационном файле:
# service nginx reload

Веб-сервер Apache


Отключить SSLv3 в веб-сервере Apache можно в параметре SSLProtocol, который используется при подключенном модуле mod_ssl.
Расположение конфигурационного файла, где находятся настройки модуля mod_ssl, так же могут и отличаются в зависимости от ОС и дистрибутива.
в Debian настройки расположены в файле /etc/apache2/mods-enabled/ssl.conf
в CentOS это может быть файл /etc/httpd/conf.d/ssl.conf
во FreeBSD — /usr/local/etc/apache22/httpd.conf

Если настройки SSL отсутствуют, следует добавить этот параметр.
Значение этого параметра должно содержать что-то типа этого:
SSLProtocol all -SSLv3 -SSLv2

После внесения изменений сохраните файл и перезагрузите Apache.

Сервер OpenVPN VPN


Все современные версии OpenVPN не поддерживают SSLv3. Данный сервис не подвержен этой уязвимости и никаких изменений в конфигурации делать не требуется.

Почтовый сервер Postfix


Если в параметрах Postfix настроено требование шифрования, это делается параметром
smtpd_tls_mandatory_protocols.

Этот параметр можно найти в основном конфигурационном файле Postfix
/etc/postfix/main.cf (Linux)
/usr/local/etc/postfix/main.cnf (FreeBSD)

Запретить использование шифрования SSLv3 для Postfix можно путем добавления значения “!SSLv3” в параметр, задающий возможные варианты шифрования:
smtpd_tls_mandatory_protocols=!SSLv2, !SSLv3

Сохраните конфигурационный файл и перезапустите Postfix:

Почтовый сервер Sendmail


Для отключения SSLv3 в почтовом сервере Sendmail следует открыть файл .mc, который расположен в директории /etc/mail/ и найти раздел LOCAL_CONFIG. В этом разделе поменять значение “+SSLv3” на “-SSLv3” у параметра SSLProtocol и добавить “!SSLv3” в SSLCipherSuite
SSLProtocol -ALL -SSLv2 -SSLv3 +TLSv1
SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:!LOW:!SSLv2:!SSLv3

После этого пересоберите конфигурационный файл Sendmail и перезапустите его
# make install & make restart

IMAP и POP3 сервер Dovecot


Для отключения SSLv3 в Dovecot, потребуется внести изменения в параметр ssl_protocols. В зависимости от ОС или дистрибутива, этот параметр может находиться как в основном файле, так и в подключаемом:
/etc/dovecot/conf.d/10-ssl.conf (Linux)
/usr/local/etc/dovecot.conf

Отключите SSLv3:
ssl_protocols = !SSLv3 !SSLv2

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

Заключение


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