Суть
: исследование вопроса — кто же на самом деле владеет Телеграм-аккаунтом с включенной двухфакторной аутентификацией. Получивший доступ к 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.
Вывод: в случае наличия у посторонних лиц доступа к SMS/звонкам — имеется возможность завладеть аккаунтом осуществив его полный сброс. Сохраняется ли при этом имя пользователя (username) и id аккаунта — данный вопрос остаётся открытым и подлежит дополнительному исследованию. Таким образом самые полные права на аккаунт имеются у приложения/приложений, с которого/которых осуществлён вход в аккаунт. При соответствующей реакции на служебные уведомления от Телеграм имеется возможность смены номера телефона в случае попытки "удаления" аккаунта через доступ к SMS/звонкам. Необходимо контролировать следующие моменты: что приложение полноценно залогинено в аккаунт и имеется доступ к этому приложению, а также контролировать поступление служебных уведомлений.
Про 7-дневный таймаут перед сбросом аккаунта почему-то указано лишь в документации для разработчиков: https://core.telegram.org/api/srp#email-verification
Всё, что есть по поводу двухфакторной аутентификации в документации для пользователей: https://telegram.org/faq#q-how-does-2-step-verification-work
Рекомендации по защите:
Использовать сложный пароль и иметь его защищённую резервную копию.
Необходимо иметь отдельное защищённое устройство с залогиненым в аккаунт приложением.
Необходимо регулярно проверять работу залогиненного в аккаунт приложения и чат со служебными уведомлениями. Не реже одного раза в пять дней.
Дополнительно: чем больше залогиненных устройств в аккаунт — тем выше риск компрометации аккаунта. Также залогиненное устройство является инструментом в обеспечении безопасности телеграм-аккаунта. Необходимо учитывать, что для сокрытия служебного уведомления от Телеграм о сбросе аккаунта может быть применён флуд таким образом, что чат со служебными уведомлениями и/или само сообщение о сбросе в чате будет сложно заметить.