Анализ негативного эффекта от формирования мессенджерами эскизов ссылок
27 октября 2020 года
Исследователи безопасности из компании Mysk проанализировали реализацию функции предпросмотра ссылок в 18 популярных мессенджерах. Большинство мессенджеров при отправке ссылки автоматически загружают содержимое, на которое указывает ссылка, и выводит пользователю наглядный эскиз. В зависимости от мессенджеров формирование эскиза может производиться как на серверах, обслуживающих мессенджер, так и на стороне отправителя или получателя.
В ходе исследования выявлено, что формирование эскиза на стороне получателя или отправителя приводит к дополнительному расходу трафика, вплоть до исчерпания небезлимитных тарифных планов, а также к возможности формирования вредоносных ссылок для атаки на мессенджер и определения IP-адреса получателя или отправителя сообщения. Генерация эскиза на сервере позволяет выполнять свой JavaScript-код на системах, обеспечивающих работу мессенджеров, приводит к утечке конфиденциальных данных и создаёт паразитный трафик к серверу с контентом, указанным в ссылке.
Например, Facebook Messenger и Instagram при отправке ссылки автоматически формируют эскизы на своих серверах, и при этом полностью загружают связанный со ссылкой файл, даже если его размер превышает несколько гигабайт (в эксперименте продемонстрирована загрузка файла в 2.6 ГБ). Формирование эскизов на стороне сервера также практикуется в LinkedIn, но размер ограничивается начальными 50МБ. Загрузка содержимого на сервер может приводить к утечке передаваемых через ссылки конфиденциальных данных (медицинские записи, юридические документы и т.п.) и указанных внутри ссылок кодов доступа (например, приватных ссылок на Dropbox).
Кроме того, Facebook Messenger, Instagram и LinkedIn выполняют на своих серверах JavaScript-код при формировании эскизов сайтов, что может применяться для эксплуатации уязвимости в движке, осуществляющем выполнение JavaScript, или для совершения вычислений с использованием мощностей серверов мессенджеров (исследователи смогли добиться выполнения скрипта в течение 20 секунд и отправить обратный запрос на свой сервер).
В мессенджере Line ссылки передавались на сервер для формирования эскизов даже в шифрованных сеансах, использующих методы оконечного шифрования, и могли быть связаны на серверах с IP-адресами отправителей и получателей. Передача ссылок на серверы для формирования эскизов также зафиксирована для Discord, Google Hangouts, Slack, Twitter и Zoom, но размер загружаемых данных составляет от 15 до 50 МБ.
Информация об одном мессенджере, принимавшем участие в исследовании, пока не раскрывается, так как выявленные уязвимости в нём пока не устранены.
Методы обработки ссылок в мессенджерах:
- Эскизы не формируются, ссылки приводятся как есть: Signal (если предпросмотр отключён в настройках), Threema, TikTok и WeChat.
- Эскиз формирует отправитель: iMessage, Signal (если предпросмотр включён в настройках), Viber и WhatsApp.
- Эскиз генерируется на стороне получателя (приложение обрабатывает ссылку и загружает связанное содержимое ещё до действий пользователя): Reddit (только в чате, при просмотре сообщений и комментариев не применяется) и неназванный мессенджер, проблемы в котором ещё не устранены. Атакующий может использовать данную возможность для определения IP-адресов получателей, что, в свою очередь, даёт возможность на основе geo-привязки IP-адреса приблизительно вычислить местоположение пользователя. Формирование эскизов на стороне клиента также позволяет незаметно от пользователя эксплуатировать уязвимости в браузерном движке и обработчиках разных видов контента.
- Эскиз генерируется на серверах, обслуживающих мессенджер: Discord,Facebook Messenger, Google Hangouts, Instagram, LINE, LinkedIn,Slack, Twitter, Zoom и неназванный мессенджер, проблемы в котором ещё не устранены.
Источники
правитьЛюбой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.