Благодаря функции «Люди рядом» можно с точностью до нескольких десятков метров определить местоположение неосторожного пользователя Telegram. Это открывает широкий простор для действий злоумышленников. Единственный способ обезопасить себя — контролировать использование геолокации мессенджером.
Сообщение о найденной уязвимости опубликовал в своем блоге энтузиаст Ахмед Хасан (Ahmed Hassan, имя может быть не настоящим). Несколько лет назад он уже сообщал об аналогичном недостатке команде разработчиков мессенджера Line. Они выплатили ему премию в размере тысячи долларов и стали добавлять к отображаемому расстоянию между пользователями случайные числа.
Механизм злоупотребления подобными функциями заключается в банальной триангуляции и выглядит следующим образом. Злоумышленник может посмотреть, какое расстояние до целевого пользователя показано в приложении. Затем изменить свое местоположение еще два раза, попутно отмечая изменения расстояния. Чтобы определить сравнительно точное место, где находится цель, нужно нанести на карту три круга с центром в своих координатах и радиусом равным найденному расстоянию. Нужный пользователь будет в точке пересечения окружностей.
Причем для изменения своего местоположения совсем необязательно гулять по городу с телефоном в руке. Существует множество сравнительно простых способов подмены данных геолокации. Необходимые приложения доступны, например, в Google Play. В качестве демонстрации описанной атаки Хасан выбрал произвольную точку мира и нашел реальное местонахождение случайного пользователя. По мнению Ахмеда, неосторожные пользователи могут стать жертвами мошенников, преследователей и киберпреступников. К тому же, среди «местных» чатов он нашел такие, по сравнению с которыми известный черный рынок теневого интернета Silkroad — «дилетантский проект».
Функцию «Люди рядом» (People Nearby) добавили в Telegram около полутора лет назад. Она позволяет общаться с пользователями, которые находятся в радиусе нескольких километров. Также в данном разделе можно создать или присоединиться к групповому чату, который привязан к определенной местности. Чтобы пользователя найти в этом разделе, он должен оставить включенной кнопку «Показывать меня здесь». При ее активации приложение предупредит, что данное действие может привлечь нежелательное внимание. Информация профиля, включая фотографии, будет видна окружающим, но телефонный номер останется скрыт.
В рамках подготовки этого материала, автор проверил функционал People Nearby. Выяснилось несколько дополнительных подробностей, на которые не указал Ахмед. Как только пользователь открывает меню «Люди рядом» его никнейм сразу появляется в списке и ему может написать кто угодно. Это происходит даже без активации пункта «Показывать меня здесь». Если раздел закрыть, имя из списка пропадает через несколько секунд. Кроме того, включить постоянное отображение невозможно, когда в настройках профиля доступ к фотографиям разрешен только людям из списка контактов. «Показывать меня здесь» можно отключить в любой момент, главное не забыть об этом.
Иными словами, на полноценную уязвимость в мессенджере описанный Хасаном метод не похож. Когда он сообщил о нем в техническую поддержку Telegram, энтузиасту так и ответили. Получается, пользователи должны сами следить за тем, какие функции в приложении они активируют. Однако даже в провинциальном российском городе с населением в 400 тысяч человек список «Люди рядом» состоит из более чем сотни имен. По ряду косвенных признаков можно судить (например, время последнего захода в приложение), что многие из этих пользователей воспользовались функцией однажды и забыли отключить.