- PVSM.RU - https://www.pvsm.ru -

Потенциальные атаки на HTTPS и как от них защититься

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

Потенциальные атаки на HTTPS и как от них защититься - 1 [2]
/ Flickr / Sven Graeme [3] / CC BY-SA

POODLE

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

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

SSL 3.0 — устаревший протокол. Но вопрос его безопасности все еще актуален. Клиенты используют его, чтобы избежать проблем совместимости с серверами. По некоторым данным, почти 7% из 100 тыс. самых популярных сайтов все еще поддерживают SSL 3.0 [6]. Также существуют [7] модификации POODLE, целью которых являются более современные TLS 1.0 и TLS 1.1. В этом году появились [8] новые атаки 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-шифрование. Вместо него, применяются более стойкие AES и ChaCha20.

BEAST

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

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

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

DROWN

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

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

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

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

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

Heartbleed

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

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

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

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

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

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

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

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

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

Потенциальные атаки на HTTPS и как от них защититься - 2
/ Flickr / Yuri Samoilov [32] / CC BY

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

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

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

Выводы

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

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

Автор: 1cloud

Источник [39]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/informatsionnaya-bezopasnost/316009

Ссылки в тексте:

[1] использует HTTPS: https://1cloud.ru/services/ssl/dv?utm_source=habrahabr&utm_medium=cpm&utm_campaign=https&utm_content=site

[2] Image: https://habr.com/ru/company/1cloud/blog/449866/

[3] Sven Graeme: https://www.flickr.com/photos/2011101/23434336563/

[4] POODLE: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3566

[5] CBC: https://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%B6%D0%B8%D0%BC_%D1%81%D1%86%D0%B5%D0%BF%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B1%D0%BB%D0%BE%D0%BA%D0%BE%D0%B2_%D1%88%D0%B8%D1%84%D1%80%D0%BE%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0%B0

[6] все еще поддерживают SSL 3.0: https://www.thesslstore.com/blog/nearly-21-of-the-worlds-top-100000-websites-still-arent-using-https/

[7] существуют: https://www.globalsign.com/en/blog/poodle-vulnerability-expands-beyond-sslv3-to-tls/

[8] появились: https://www.tripwire.com/state-of-security/vulnerability-management/zombie-poodle-goldendoodle/

[9] использует: https://www.acunetix.com/blog/articles/tls-vulnerabilities-attacks-final-part/

[10] подвержен ряд сетевых инструментов: https://www.zdnet.com/article/its-2018-and-network-middleware-still-cant-handle-tls-without-breaking-encryption/

[11] рекомендуют: https://kb.vmware.com/s/article/2008784

[12] прекращают: https://www.bleepingcomputer.com/news/security/tls-10-and-tls-11-being-retired-in-2020-by-all-major-browsers/

[13] атаку Блейхенбахера: https://en.wikipedia.org/wiki/Adaptive_chosen-ciphertext_attack

[14] поддерживают: https://www.ssllabs.com/ssl-pulse/

[15] это были обновления: https://drownattack.com/#mitigation

[16] Red Hat: https://access.redhat.com/security/vulnerabilities/drown

[17] Apache: https://httpd.apache.org/docs/2.2/mod/mod_ssl.html#sslprotocol

[18] Debian: https://security-tracker.debian.org/tracker/CVE-2016-0800

[19] IaaS-провайдера 1cloud.ru: https://1cloud.ru/?utm_source=habrahabr&utm_medium=cpm&utm_campaign=https&utm_content=site

[20] утилиты: https://github.com/nimia/public_drown_scanner

[21] посте на сайте OpenSSL: https://www.openssl.org/blog/blog/2016/03/01/an-openssl-users-guide-to-drown/

[22] Heartbleed: https://ru.wikipedia.org/wiki/Heartbleed

[23] оценивалось в полмиллиона: https://news.netcraft.com/archives/2014/04/08/half-a-million-widely-trusted-websites-vulnerable-to-heartbleed-bug.html

[24] RFC 6520, стр.5: https://tools.ietf.org/html/rfc6520

[25] на сайте, посвященном Heartbleed: http://heartbleed.com/

[26] работало почти 200 тыс. сайтов: https://thehackernews.com/2017/01/heartbleed-openssl-vulnerability.html

[27] обновить OpenSSL: https://www.openssl.org/source/

[28] исследованию: https://jhalderm.com/pub/papers/interception-ndss17.pdf

[29] SSL-провайдеров: https://1cloud.ru/services/ssl?utm_source=habrahabr&utm_medium=cpm&utm_campaign=https&utm_content=site

[30] Certificate Transparency: https://www.certificate-transparency.org/

[31] стандарт: https://habr.com/ru/company/1cloud/blog/444986/

[32] Yuri Samoilov: https://www.flickr.com/photos/yusamoilov/13334048894/

[33] выступает: https://www.w3.org/DesignIssues/Security-NotTheS.html

[34] будущем появятся: https://www.w3.org/DesignIssues/Security-ClientCerts.html

[35] слайд 23 презентации: https://2018.bsidesbud.com/wp-content/uploads/2018/03/seba_garcia_frantisek_strasak.pdf?forcedefault=true

[36] Разработка в облаке, ИБ и персональные данные: дайджест от 1cloud: https://habr.com/ru/company/1cloud/blog/448760/

[37] SSL-дайджест: Лучшие практические материалы на Хабре и не только: https://habrahabr.ru/company/1cloud/blog/315758/

[38] VPN-дайджест: Ознакомительные статьи на Хабре и не только: https://habrahabr.ru/company/1cloud/blog/316266/

[39] Источник: https://habr.com/ru/post/449866/?utm_source=habrahabr&utm_medium=rss&utm_campaign=449866