Схема эксплоита. Слева направо: 1) скрипт генерирует контакт-лист с 10 000 телефонных номеров по порядку, 2) добавляется в группу протестующих, 3) Telegram сообщает, какие пользователи из контакт-листа уже есть в группе, 4) скрипт генерирует новый контакт-лист и повторяет вышеописанные действия, пока не переберёт все номера
«Защищённый» мессенджер Telegram с шифрованием коммуникаций предположительно помогает сохранить анонимность пользователей — и поэтому широко используется участниками протестных акций в Гонконге. Но в последние дни среди них поднялась настоящая паника: по каналам распространяется сообщение, что у полиции есть способ определять телефонные номера пользователей Telegram.
Компания Telegram признала баг с утечкой конфиденциальных данных. Она также пояснила, что это не баг, а фича.
Схема предположительных действий полиции показана на скриншотах вверху:
- Полиция генерирует контакт-лист с тысячами телефонных номеров по порядку.
- Добавляется в группу протестующих.
- Telegram сообщает, какие пользователи из контакт-листа уже есть в группе.
Эту схему можно легко автоматизировать для перебора большого количества телефонных номеров.
Активисты говорят, что таким способом можно узнать номера телефонов даже в том случае, если пользователь указал в настройках Telegram никому не показывать свой телефонный номер.
Привязка к телефонному номеру — один из главных недостатков мессенджера, который пытается сохранить анонимность пользователей. У властей есть богатые инструменты для деанонимизации пользователей по их телефонным номерам, для отслеживания их перемещений, определения других телефонных номеров, которые всегда находятся рядом и так далее.
Основную информацию правоохранительные органы могут сразу запросить у телекоммуникационной компании.
После появления информации об эксплоите Telegram информацию проверили и подтвердили несколько специалистов по информационной безопасности.
«Конфиденциальность телефонных номеров [Telegram] обсуждалась с начала этого года, — говорит Чу Ка-Чонг (Chu Ka-cheong), директор Интернет-общества Гонконга и один из инженеров-программистов, которые независимо подтвердили эту ошибку. — Мы знали, что установка конфиденциальности номера в значение «Мои контакты» позволит людям из контакт-листа видеть ваш номер, поэтому активисты всегда просили людей установить настройку «Никто», ожидая, что это скроет номер телефона в публичной группе. До сегодняшнего дня мы не знали, что установка «Никто» по-прежнему позволит пользователям, которые сохранили свой номер телефона в адресной книге, сопоставить номер телефона с общедоступными членами группы. Это стало открытием для всех нас».
Установка «Никто» по-прежнему позволит пользователям, которые сохранили ваш номер телефона в своей адресной книге, сопоставить этот номер с общедоступными членами группы
После раскрытия этого бага пользователи начали активно покидать группы протестующих в Telegram. Активисты беспокоятся, что это затруднит координацию будущих демонстраций и действий.
Чу сказал, что на данный момент нет обходного пути, чтобы избежать этой утечки данных. Протестующие советуют перейти на одноразовые SIM-карты, зарегистрированные анонимно или на чужое имя вместо свои основных телефонных номеров. Но очевидно, что основная масса пользователей не сможет этого сделать.
К сожалению, для многих пользователей уже слишком поздно.
«Мы подозревали, что некоторые спонсируемые правительством злоумышленники использовали эту ошибку для вычисления гонконгских протестующих, в некоторых случаях создавая непосредственную опасность для их жизни», — говорит Чу о так называемых «титушках», то есть бандитах, которые приехали в Гонконг из материкового Китая и выполняют неформальные задания спецслужб, в том числе разбираясь с активистами.
Чу Ка-Чонг говорит, что Telegram сейчас является основным каналом коммуникации, и отказаться от него очень сложно: «Переход на другое приложение, такое как Signal, не является для нас жизнеспособным вариантом, — сказал он. — Потому что способ общения протестующих сильно зависит от поддержки очень больших групп […], у которых Telegram имеет действительно хорошую поддержку», — сказал Чу.
«С другой стороны, группы Signal или Wire ограничены несколькими сотнями человек, а Signal в любом случае показывает всем ваш номер телефона. Некоторые из нас уже используют Signal и Wire в небольшой закрытой группе, но общественные обсуждения и объявления будут по-прежнему сильно полагаются на Telegram».
Ответ Telegram
Вчера издание ZDNet обратилось за комментариями к Telegram, и компания изучила проблему: «У нас есть защитные меры, чтобы предотвратить импорт слишком большого количества контактов — именно для предотвращения такого сценария», — сказал представитель Telegram [фактически подтверждая, что баг с утечкой конфиденциальных данных является фичей]. — Наши данные показывают, что бот на скриншотах был заблокирован для импорта контактов через две секунды — и ему удалось успешно импортировать 85 контактов (а не 10 000). После того, как вы получите запрет на импорт контактов, вы можете добавить максимум пять новых номеров в день. Остальные контакты, которые вы добавляете, будут выглядеть так, как будто они не используют Telegram, даже если используют».
Однако специалисты говорят, что это ограничение можно обойти. Злоумышленник с богатыми ресурсами, вроде правительственной спецслужбы, может легко использовать несколько ботов, а не один — и в конечном итоге импортируют всю последовательность телефонных номеров, которую хочет охватить.
Суть проблемы в том, что сами пользователи не ожидали такого подвоха от мессенджера. Они ожидали, что настройка «Никто» запретит просмотр их телефонных номеров, независимо от того, были они в списке контактов или нет.
Но Telegram сказал, что эта конкретная настройка работает не так, и она никогда так не работала: «Нет никакой ошибки: так же, как WhatsApp или Facebook Messenger, мессенджер Telegram основан на телефонных контактах. Это означает, что вы должны иметь возможность видеть свои контакты, которые также используют приложение, — говорится в сообщении компании. — Настройки номера телефона контролируют видимость номера телефона для пользователей, у которых НЕТ вашего номера (в отличие от WhatsApp, который показывает ваш номер телефона всем в любой группе)».
Таким образом, Telegram подтверждает, что как только ваш номер телефона будет добавлен в любой список контактов, этот человек (злоумышленник) сможет ассоциировать его с «анонимным» ником пользователя, независимо от настроек.
Telegram предупреждает пользователей, что настройка «Никто» на самом деле действует не так, как они думают. И это не ошибка, всё работает как положено.
Получается, что разработчики Telegram (как и большинства остальных мессенджеров) умышленно пожертвовали анонимностью пользователей ради роста социального графа. Через адресные книги пользователям легче устанавливать контакты со своими знакомыми. Это помогает «вирусному» распространению мессенджера и росту аудитории.
UPD. «Хочу напомнить, что Павел Дуров, ещё будучи главой ВКонтакте, в один хороший день принял решение запретить пользователям скрывать список своих друзей, дабы „повысить вовлечённость”, — пишет AlxDr. — Когда поднялась буча, сначала Павел задвинул моралистскую речь вида „цельной и морально зрелой личности нет необходимости стесняться своих знакомств”, а потом всё же под давлением общественности разрешил скрывать десяток (или около того) друзей на выбор. Это всё, что нам нужно знать о нынешнем предводителе Telegram и его понятиях о приватности, анонимности и заботе о пользователях. Telegram ничто не мешает сделать опциональную авторизацию по логину, без привязки номера телефона. Либо хотя бы возможность отвязать номер позже, после начальной регистрации, чтобы он не фигурировал вообще нигде. Кроме „интересов бизнеса”, конечно же».
Минутка заботы от НЛО
Этот материал мог вызвать противоречивые чувства, поэтому перед написанием комментария освежите в памяти кое-что важное:
Как написать комментарий и выжить
- Не пишите оскорбительных комментариев, не переходите на личности.
- Воздержитесь от нецензурной лексики и токсичного поведения (даже в завуалированной форме).
- Для сообщения о комментариях, нарушающих правила сайта, используйте кнопку «Пожаловаться» (если доступна) или форму обратной связи.
Что делать, если: минусуют карму | заблокировали аккаунт
→ Кодекс авторов Хабра и хабраэтикет
→ Полная версия правил сайта