Вы можете предположить, что вам не нужно беспокоиться об атаках «человек посередине» (MITM), но как насчет приложений для телефонов или встроенных веб-сайтов?

Что такое атака «человек посередине»?

Общедоступные интернет-соединения по своей природе небезопасны из-за риска атаки MITM. Я не говорю, что вы никогда не должны использовать общедоступные соединения Wi-Fi. Тем не менее, в следующий раз, когда вы будете в Starbucks или в аэропорту, вы должны быть особенно осторожны, чтобы принять меры предосторожности, такие как VPN, и избегать посещения веб-сайтов, которые могут раскрывать конфиденциальную личную информацию. Если вы регулярно путешествуете, рассмотрите возможность приобретения портативной точки доступа Wi-Fi.

Как работает MITM-атака?

  1. Злоумышленник выполняет атаку отравления ARP (например, спуфинг ARP), которая сопоставляет IP-адрес Wi-Fi-маршрутизатора с mac-адресом машины злоумышленника. Теперь трафик ничего не подозревающих пользователей будет направляться злоумышленнику. Эту атаку легко выполнить, если злоумышленник также подключен к тому же Wi-Fi-маршрутизатору.
  2. Пользователь запрашивает веб-сервер, но неосознанно взаимодействует с машиной злоумышленника. Злоумышленник может читать заголовки запросов и незашифрованные запросы.
  3. Злоумышленник перенаправляет запрос пользователя на веб-сервер. Веб-сервер не знает, что происходит атака.
  4. Веб-сервер обрабатывает запрос пользователя. Опять же, злоумышленник может прочитать заголовки ответов и незашифрованный трафик.
  5. Злоумышленник пересылает ответ от веб-сервера пользователю. Веб-страница будет нормально загружаться для пользователя, как если бы злоумышленника не существовало.

В этот момент злоумышленник успешно встал между вами и веб-сервером. Наиболее часто рекомендуемое решение для снижения риска MITM — избегать веб-сайтов, не использующих TLS (например, веб-сайтов, не использующих HTTPS). Но когда вы загружаете веб-сайт HTTPS, выполняется серия веб-запросов для загрузки HTML, CSS JavaScript, изображений и других ресурсов, но это не гарантирует, что они будут HTTPS.

К счастью, для большинства современных браузеров, включая Google Chrome, нам не нужно беспокоиться об этом начиная с релиза 81. После этого изменения в 2020 году, если вы посещаете веб-сайт HTTPS, Chrome автоматически обновит HTTP-запросы до HTTPS и заблокирует их, если обновление не удастся. Этот параметр настраивается для каждого веб-сайта, поскольку некоторые веб-сайты могут не поддерживать автоматическое обновление трафика до HTTPS.

Взгляните на этот пример веб-сайта. Попробуйте выполнить загрузку с включенной настройкой небезопасного содержимого и без нее (конечно, если вы используете защищенное соединение). URL здесь:



Если вы откроете инструменты разработчика Chrome и перейдете к сетевой панели, вы увидите девять дополнительных запросов контента после первоначального HTTPS-запроса, и три из этих запросов (выделены красным) не являются безопасными.

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

Если бы эти запросы не были заблокированы и не оставлены незашифрованными, ваши данные могли бы подвергнуться серьезному риску, поскольку отсутствие шифрования делает вас уязвимыми для атаки MITM. Мы обсудили, как работает атака MITM, но что может сделать злоумышленник после того, как он гнусно поместил свою систему «посередине»? Вот пара подвигов:

  1. Воздействие данных: злоумышленник может просматривать незашифрованный контент, который может содержать личную информацию. Даже если они не содержат личной информации, характер данных может подвергнуть пользователя нежелательному анализу его частной жизни и, в некоторых режимах, использоваться для цензуры или ограничения гражданских свобод. Например, пассивное содержимое, такое как изображения, не всегда запрашивается с помощью HTTPS. Тем не менее, если злоумышленник перехватывает изображения с религиозных сайтов, сайтов знакомств или порнографических сайтов, он может узнать личную информацию, используемую для преследования пользователя.
  2. Внедрение кода: злоумышленник заменяет безопасный веб-контент вредоносным. В приведенном выше примере, поскольку simple-example.js не был зашифрован, злоумышленник мог заменить код произвольным JavaScript. Внедрение вредоносного JavaScript может быть использовано для использования других уязвимостей системы, таких как простое извлечение данных или компрометация браузера пользователя и, возможно, всей его системы.

4 самых популярных безопасных браузера!

Сегодня Chrome, Safari, Edge и Firefox в самых последних версиях защищены от атак «человек посередине» при посещении веб-сайтов, защищенных HTTPS, поскольку они предотвращают использование MITM со смешанным содержимым, описанное выше.

