Открыть сервис

SSL-стриппинг

SSL-стриппинг (англ. SSL stripping, от strip — «сдирать», «снимать») — это вид атаки типа «человек посередине» (MITM), направленный на принудительное понижение защищённого HTTPS-соединения до незащищённого HTTP. Целью атаки является перехват или модификация передаваемых данных (логинов, паролей, номеров банковских карт, личной переписки) без ведома пользователя. Атака была впервые публично продемонстрирована американским специалистом по информационной безопасности Мохитом «Мокси» Марлинспайком в 2009 году на конференции Black Hat.

Принцип работы

Атака SSL-стриппинг эксплуатирует особенности взаимодействия веб-браузера и веб-сервера при установке соединения. В нормальном сценарии пользователь вводит в адресной строке браузера адрес сайта (например, example.com), и браузер по умолчанию пытается установить соединение по протоколу HTTP (порт 80). Если сайт поддерживает HTTPS, сервер отправляет браузеру перенаправление (редирект) на защищённую версию страницы (например, https://example.com`). После этого браузер устанавливает HTTPS-соединение, и данные шифруются.

При SSL-стриппинге злоумышленник, находящийся между пользователем и сервером (например, в одной беспроводной сети Wi-Fi), перехватывает начальный HTTP-запрос пользователя. Вместо того чтобы передать его на сервер, злоумышленник сам устанавливает HTTPS-соединение с сервером от имени пользователя, а с пользователем поддерживает незащищённое HTTP-соединение. При этом злоумышленник модифицирует все ссылки, скрипты и формы на странице так, чтобы они вели на HTTP-версии, а также подменяет редиректы с HTTP на HTTPS, не давая браузеру переключиться на защищённый протокол. Пользователь видит в адресной строке значок незащищённого соединения (или отсутствие значка замка), но может не обратить на это внимания, особенно если сайт изначально загружался по HTTP.

Таким образом, злоумышленник получает полный доступ к содержимому страниц и данным, вводимым пользователем, в открытом (незашифрованном) виде.

Условия для проведения атаки

Для успешного осуществления SSL-стриппинга необходимо выполнение нескольких условий:

  • Нахождение злоумышленника в одной сети с жертвой (например, в общедоступной Wi-Fi-сети в кафе, аэропорту, гостинице) или возможность перехвата трафика на уровне провайдера или маршрутизатора.
  • Отсутствие у пользователя привычки проверять адресную строку браузера на наличие значка замка и протокола HTTPS.
  • Наличие у сайта возможности работы по HTTP (то есть сайт не принуждает к HTTPS через HSTS (HTTP Strict Transport Security) или делает это нестрого).
  • Использование злоумышленником инструментов для перехвата и модификации трафика (например, arpspoof, ettercap, mitmproxy, sslstrip — оригинальная утилита, написанная Марлинспайком).

История и развитие

Появление атаки (2009)

В 2009 году Мохит Марлинспайк представил на конференции Black Hat DC инструмент sslstrip и продемонстрировал, как с его помощью можно перехватывать данные пользователей в общественных Wi-Fi-сетях. Атака оказалась эффективной против большинства популярных сайтов того времени, включая почтовые сервисы, социальные сети и интернет-банки, поскольку многие из них не использовали HSTS или использовали его нестрого.

Реакция индустрии

После публикации атаки разработчики браузеров и веб-сайтов начали активнее внедрять механизмы защиты. В 2010 году был предложен стандарт HSTS (RFC 6797), который позволяет веб-серверу сообщить браузеру, что сайт должен всегда подключаться только по HTTPS. Браузеры начали поддерживать HSTS, а также встроенные списки предварительной загрузки HSTS (HSTS preload lists), в которые включаются наиболее популярные и критически важные сайты (например, Google, Facebook, банки).

Современное состояние

Несмотря на широкое внедрение HTTPS и HSTS, SSL-стриппинг остаётся актуальной угрозой. Основные причины:

  • Многие сайты до сих пор не используют HSTS или используют его с коротким сроком действия (max-age).
  • Пользователи часто игнорируют предупреждения браузера о незащищённом соединении.
  • Злоумышленники могут использовать более сложные варианты атаки, например, SSL-стриппинг с использованием подмены DNS или поддельных сертификатов (в сочетании с другими методами).

Методы защиты

Со стороны пользователя

  • Всегда проверять адресную строку браузера на наличие значка замка и протокола https://`. При отсутствии замка или появлении предупреждения о незащищённом соединении не вводить конфиденциальные данные.
  • Использовать VPN-сервисы (виртуальные частные сети), которые шифруют весь трафик между устройством и VPN-сервером, делая атаку MITM в локальной сети бесполезной.
  • Устанавливать браузерные расширения, принудительно включающие HTTPS (например, HTTPS Everywhere, ныне встроенное в Firefox и Chrome).
  • Избегать использования общедоступных Wi-Fi-сетей для доступа к банковским и другим критически важным сервисам без дополнительной защиты.

Со стороны разработчиков и администраторов сайтов

  • Внедрять HSTS с большим значением max-age (не менее 1 года) и включать домен в список предварительной загрузки HSTS (HSTS preload).
  • Перенаправлять все HTTP-запросы на HTTPS на уровне сервера (например, через редирект 301 или 302).
  • Использовать Content Security Policy (CSP) с директивой upgrade-insecure-requests, которая заставляет браузер автоматически заменять HTTP-ссылки на HTTPS.
  • Не поддерживать HTTP-версии сайта (отключать порт 80 или возвращать на нём только редирект).

Со стороны производителей браузеров

  • Встроенные списки предварительной загрузки HSTS для наиболее важных доменов.
  • Предупреждения о незащищённых формах ввода данных (например, Chrome помечает поля ввода пароля на HTTP-страницах как небезопасные).
  • Постепенный отказ от поддержки HTTP (например, Chrome с версии 90 помечает HTTP-страницы как «небезопасные»).

Примеры реализации

Оригинальная утилита sslstrip (написана на Python) работает следующим образом:

  1. Злоумышленник запускает sslstrip на своём компьютере, который выступает в роли шлюза для жертвы (например, через ARP-спуфинг).
  2. Утилита прослушивает HTTP-трафик и модифицирует все ответы сервера, заменяя ссылки https:// на http://, а также удаляя или изменяя редиректы на HTTPS.
  3. Пользователь продолжает работать с сайтом, не замечая подмены, а все его данные (логины, пароли, cookie) передаются в открытом виде.

Современные аналоги (например, mitmproxy, bettercap) позволяют проводить более сложные атаки, включая подмену сертификатов и автоматическое извлечение данных.

Критика и ограничения

SSL-стриппинг считается устаревшей атакой в условиях массового внедрения HTTPS и HSTS. Однако она остаётся эффективной против:

  • Сайтов, не использующих HSTS.
  • Пользователей, которые игнорируют предупреждения браузера.
  • Сетей, где злоумышленник может контролировать DNS (например, через подмену DNS-сервера).

Критики отмечают, что атака требует от злоумышленника определённых технических навыков и доступа к сети жертвы, что ограничивает её массовое применение. Тем не менее, SSL-стриппинг остаётся классическим примером уязвимости, связанной с недостаточной защитой канала передачи данных.

Источники

  • Moxie Marlinspike. «New Tricks for Defeating SSL in Practice» (Black Hat DC, 2009).
  • RFC 6797 — HTTP Strict Transport Security (HSTS).
  • OWASP. «SSL Stripping» (OWASP Testing Guide).
  • «HTTPS Everywhere» — Electronic Frontier Foundation (EFF).
  • «SSLstrip» — официальный репозиторий инструмента (GitHub).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →