Совсем недавно довелось наткнуться на весьма любопытную заморскую статью. Хотелось бы сопоставить изложенные там факты с российским опытом. Смело делитесь своими мыслями в коментариях. Спойлер: шеф, все пропало!
В этой статье мы рассмотрим, проблему перехвата зашифрованного веб-трафика и её влияние на онлайн-безопасность. Согласно исследованию, опубликованному в NDSS 2017, сегодня перехватывается от 4% до 10% HTTPS-трафика. Анализ перехватов показал, что хотя они не всегда приносят вред, но всё же средства перехвата зачастую ослабляют шифрование, используемое для обеспечения безопасности коммуникаций, что повышает риски для пользователей.
Как перехватывается шифрованный трафик?
Как показано на иллюстрации, трафик перехватывается с помощью «атаки посредника». Специальное ПО перенаправляет на себя шифрованное соединение и притворяется запрошенным сайтом. Затем перехватчик открывает новое шифрованное соединение с целевым сайтом и проксирует данные сквозь себя, между двумя соединениями, что делает перехват по большей части «невидимым». Поскольку перехватчик получает доступ к не зашифрованным данным в рамках соединения, то он может считывать, изменять и блокировать любой контент, передающийся или получаемый клиентом.
Есть два основных способа перехвата соединений: локальный и удалённый.
Локальный перехват: когда программа-перехватчик выполняется прямо на пользовательском компьютере, сетевой стек операционной системы модифицируется таким образом, чтобы перехватывать и перенаправлять соединения в перехватчика. Этот подход обычно используется антивирусным ПО для мониторинга сетевых подключений, чтобы идентифицировать зловредные скачивания и попытки зловредов похитить данные или внедрить рекламу.
Удалённый перехват: выполняется посредством вставки в сетевой путь мониторинга, соединяющего пользовательский компьютер с сайтом, к которому обращается пользователь. Например, это можно сделать с помощью перенаправления сетевого трафика на перехватчика посредством политик файрвола. Сетевой перехват обычно выполняется «блоками защиты» (security box), которые пытаются выявить атаки или мониторят утечки корпоративных данных из всех компьютеров в сети. Эти аппараты также зачастую используются для перехвата и анализа электронной почты.
Важный аспект перехвата — как приложения выдают себя за сайты, а пользовательские браузеры не замечают подмены. Обычно при установке HTTPS-соединения браузер подтверждает подлинность сайта, проверяя представленный на нём сертификат. Если сертификат не проходит проверку, то браузер выдаёт предупреждение, как на картинке выше, что соединение потенциально небезопасно. Поэтому «невозможность подделки» TLS-сертификатов является краеугольным камнем онлайн-безопасности. Это техническое средство, дающее нам уверенность, что мы общаемся с правильной стороной, а не с самозванцем.
Возникает вопрос, а как HTTPS-перехватчики могут генерировать валидные сертификаты для всех сайтов, если они создавались как неподделываемые? Ответ кроется в процедуре определения браузером валидности сертификата. Если в общем, то при установке нового соединения браузер смотрит, подписан ли представленный на сайте сертификат одним из центров сертификации. Сертификаты центров хранятся локально на компьютере, в доверенном хранилище, поэтому любой добавляемый туда сертификат центра сертификации может быть использован для генерирования валидного сертификата для любого сайта.
Поэтому перехватчику проще всего подделывать сертификаты не через какую-то мудрёную криптографическую атаку, а посредством добавления собственного «корневого» сертификата в хранилище на компьютере. Тогда браузер будет доверять любому сертификату, подписанному перехватчиком. Это не является уязвимостью, потому что добавление сертификата, конечно, возможно только тогда, если у перехватчика есть доступ к файловой системе компьютера, или если сертификат установил сисадмин.
Насколько распространён перехват HTTPS?
Измерение количества перехватов — задача непростая, потому что перехватчики себя не рекламируют. Так что для регистрации фактов перехвата мы использовали усовершенствованную версию технологии сетевого «отпечатка пальца», известную как TLS fingerprinting. Это позволило нам определять, какое ПО осуществляет соединение (перехватчик или браузер). Технология оценивает конструкцию клиентского приветственного TLS-пакета (например, наборы шифров и TLS-опции) и сравнивает её с базой данных известных «отпечатков». Их надёжность очень высока, особенно по сравнению с user-agent’ом, рекламируемым в HTTP-запросе.
Исследователи оценивали работу большого интернет-магазина, сайта Cloudflare и серверы обновления Firefox. Оценивалось количество перехваченного их сервисами браузерного трафика. Важно иметь много «точек обзора», потому что результат меняется в зависимости от того, откуда смотреть. Например, в целом доля перехватываемых HTTPS-соединений варьируется от 4% до 10%. Это много, но важно помнить, что не все перехваты выполняются злоумышленниками.
Разбив по операционным системам трафик на Cloudflare и интернет-магазин выяснилось, что с Windows перехватывается гораздо чаще, чем с MacOS. Трафик с Android и iOS перехватывается значительно реже, чем с настольных ОС. Полное разбиение можно посмотреть на странице 13 нашего отчёта (ссылка в начале статьи).
Разбиение перехвата трафика обновления Firefox демонстрирует совсем другую картину. Чаще всего перехватом занимаются мобильные провайдеры. Отчасти это можно объяснить тем, что настольная версия Firefox использует отдельное хранилище для корневых SSL-сертификатов, что делает его менее вероятным кандидатом на перехват по сравнению с другими браузерами.
Кто и почему занимается перехватом на коммуникациях?
Вопреки распространённому мнению, перехват трафика не обязательно несёт вред. Согласно проведенному исследованию, обычно трафик перехватывается по двум противоположным причинам:
• Улучшение безопасности: антивирусы и некоторые корпоративные файрволы/IPS перехватывают трафик ради защиты своих пользователей. Они хотят проверять шифрованный трафик, стараясь предотвратить проникновение зловредов или мониторить утечку данных. Некоторое ПО для родителей и блокировщики рекламы используют аналогичный подход для блокирования трафика на определённые сайты.
• Активность злоумышленников: на другом конце спектра находится зловредное ПО, которое выполняет перехват ради внедрения рекламы или похищения конфиденциальных данных.
Выявив «отпечатки» известных продуктов, исследователи смогли отнести на их счёт немалую долю перехватов. При этом несколько приложений все же определить не удалось, что вполне может быть зловредным ПО.
Как перехват HTTPS-трафика влияет на безопасность?
Если перехват выполняется не с корыстными целями, то почему вообще это может ослабить онлайн-безопасность?
Основная причина в том, что большинство продуктов для перехвата используют не самую лучшую криптографию. И когда выполняется перехват, соединение от перехватчика к сайту использует небезопасное шифрование пользовательских данных вместо более надёжных алгоритмов, применяемых в современных браузерах.
А из-за слабого/уязвимого шифрования трафик становится уязвимее для атак. Хакеры также могут перехватывать шифрованные соединения и похищать данные вроде документов, электронных писем и сообщений мессенджеров. В некоторых случаях, например, у Komodia, реализация криптографии настолько плоха, что атакующий может с минимальными усилиями перехватывать любые зашифрованные коммуникации.
Чтобы посчитать влияние HTTPS-перехватов на безопасность соединений исследователи проанализировали безопасность криптографических стеков, используемых перехватчиками. В целом у 65% перехваченных соединений на серверы обновления Firefox безопасность снижена, а 37% оказались легкоуязвимы к «атакам посредника» из-за вульгарных криптографических ошибок (например, сертификаты не валидированы) [65,7%+36,8%=102,5%, но так в оригинале — прим. переводчика]. Не сильно лучше оказалась ситуация с трафиком на Cloudflare.
Чтобы закончить на «позитивной» ноте, нужно упомянуть, что в редких случаях (4,1% у интернет-магазина и 14% у Cloudflare) перехват повышает безопасность соединений. Но это по большей части следствие ранжирования более слабых шифров (RC4 и 3DES).
В целом перехваты HTTPS распространены больше, чем ожидалось (4%—10%), и они влекут за собой серьёзные риски, поскольку ухудшают качество шифрования. Более того, используемые для перехвата реализации HTTPS не имеют тех же механизмов автоматического обновления, как в браузерах, что делает применение фиксов менее вероятным. Пассивные и перехватывающие промежуточные устройства тоже повлияли на задержанный релиз TLS 1.3 в браузерах.
Надеемся, что привлечение внимания к этой проблеме поможет программным вендорам, полагающимся на перехват, осознать рискованность этой практики. Ну а у нас есть очередная тема для дискуссии.
Автор: Дмитрий Смиркин