Однако, если вы входите в 8%, которые используют Samsung Internet, Opera или UC Browser, извините, вам нужно будет проверить это самостоятельно. Основной риск заключается в длинном хвосте браузеров, отнесенных ниже к категории «Другие». Поскольку у них намного меньше инвестиций и контроля, я бы не стал предполагать, что они внедрили такие последние функции безопасности, как эта.

Например, UC Browser загружает JavaScript и запускает его немедленно без предупреждения, если вы посещаете тот же активный URL-адрес смешанного контента, указанный выше. Полное название приложения: UC Browser-Safe, Fast, Private. Это не безопасно и не приватно, если в вашей сети есть злоумышленник. На UC Browser приходится почти 1% браузеров по всему миру и около 12% пользователей в Китае.

Безопасны ли приложения для Android и iOS?

Не обязательно! Возможно, вы не так защищены, как вы думаете, когда вы проводите время, прижимая большой палец к какой-нибудь прыгающей птице или игре в жанре Tower Defense или просматривая ошеломляющие приложения для социальных сетей. Связь между вашими приложениями iOS или Android с веб-сервером их приложений не гарантируется с помощью TLS.

И Apple, и Google настоятельно рекомендуют разработчикам внедрять передовые методы обеспечения безопасности, но позволяют разработчикам отказаться от гарантированной безопасности HTTPS. В отличие от вашего браузера Chrome в приведенном выше примере, эти настройки контролируются разработчиками, а не пользователем.

И Apple, и Google позволяют разработчику настраивать приложение для связи в незашифрованном виде и в открытом виде. iOS называет это «исключением», подразумевая, что это не может быть разрешено постоянно.

Документация по безопасности Android этой конфигурации:

Указывает, намерено ли приложение использовать сетевой трафик с открытым текстом, например HTTP с открытым текстом. Значение по умолчанию для приложений, нацеленных на уровень API 27 или ниже, — "true". Приложения, ориентированные на уровень API 28 или выше, по умолчанию имеют "false".

Вот аналогичная статья, документирующая процесс для iOS.

Давайте найдем пример на Android!

Проверка сетевого трафика на Android не так проста, как инструменты Chrome в настольном клиенте. Я не могу просто открыть вкладку сети в инструментах разработчика Chrome для проверки трафика. Настройка требует значительных усилий, поэтому я не буду вдаваться в подробности. Оставьте комментарий, если вам будет интересна статья по теме.

Во-первых, я скачал и настроил Инструментарий тестирования безопасности Burp Suite от PortSwigger, у которого есть бесплатная коммерческая версия с немного ограниченными возможностями. Я подключил Android-устройство к своему MacBookPro с помощью USB-кабеля и настроил HTTPS-прокси. Вы можете следовать этому руководству по проксированию трафика приложений Android для получения подробных инструкций по настройке.

По сути, я выполняю MITM-атаку на своем телефоне Android, за исключением того, что использую USB-кабель вместо спуфинга ARP, как в предыдущем примере.

Без каких-либо предварительных исследований я нашел и загрузил несколько непопулярных новостных приложений из магазина Google Play. После трех попыток у меня получилось. Приложение Новости России | Заголовки новостей России и мира почти исключительно общается по протоколу HTTP. Проверьте трафик ниже:

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

Что можно сделать?

Отлично, приложения не обязательно безопасны. Отлично, не понятно какие приложения безопасные, а какие нет. Не следует ожидать, что вы проведете глубокий анализ безопасности, прежде чем поместить приложение в свою обычную ротацию прокрутки. Есть две вещи, которые вы должны сделать:

  1. Используйте только надежные сети. Стоит ли подключаться к Wi-Fi в местном дайв-баре? Возможно, нет. Если вам нужен интернет на ноутбуке во время путешествия, используйте телефон в качестве точки доступа или купите портативную точку доступа Wi-Fi.
  2. Загрузите надежный VPN и оставьте его включенным… всегда. ExpressVPN, NordVPN и т. д. Вариантов много. Проведите небольшое исследование и выберите тот, который лучше всего подходит для вас.
  3. Избегайте встроенных браузеров. Помимо безопасности, если вы цените свою конфиденциальность, вам в любом случае следует избегать их. См. «Этот сайт раскрывает жуткие вещи, которые могут отслеживать встроенные в приложения браузеры TikTok и Instagram.

Заворачивать

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

Я подозреваю, что они работают над устранением этих уязвимостей и защитой пользователей, требуя, чтобы весь трафик приложений был HTTPS. Однако это может занять некоторое время, поскольку приложения часто вызывают сторонние службы, которые могут не поддерживать HTTPS. А пока используйте VPN и оставайтесь в безопасности.

И дайте мне знать, если я что-то пропустил. Я гарантирую, что сделал.