Чужие записи в Telegram может отредактировать любой желающий

Благодаря работе энтузиаста удалось обнаружить три серьезные уязвимости в экосистеме Telegram. Одна из них была исправлена, но остальные по-прежнему представляют угрозу пользователям мессенджера, позиционирующего себя как приложение с акцентом на безопасность.

Проблемы Telegram с безопасностью

Исследователь безопасности, известный в ИТ-блоге Habrahabr под псевдонимом w9w, рассказал об обнаруженных им уязвимостях в мессенджере Telegram.

В ходе исследования, проведенного автором, выяснилось, что привычные для пользователей Telegram ссылки вида t.me могут вести на фишинговые сайты, приватные чаты на самом деле не такие уж и приватные, а статьи в Telegraph, издательском сервисе, тесно интегрированном с Telegram, может редактировать любой желающий.

Редактирование чужих сообщений

Уязвимость затрагивает издательский сервис Telegraph, разработанный Павлом Дуровым и командой мессенджера Telegram в 2016 г. Проанализировав, HTTP-запрос, отправляемый на сервера Telegraph, автор пришел к выводу, что для редактирования абсолютно любой статьи злоумышленнику необходимо знать только ее уникальный идентификатор, который можно найти непосредственно в HTML-коде страницы с этой статьей.

Как правило, защита от подобных атак сводится к сверке токена (случайного набора байт), сгенерированного сервером, с отправленным пользователем при переходе по ссылке или нажатии кнопки. В случае несовпадения серверного и клиентского токенов, сервер отказывает пользователю в выполнении запрошенной операции. По словам автора исследования, в случае с Telegraph данный подход, как и иные способы защиты, не применяется.

Приватные чаты в опасности

Обнаружить одну из уязвимостей удалось в процессе тестирования стороннего ресурса, взаимодействующего с доменом t.me, который принадлежит Telegram и используется для создания коротких публичных ссылок на учетные записи пользователей, каналы и группы в мессенджере. Сайт предлагал платные советы по инвестициям в криптовалюты, и в качестве одного из каналов получения подобной информации выступал Telegram-бот. Бота можно было подключить, перейдя по ссылке вида t.me/Another_bot?start=CODE, где CODE – секретная последовательность символов, связанная с учетной записью пользователя на сайте. Решив проверить «чувствительные» данные в URL (едином указателе ресурса в интернете) на факт индексации поисковыми системами, исследователь обнаружил первую из трех уязвимостей в Telegram.

Сформировав так называемый «дорк» (Google Dork Query – особый запрос к поисковой системе, позволяющий найти скрытую от посторонних глаз публичную информацию) следующего вида: site:t.me inurl:Another_bot?start=, автор исследования обнаружил публично доступный личный код случайного платного подписчика того самого ресурса о криптовалютах. Из этого был сделан вывод, что на t.me отсутствует запрет на индексацию конфиденциальных данных. Причиной данного недоразумения автор называется отсутствие файла robots.txt в корневом каталоге ресурса, связанного с доменом t.me. Данный файл используется веб-мастерами для задания параметров индексирования сайта. К примеру, при помощи данного файла можно запретить поисковым роботам индексировать определенные разделы веб-ресурса, таким образом полностью исключив их появление в поисковой выдаче.

Более 5 млн ссылок на чаты можно найти в Google, сформулировав правильный запрос

Как отметил автор исследования, используя данную уязвимость при помощи простого запроса вида site:t.me join, можно элементарно попасть в закрытые частные группы Telegram, а сам факт наличия такого количества ссылок в открытом доступе сводит концепцию приватных чатов на нет.

Open Redirect или как поймать вирус

Продолжив анализ, автор выяснил, что существует возможность выполнить перенаправление из t.me на любой, в том числе и мошеннический сайт, троян, JS-скрипт (например, на распространенные в настоящее время майнеры криптовалют), сформировав особую ссылку.

О Bugbounty и итогах

По итогам своего исследования автор неоднократно обращался к разработчикам с сообщением о найденных уязвимостях. В результате не без труда удалось доказать разработчикам существование описанных ошибок. Тем не менее, по словам автора, на сегодняший день исправлена лишь уязвимость с раскрытием ссылок.

Напомним, что в рамках проекта Bugbounty Telegram готов выплатить вознаграждение в размере $300 тыс. человеку, преуспевшему в расшифровке сообщений Telegram, а также суммы на усмотрение разработчиков за нахождение уязвимостей в мессенджере.