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

Новые инструменты для обнаружения HTTPS-перехвата

Новые инструменты для обнаружения HTTPS-перехвата - 1 [1]

По мере роста использования HTTPS растёт желание посторонних лиц внедриться в защищённый трафик. Исследование 2017 года The Security Impact of HTTPS Interception [2] показало, что это становится всё более распространённой практикой. Анализ трафика на серверах обновления Firefox показал, что в отдельных странах процент внедрения посторонних агентов в HTTPS достигает 15%.

Со времени исследования ситуация вряд ли улучшилась. Сейчас даже последняя модель беспроводных наушников Sennheiser требует установить в системе корневой сертификат [3] (с небезопасными параметрами).

Чаще всего защиту компрометирует антивирус или корпоративный middlebox (см. список ниже), но бывает и хуже. В любом случае, лучше знать наверняка, когда ваш канал HTTPS на самом деле не защищён из конца в конец. Даже когда сторонняя система перехватывает трафик из лучших побуждений, она зачастую не поддерживает современные шифры или не валидирует сертификаты, таким образом снижая общую защиту соединения. А ведь перехватывать SSL-трафик могут не только в благих целях, но и в злонамеренных: например, для цензуры на государственном уровне.

Программы мониторинга HTTPS работают как прозрачные прокси, которые обрывают сессию TLS, инспектируют контент, а затем устанавливают новую сессию с сервером назначения. Они используют не такие версии TLS-библиотек, как у популярных браузеров, что позволяет обнаружить их на стороне сервера по несоответствию между HTTP User-Agent и TLS Client Hello реального браузера и прокси.

Для начала приведём некоторые практические выводы из исследования 2017 года, в котором участвовали Mozilla, Google, GlobalSign, а также академические исследователи из Мичиганского университета, Иллинойсского университета в Урбане-Шампейне и Калифорнийского университета в Беркли.

Практический вред от HTTPS-перехвата [4] заключается в деградации шифрования и дополнительных уязвимостях «прозрачного прокси». Авторы исследования оценили по этим параметрам ряд популярных middlebox'ов. Как видим, в 2017 году почти половина из них не поддерживала современные наборы шифров, а у пяти зарегистрированы серьёзные уязвимости. Только 1 из 12 оказался способен полностью зеркалировать все пользовательские наборы шифров.

Новые инструменты для обнаружения HTTPS-перехвата - 2 [5]

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

Новые инструменты для обнаружения HTTPS-перехвата - 3 [6]

Защищая от одних угроз, антивирусы снижают шифрование и добавляют собственные уязвимости. В целом установка стороннего антивируса часто значительно ухудшает общую безопасность системы. Некоторые специалисты советуют пользователям всегда удалять из системы сторонние антивирусы [7], потому что их инвазивный и плохо написанный код осложняет браузерам и другим программам возможность обеспечить собственную безопасность.

На пути между клиентом и сервером могут работать и другие «прозрачные прокси». Чтобы лучше детектировать этих агентов, компания Cloudflare недавно выпустила два новых инструмента:

  1. MITMEngine [8], свободная библиотека для определения HTTPS-перехвата.
  2. MALCOLM [9], приборная панель для отображения метрик о HTTPS-перехвате в сети Cloudflare.

Главный интерес представляет библиотека MITMEngine. Разработчики пишут [10], что взяли за образец популярный инструмент Caddy Server MITM Detection [11]. Он поддерживает набор популярных браузеров и распознаёт HTTPS-перехват по специфическим отпечаткам сообщений TLS Client Hello и User Agent, как описано выше.

Разработчики постарались обеспечить расширяемость, упростив будущее добавление в детектор новых версий браузеров, а также улучшили производительность и расширили функциональность детектора, по сравнению с Caddy Server MITM Detection. Он анализирует следующие параметры TLS Client Hello, сравнивая реальные данные с отпечатками известных браузеров:

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

