Половина сайтов использует HTTPS, и их число стабильно увеличивается. Протокол сокращает риск перехвата трафика, но не исключает попытки атак как таковые. О некоторых их них — POODLE, BEAST, DROWN и других — и способах защиты, мы расскажем в нашем материале.


/ Flickr / Sven Graeme / CC BY-SA

POODLE


Впервые об атаке POODLE стало известно в 2014 году. Уязвимость в протоколе SSL 3.0 обнаружил специалист по ИБ Бодо Мёллер (Bodo Moller) с коллегами из Google.

Ее суть заключается в следующем: хакер вынуждает клиента выполнить подключение по SSL 3.0, эмулируя разрывы связи. Затем он ищет в зашифрованном в CBC-режиме трафике специальные сообщения-метки. С помощью серии подставных запросов злоумышленник получает возможность реконструировать содержимое интересующих его данных, например cookies.

SSL 3.0 — устаревший протокол. Но вопрос его безопасности все еще актуален. Клиенты используют его, чтобы избежать проблем совместимости с серверами. По некоторым данным, почти 7% из 100 тыс. самых популярных сайтов все еще поддерживают SSL 3.0. Также существуют модификации POODLE, целью которых являются более современные TLS 1.0 и TLS 1.1. В этом году появились новые атаки Zombie POODLE и GOLDENDOODLE, которые обходят защиту TLS 1.2 (они по-прежнему связаны с CBC-шифрованием).

Как защититься. В случае с оригинальным POODLE нужно отключить поддержку SSL 3.0. Однако в этом случае есть риск получить проблемы с совместимостью. Альтернативным решением может стать механизм TLS_FALLBACK_SCSV — он гарантирует, что обмен данными по SSL 3.0 будет проводиться только со старыми системами. Злоумышленники больше не смогут инициировать понижение версии протокола. Способ защиты от Zombie POODLE и GOLDENDOODLE — отключение поддержки CBC в приложениях на базе TLS 1.2. Кардинальным решением станет переход на TLS 1.3 — в новой версии протокола не используется CBC-шифрование.

BEAST


Одна из самых первых атак на SSL и TLS 1.0, обнаруженная в 2011 году. Как и POODLE, BEAST использует особенности CBC-шифрования. Злоумышленники внедряют на клиентскую машину JavaScript-агент или Java-апплет, который подменяет сообщения при трансляции данных по TLS или SSL. Так как злоумышленникам известно содержание «подставных» пакетов, они могут с их помощью расшифровать вектор инициализации и прочитать остальные сообщения к серверу, например cookie-файлы для аутентификации.

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

Как защититься. Атакующему необходимо регулярно посылать запросы, чтобы расшифровывать данные. В VMware рекомендуют сократить длительность SSLSessionCacheTimeout — с пяти минут (рекомендация по умолчанию) до 30 секунд. Такой подход усложнит реализацию планов злоумышленникам, хотя и окажет некоторый негативный эффект на производительность. Помимо этого нужно понимать, что в скором времени уязвимость BEAST может уйти в прошлое сама по себе — с 2020 года крупнейшие браузеры прекращают поддержку TLS 1.0 и 1.1. В любом случае с этими протоколами работает менее 1,5% всех пользователей браузеров.

DROWN


Это — кросс-протокольная атака, использующая ошибки в реализации SSLv2 с 40-битными ключами RSA. Злоумышленник прослушивает сотни TLS-подключений цели и отправляет специальные пакеты на сервер с SSLv2, использующий такой же приватный ключ. Используя атаку Блейхенбахера, хакер может расшифровать одну из примерно тысячи TLS-сессий клиента.

О DROWN впервые стало известно в 2016 году — тогда ей оказалась подвержена треть серверов в мире. На сегодняшний день она не утратила актуальности. Из 150 тысяч самых популярных сайтов 2% до сих пор поддерживают SSLv2 и уязвимые механизмы шифрования.

Как защититься. Необходимо установить патчи, предложенные разработчиками криптографических библиотек, отключающие поддержку SSLv2. Например, две такие заплатки представили для OpenSSL (в 2016 году это были обновления 1.0.1s и 1.0.2g). Также апдейты и инструкции по отключению уязвимого протокола опубликовали в Red Hat, Apache, Debian.

«Ресурс может быть уязвим для DROWN, если его ключи использует сторонний сервер с SSLv2, например почтовый, — отмечает начальник отдела развития IaaS-провайдера 1cloud.ru Сергей Белкин. — Такая ситуация возникает, если несколько серверов используют общий SSL-сертификат. В этом случае отключить поддержку SSLv2 нужно на всех машинах».

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

Heartbleed


