- PVSM.RU - https://www.pvsm.ru -
SSLv2, протокол шифрования от Netscape, вышедший в 1995 году и потерявший актуальность уже в 1996, казалось бы, в 2016 году должен быть отключен во всем ПО, использующем SSL/TLS-шифрование, особенно после уязвимостей POODLE [1] в SSLv3, позволяющей дешифровать 1 байт за 256 запросов, и FREAK [2], связанной с ослабленными (экспортными) версиями шифров.
И если клиентское ПО (например, браузеры) давно не поддерживает подключения по протоколу SSLv2, и, с недавнего времени, и SSLv3, то с серверным ПО не все так однозначно.
Группа исследователей из Тель-Авивского университета, Мюнстенского университета прикладных наук, Рурского университета в Бохуме, Университета Пенсильвании, Мичиганского университета, Two Sigma, Google, проекта Hashcat и OpenSSL обнаружили уязвимость под названием DROWN — Decrypting RSA using Obsolete and Weakened eNcryption, которая позволяет дешифровать TLS-трафик клиента, если на серверной стороне не отключена поддержка протокола SSLv2 во всех серверах, оперирующих одним и тем же приватным ключом.
Согласно исследованию, 25% из миллиона самых посещаемых веб-сайтов подвержены этой уязвимости, или 22% из всех просканированных серверов, использующих сертификаты, выданные публичными центрами сертификации.
Несмотря на то, что у большинства веб-серверов протокол SSLv2 отключен по умолчанию, и его никто не будет включать намеренно, данная атака позволяет дешифровать TLS-трафик, имея доступ к любому серверу, поддерживающему SSLv2, и использующему такой же приватный ключ, что и веб-сервер. Часто можно встретить использование одного и того же сертификата для веб-сервера и почтового сервера, а также для FTPS.
Общий вариант атаки эксплуатирует уязвимость в экспортных шифрах SSLv2, использующие 40-битные ключи RSA.
Для успешного совершения атаки в случае, если информация передается без использования эфемерных ключей, согласованных про протоколу Диффи-Хеллмана или его версии на эллиптических кривых, злоумышленнику необходимо пассивно прослушивать сотни TLS-соединений жертвы и отправлять специальным образом сформированные пакеты на сервер с SSLv2, использующий такой же приватный ключ.
Атака возможна вследствие утечки информации о корректности расшифровки пакета в протоколе SSLv2. Используя атаку Данэля Блейхенбахера и отправляя перехваченные клиентские пакеты с зашифрованным 48-битным предварительным секретом (pre-master secret), хакер сможет полностью расшифровать одну из примерно 900 TLS-сессий клиента. Для выполнения атаки требуется послать около 40000 запросов на сервер с включенным SSLv2, подбирая ключ для слабого симметричного шифрования на каждое отправленное сообщение.
Исследователям удалось восстановить TLS-сессию клиента в течение 8 часов, используя 200 машин Amazon EC2: 150 типа g2.2xlarge c nVidia GPU, и 50 g2.8xlarge с 4 nVidia GPU. Стоимость такой атаки составила $440.
Исследователи отмечают, что в версиях OpenSSL, вышедших с 2010 по январь 2016 год, допущена досадная ошибка, связанная с экспортными шифрами.
В 2010 году разработчики OpenSSL приняли решение по умолчанию отключить все ослабленные шифры, но не отключать полностью SSLv2. Таким образом, казалось бы, хоть SSLv2 и оставался технически включенным, использовать его с ослабленными шифрами было бы нельзя. К сожалению, в коде была допущена ошибка, фактически отключающая проверку, и позволяя указать серверу любой экспортный шифр. Ошибку исправили только версии OpenSSL, вышедшей в январе 2016.
Кроме общего случая, существует и заметно более быстрый частный случай атаки, эксплуатирующий другую ошибку в OpenSSL, которая оставалась незамеченной как минимум с начала проекта OpenSSL (1998 год), а может быть еще и SSLeay (1995 год), и была случайно исправлена во время исследования другой проблемы 4 марта 2015 года.
Уязвимость позволяет восстанавливать master secret побайтово, совершая всего 1920 запросов к серверу для восстановления 128-битного ключа.
Атака настолько вычислительно простая, что ее возможно совершить на обычном компьютере за минуту.
Данной атаке подвержено около 9% серверов из списка Alexa Top Million.
Помимо всего прочего, атаку можно осуществить в том числе на протокол QUIC — транспортный протокол, использующий UDP, созданный Google.
TLS-сессии, использующие эфемерные ключи, тоже уязвимы, однако требуют вмешательство в сессию в виде «человека посередине».
Если вы используете OpenSSL 1.0.2 (без буквы), 1.0.1l или более ранние, вам необходимо немедленно обновить его. Если есть возможность, лучше использовать самую последнюю версию OpenSSL 1.0.2g и 1.0.1s, из которых исключена поддержка SSLv2. В ином случае, отключайте поддержку SSLv2 в используемом вами ПО самостоятельно.
Если вы используете веб-сервер Apache, необходимо отключить поддержку протокола SSLv2 (и за одно и SSLv3, чтобы веб-сервер не оставался уязвимым к атаке POODLE):
SSLProtocol All -SSLv2 -SSLv3
Для nginx достаточно оставить включенными только протоколы TLS:
ssl_protocols TLSv1 TLSv1.1 TLSv1.2
Почтовый сервер Postfix в версиях 2.9.14, 2.10.8, 2.11.6, 3.0.2 и более новых по умолчанию настроен без поддержки SSLv2. Если у вас более старая версия, воспользуйтесь примером конфигурации со страницы исследователей [3].
Если у вас нет возможности отключить поддержку SSLv2 (например, на встроенном устройстве), убедитесь, чтобы этот сервер использовал уникальный приватный ключ, не используемый где-либо еще.
Если вы используете Linux, вам может быть полезна утилита needrestart [4], которая определяет сервисы, использующие старые версии библиотек, и перезапускает их.
Веб-сайт уязвимости [5]
Академическая публикация [6]
Неинтерактивное средство проверки [7] (проверяет сайт по базе, которая собиралась до опубликовывания информации об уязвимости)
Сканер-приложение, проверяющее наличие поддержки SSLv2 и уязвимости OpenSSL [8]
Информация об уязвимости на openssl.org [9]
Подробности на ArcTechnica [10] и технические подробности от криптографа Мэттью Грина [11]
Автор: Digital Security
Источник [12]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/informatsionnaya-bezopasnost/113846
Ссылки в тексте:
[1] POODLE: https://habrahabr.ru/company/dsec/blog/240499/
[2] FREAK: https://habrahabr.ru/company/dsec/blog/252165/
[3] страницы исследователей: https://drownattack.com/postfix.html
[4] needrestart: https://github.com/liske/needrestart
[5] Веб-сайт уязвимости: https://drownattack.com/
[6] Академическая публикация: https://drownattack.com/drown-attack-paper.pdf
[7] Неинтерактивное средство проверки: https://drownattack.com/#check
[8] Сканер-приложение, проверяющее наличие поддержки SSLv2 и уязвимости OpenSSL: https://github.com/nimia/public_drown_scanner
[9] Информация об уязвимости на openssl.org: https://www.openssl.org/blog/blog/2016/03/01/an-openssl-users-guide-to-drown/
[10] Подробности на ArcTechnica: http://arstechnica.com/security/2016/03/more-than-13-million-https-websites-imperiled-by-new-decryption-attack/
[11] технические подробности от криптографа Мэттью Грина: http://blog.cryptographyengineering.com/2016/03/attack-of-week-drown.html
[12] Источник: https://habrahabr.ru/post/278335/
Нажмите здесь для печати.