Фактически, MITMEngine выполняет частичный фингерпринтинг пользователя без его деанонимизации, но с надёжным определением, что соединение устанавливает реальный браузер, а не посредник.

Пример работы

Предположим, MITMEngine видит следующий User Agent от пользователя:

Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/47.0.2526.111 Safari/537.36

Этот User Agent соответствует Chrome 47 под Windows 7. Он сопровождается сообщением TLS Client Hello, которое указывает на следующие наборы шифров, в hex:

0000 c0 2b c0 2f 00 9e c0 0a c0 14 00 39 c0 09 c0 13 .+./.... ...9....
0010 00 33 00 9c 00 35 00 2f 00 0a .3...5./ ..

Это сообщение соответствует таким наборам шифров:

TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (0xc02b)
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (0xc02f)
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (0x009e)
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA (0xc00a)
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014)
TLS_DHE_RSA_WITH_AES_256_CBC_SHA (0x0039)
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA (0xc009)
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013)
TLS_DHE_RSA_WITH_AES_128_CBC_SHA (0x0033)
TLS_RSA_WITH_AES_128_GCM_SHA256 (0x009c)
TLS_RSA_WITH_AES_256_CBC_SHA (0x0035)
TLS_RSA_WITH_AES_128_CBC_SHA (0x002f)
TLS_RSA_WITH_3DES_EDE_CBC_SHA (0x000a)

Дефолтные наборы шифров для Chrome 47 следующие:

0000 c0 2b c0 2f 00 9e cc 14 cc 13 c0 0a c0 14 00 39 .+./.... .......9
0010 c0 09 c0 13 00 33 00 9c 00 35 00 2f 00 0a .....3.. .5./..

Если посмотреть внимательно, то можно заметить: в реальном трафике список шифров чуть короче, чем должно быть в реальном браузере. Хотя остальные расположены в том же порядке, но не хватает двух наборов:

TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 (0xcc14)
TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (0xcc13)

Можно предположить, что трафик от браузера пользователя проходит через прозрачный прокси, который не поддерживает шифры ChaCha. Это снижает защиту пользователя, поскольку в списке следующие за ChaCha наборы шифров AES-CBC уязвимы [12] для атак типа padding oracle.

В некоторых случаях MITMEngine позволяет даже определить, какая конкретно программа вызывает деградацию HTTPS-соединения (в примере выше это антивирус Sophos). Сервер может предупредить пользователя об этой угрозе.


Новые инструменты для обнаружения HTTPS-перехвата - 4 [13]

Автор: GlobalSign_admin

Источник [14]


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

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

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

[1] Image: https://habrastorage.org/webt/fo/qw/00/foqw00u6rxe1pz2sawwacn1c6ao.png

[2] The Security Impact of HTTPS Interception: https://jhalderm.com/pub/papers/interception-ndss17.pdf

[3] требует установить в системе корневой сертификат: https://arstechnica.com/information-technology/2018/11/sennheiser-discloses-monumental-blunder-that-cripples-https-on-pcs-and-macs/

[4] Практический вред от HTTPS-перехвата: https://www.us-cert.gov/ncas/alerts/TA17-075A

[5] Image: https://habrastorage.org/webt/lb/na/sw/lbnasw0tvhmtkxl3sf09liqlhpe.png

[6] Image: https://habrastorage.org/webt/kl/xb/xl/klxbxlkefin0ubouor2j7mxl24g.png

[7] всегда удалять из системы сторонние антивирусы: https://habr.com/ru/post/401059/

[8] MITMEngine: https://github.com/cloudflare/mitmengine

[9] MALCOLM: https://malcolm.cloudflare.com/

[10] пишут: https://blog.cloudflare.com/monsters-in-the-middleboxes/

[11] Caddy Server MITM Detection: https://caddyserver.com/docs/mitm-detection

[12] уязвимы: https://blog.cloudflare.com/padding-oracles-and-the-decline-of-cbc-mode-ciphersuites/

[13] Image: https://clck.ru/EhoeK

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