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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0 (Windows NT 6. Mozilla/5. 36 (KHTML, like Gecko)
Chrome/47. 1; WOW64) AppleWebKit/537. 2526. 0. 36
111 Safari/537.

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

... 0000 c0 2b c0 2f 00 9e c0 0a c0 14 00 39 c0 09 c0 13 .+./.... 3... 9....
0010 00 33 00 9c 00 35 00 2f 00 0a . 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 .+./.... 3.. 9
0010 c0 09 c0 13 00 33 00 9c 00 35 00 2f 00 0a ..... 5./..
.

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

TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 (0xcc14)
TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (0xcc13)

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

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


Оставить комментарий

Ваш email нигде не будет показан
Обязательные для заполнения поля помечены *

*

x

Ещё Hi-Tech Интересное!

Внедрение LoRaWAN на сельскохозяйственном предприятии. Часть 2. Учет топлива

Здравствуйте уважаемые читатели! Со времени публикации первой статьи, мы подросли, наши любимые поставщики-разработчики LoThings, проделали не мало кропотливой работы, и наступил день, когда есть что рассказать и показать! Одной из них, был контроль учета топлива на АЗС. Запустив нашу первую ...

Optlib. Реализация генетического алгоритма оптимизации на Rust

В этой статье описывается библиотека optlib, предназначенная для решения задач глобальной оптимизации на языке Rust. На момент написания этой статьи в этой библиотеке реализован генетический алгоритм нахождения глобального минимума функции. Библиотека optlib не привязана к конкретному типу входных данных для ...