Безопасность Телеграм: исследование на право владения аккаунтом
  • Суть: исследование вопроса — кто же на самом деле владеет Телеграм-аккаунтом с включенной двухфакторной аутентификацией. Получивший доступ к SMS/звонкам SIM-карты или имеющий пароль второго фактора.

  • Результаты: В выводах будут представлены актуальные на данный момент сведения касаемо права владения на телеграм-аккаунт с 2ФА и даны рекомендации по улучшению безопасности таких аккаунтов.

  • Целевая аудитория: владельцы телеграм-аккаунтов, для которых аккаунт представляет ценность.

Подробности: В Апреле 2015 года (https://telegram.org/blog/sessions-and-2-step-verification) в мессенджер была добавлена возможность защиты аккаунта с помощью второго фактора аутентификации — пароля, в дополонение к коду, полученному по SMS (или звонку). В случае утери пароля, согласно информации на официальном сайте Телеграм, — "теряется доступ к сообщениям на других устройствах". По состоянию на Декабрь 2021 года — эта информация не является полной.

Как можно повлиять на аккаунт с 2ФА заполучив доступ к SMS/звонкам — основной вопрос данного исследования.

По поводу резервной электронной почты: имеется возможность указать E-mail для восстановления пароля. Технология E-mail была создана очень давно, без целей защиты прав на владение и считается слабозащищённой технологией на сегодня. К тому же данное действие передаст исключительное право на владение аккаунтом тому, кто сможет узнать E-mail адрес и/или получить доступ к письмам. Таким образом электронная почта будет слабым звеном и основной угрозой аккаунту, а пароль теряет свои защитные функции. Вопросы защиты E-mail вне темы данного исследования. Таким образом аккаунт с паролем в качестве второго фактора и без подключенного E-mail для восстановления пароля является оптимальным методом защиты на данный момент.

Почему и кому это важно: на сегодня Телеграм является одной из основных площадок для взаимодействия многих проектов. Включая проекты DeFi с большой суммой вложенных средств, до нескольких миллиардов (читайте обзор на Curve Finance в Телеграм-канале @defisec). Утеря доступа к телеграм-аккаунтам несёт не только репутационные, но и финансовые риски как обычных пользователей, так и управляющих проектами. Также многие пользователи владеют популярными каналами и получают доход от них.

Порядок проведения исследования, соответствующие скриншоты:

  • Создаём телеграм-аккаунт и задаём пароль для 2ФА, без резервной электронной почты. Завершение операции на скриншоте #00.

  • Заходим в аккаунт с нового устройства: подтверждаем SMS и открывается к обзору запрос пароля. Скриншот #01.

  • Нажимаем “Забыли пароль?” и получаем к обзору предложение вспомнить пароль или сбросить аккаунт. Скриншот #02.

  • Нажимаем "OK”, затем нажимаем “СБРОСИТЬ МОЙ АККАУНТ” и получаем к обзору Скриншот #03 с предложением сбросить аккаунт.

  • Нажимаем “Сбросить аккаунт” во всплывшем окне и открывается скриншот #04 с отсчётом в 7 дней до сброса.

  • Затем открываем другое залогиненное в этот аккаунт приложение и в чате “Служебные уведомления” видим предупреждение о сбросе. Скриншот #05.

  • Нажимаем на ссылку после слов о том, что не хотим, чтобы учётная запись была удалена и получаем запрос на подтверждение по SMS. Скриншот #06.

Скриншот #00. При задании пароля 2ФА Телеграм утверждает, что доступ будет потерян вместе с ним если не задать также электронную почту для восстановления пароля 2ФА.
Скриншот #00. При задании пароля 2ФА Телеграм утверждает, что доступ будет потерян вместе с ним если не задать также электронную почту для восстановления пароля 2ФА.
#01. Подтверждаем код из SMS и заявляем, что потеряли пароль.
#01. Подтверждаем код из SMS и заявляем, что потеряли пароль.
#02. Телеграм предлагает варианты: "вспомнить пароль или сбросить аккаунт".
#02. Телеграм предлагает варианты: "вспомнить пароль или сбросить аккаунт".
#03. Выбираем вариант "сбросить аккаунт", Телеграм сообщает, что "все сообщения и чаты будут удалены", подтверждаем нажатием "сбросить аккаунт".
#03. Выбираем вариант "сбросить аккаунт", Телеграм сообщает, что "все сообщения и чаты будут удалены", подтверждаем нажатием "сбросить аккаунт".
#04. Телеграм сообщает, что аккаунт защищён паролем и включает таймаут в 7 дней.
#04. Телеграм сообщает, что аккаунт защищён паролем и включает таймаут в 7 дней.
#05. В этот момент в служебных сообщениях мы получаем уведомление с возможностью отмены данной операции.
#05. В этот момент в служебных сообщениях мы получаем уведомление с возможностью отмены данной операции.
#06. Так выглядит попытка отмены операции "удаления и сброса" из залогиненного в аккаунт приложения, также предлагается вариант изменения номера телефона.
#06. Так выглядит попытка отмены операции "удаления и сброса" из залогиненного в аккаунт приложения, также предлагается вариант изменения номера телефона.

Вывод: в случае наличия у посторонних лиц доступа к SMS/звонкам — имеется возможность завладеть аккаунтом осуществив его полный сброс. Сохраняется ли при этом имя пользователя (username) и id аккаунта — данный вопрос остаётся открытым и подлежит дополнительному исследованию. Таким образом самые полные права на аккаунт имеются у приложения/приложений, с которого/которых осуществлён вход в аккаунт. При соответствующей реакции на служебные уведомления от Телеграм имеется возможность смены номера телефона в случае попытки "удаления" аккаунта через доступ к SMS/звонкам. Необходимо контролировать следующие моменты: что приложение полноценно залогинено в аккаунт и имеется доступ к этому приложению, а также контролировать поступление служебных уведомлений.

Про 7-дневный таймаут перед сбросом аккаунта почему-то указано лишь в документации для разработчиков: https://core.telegram.org/api/srp#email-verification

Всё, что есть по поводу двухфакторной аутентификации в документации для пользователей: https://telegram.org/faq#q-how-does-2-step-verification-work

Рекомендации по защите:

  • Использовать сложный пароль и иметь его защищённую резервную копию.

  • Необходимо иметь отдельное защищённое устройство с залогиненым в аккаунт приложением.

  • Необходимо регулярно проверять работу залогиненного в аккаунт приложения и чат со служебными уведомлениями. Не реже одного раза в пять дней.

Дополнительно: чем больше залогиненных устройств в аккаунт — тем выше риск компрометации аккаунта. Также залогиненное устройство является инструментом в обеспечении безопасности телеграм-аккаунта. Необходимо учитывать, что для сокрытия служебного уведомления от Телеграм о сбросе аккаунта может быть применён флуд таким образом, что чат со служебными уведомлениями и/или само сообщение о сбросе в чате будет сложно заметить.

Subscribe to DeFi (in)security
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.