Группа исследователей выяснила, как определять местонахождение пользователей мессенджеров WhatsApp, Signal и Threema, если организовать специально созданную атаку по времени. Точность определения локаций составила более 80%.
В ходе атаки злоумышленник может ориентироваться на уведомления о статусе доставки сообщения жертве. Они имеют определённые предсказуемые задержки в зависимости от геопозиции пользователя. Их можно измерить «на начальном этапе», отправив сообщение, когда местоположение цели известно. Затем злоумышленник может выяснить, где будет находиться получатель в следующий раз, отправив ему новое сообщение и измерив время до получения уведомления о доставке.
Исследователи проанализировали, как данная атака может определить страну, город, район получателя и даже выявить его подключение к конкретной сети Wi-Fi или мобильному интернету.
Однако для атаки необходимо, чтобы у киберпреступника и жертвы уже был диалог в мессенджере.
Кроме того, злоумышленнику потребуется использовать приложение для захвата пакетов Wireshark для анализа собственного TCP-трафика и извлечения информации о времени.
Анализ сетевого трафика позволяет хакеру определить, какие пакеты были доставлены. В протестированных приложениях они либо имеют заранее определённые размеры, либо идентифицируемые шаблоны структуры.
Затем злоумышленнику необходимо классифицировать различные местоположения и сопоставить их с измеренным временем «в оба конца» и попытаться сравнить эти пары с местоположением цели, используя известный набор данных.
Точность определения местоположения составила 82% для Signal, 80% для Threema и 74% для WhatsApp.
Как отмечают исследователи, разработчики приложений могут решить эту проблему, если внедрят систему, которая рандомизирует время подтверждения доставки отправителю. Достаточно задействовать временной промежуток от 1 до 20 секунд, чтобы устранить возможность атаки. Кроме того, можно отключить уведомления о доставке.
Ранее исследователи показали, как эксплуатировать проблемы безопасности для фишинговых атак с помощью разных мессенджеров. Метод использует уязвимости, связанные с ошибкой рендеринга.