Одна из самых крупных уязвимостей в софте — Heartbleed. Её обнаружили в 2014 году в библиотеке OpenSSL. На момент объявления об ошибке количество уязвимых веб-сайтов оценивалось в полмиллиона — это примерно 17% защищенных ресурсов в сети.

Атака реализуется через небольшой модуль Heartbeat расширения TLS. TLS-протокол требует, чтобы данные передавались непрерывно. В случае длительного простоя происходит разрыв и приходится заново устанавливать соединение. Чтобы справиться с проблемой, серверы и клиенты искусственно «зашумляют» канал (RFC 6520, стр.5), передавая пакет случайной длины. Если он оказывался больше всего пакета, то уязвимые версии OpenSSL читали память за пределами отведённого буфера. В этой области могли находиться любые данные, в том числе закрытые ключи шифрования и информация о других соединениях.

Уязвимость присутствовала во всех версиях библиотеки между 1.0.1 и 1.0.1f включительно, а также в ряде ОС — Ubuntu до 12.04.4, CentOS старше 6.5, OpenBSD 5.3 и других. Полный список есть на сайте, посвященном Heartbleed. Хотя патчи против этой уязвимости были выпущены практически сразу после её обнаружения, проблема остается актуальной до сих пор. Еще в 2017 году работало почти 200 тыс. сайтов, подверженных Heartbleed.

Как защититься. Нужно обновить OpenSSL до версии 1.0.1g или выше. Можно также отключить Heartbeat-запросы вручную с помощью опции DOPENSSL_NO_HEARTBEATS. После обновления специалисты по ИБ рекомендуют перевыпустить SSL-сертификаты. Замена нужна на случай, если данные о ключах шифрования все же попали к хакерам.

Подмена сертификата


Между пользователем и сервером устанавливается управляемый узел с легитимным SSL-сертификатом, активно перехватывающий трафик. Этот узел выдаёт себя за легитимный сервер, предъявляя валидный сертификат, и появляется возможность провести MITM-атаку.

Согласно исследованию команд из Mozilla, Google и ряда университетов, примерно 11% защищенных соединений в сети «прослушиваются». Это — результат установки подозрительных корневых сертификатов на компьютерах пользователей.

Как защититься. Пользоваться услугами надежных SSL-провайдеров. Проверить «качество» сертификатов можно с помощью сервиса Certificate Transparency (CT). Помочь с обнаружением «прослушки» могут и облачные провайдеры — уже сегодня некоторые крупные компании предлагают специализированные инструменты для мониторинга подключений по TLS.

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


/ Flickr / Yuri Samoilov / CC BY

Перспективы HTTPS


Несмотря на ряд уязвимостей, ИТ-гиганты и эксперты по ИБ уверены в будущем протокола. За активное внедрение HTTPS выступает создатель WWW Тим Бернерс-Ли. По его словам, со временем TLS будет становиться более защищенным, что значительно повысит безопасность соединений. Бернерс-Ли даже предположил, что в будущем появятся клиентские сертификаты для аутентификации личности. Они помогут улучшить защиту серверов от злоумышленников.

Развивать технологию SSL/TLS также планируется с помощью машинного обучения — умные алгоритмы будут отвечать за фильтрацию зловредного трафика. В HTTPS-соединениях у администраторов нет возможности узнать содержимое зашифрованных сообщений — в том числе и обнаружить запросы от вредоносного ПО. Уже сегодня нейронные сети способны фильтровать потенциально опасные пакеты с точностью 90%. (слайд 23 презентации).

Выводы


Атаки на HTTPS по большей части связаны не с проблемами в самом протоколе, а с поддержкой устаревших механизмов шифрования. ИТ-индустрия начинает постепенно отказываться от протоколов предыдущего поколения и предлагает новые инструменты для поиска уязвимостей. В будущем эти инструменты будут становиться все более интеллектуальными.

Дополнительные ссылки по теме:

Комментарии (3)


  1. Valsha
    28.04.2019 19:50

    Я правильно понял? От ВСЕХ этих уязвимостей можно одним махом защититься, перейдя на 1.3?


  1. saipr
    28.04.2019 21:32

    Как защититься. Нужно обновить OpenSSL до версии 1.0.1g или выше.

    А как же NSS? Ведь, например, Mozilla (а это и браузер и почтовый клиент и еще еще) не использует OpenSSL, а использует NSS (Network Seurity Services). На Linux машинах его надо впервую очередь обновлять.


  1. YegorP
    29.04.2019 11:49

    От подмены сертификатов можно ещё их запинивать — в клиентскую часть по возможности зашивается открытая часть сертификата, а штатный реестр удостоверяющих центров игнорируется. То есть делается свой белый список сертификатов.