Бесплатно Экспресс-аудит сайта:

28.10.2022

Простое уведомление раскрывает местоположение пользователей WhatsApp, Signal и Threema

Группа исследователей обнаружила, что можно определить местонахождение пользователей мессенджеров WhatsApp, Signal и Threema с точностью более 80%, запустив специально созданную атаку по времени.

Хитрость заключается во времени, необходимого злоумышленнику для получения уведомления о статусе доставки сообщения жертвы. Эти уведомления имеют определенные предсказуемые задержки в зависимости от положения пользователя.

Расположение инфраструктуры мессенджеров

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

Исследователи проанализировали в своей технической статье , что эта атака по времени может определить страну, город, район получателя и даже определить, к какой сети он подключен – к Wi-Fi или мобильному Интернету. Для атаки необходимо, чтобы у киберпреступника и жертвы уже был диалог в мессенджере.

Чтобы атака по времени сработала, злоумышленнику необходимо использовать смартфон для отправки сообщений и приложение для захвата пакетов Wireshark для анализа собственного TCP-трафика и извлечения информации о времени.

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

Затем злоумышленнику необходимо классифицировать различные местоположения и сопоставить их с измеренным временем «в оба конца», а затем попытаться сопоставить эти пары с местоположением цели, используя известный набор данных.

В результате тестов точность определения местоположения составила:

  • 82% для Signal;
  • 80% для Threema;
  • 74% для WhatsApp.

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