November 13

Опасное цифровое наследство: какие угрозы таит реинкарнация утраченного номера

Когда-нибудь видели такое, что в социальных сетях ваша бывшая одноклассница Оля стала каким-то усатым Николаем? А в чужой групповой чат попадали по ошибке? Причем не просто какой-то спам, а реальный чат друзей, собирающихся на рыбалку или на день рождения? Может, получали сообщение в Telegram о новом пользователе с номером покойной бабушки Зины?

Что-то подобное может произойти после блокировки SIM-карты спустя определенный период бездействия (обычно от 60 до 365 дней в зависимости от оператора), когда номер вновь поступает в продажу.

А что произойдет, если новый владелец вашего прежнего номера попробует авторизоваться там, где ранее регистрировались вы? Чтобы ответить на этот вопрос, мы провели эксперимент.

Статья носит исключительно информационный характер и не является инструкцией или призывом к совершению противоправных действий. Наша цель — рассказать о существующих уязвимостях, которыми могут воспользоваться злоумышленники, предостеречь пользователей и дать рекомендации по защите личной информации в интернете. Авторы не несут ответственности за использование опубликованной информации. Помните, что нужно следить за защищенностью своих данных.

Эксперимент. Начало

Изначально мы составили список из 80 популярных в России сервисов и приложений. Среди них 56 были со входом по номеру телефона и паролю из СМС-сообщения. Половина таких приложений требовали ввести пароль, но позволяли сбросить его по коду из СМС-сообщения. Для упрощения задачи мы исключили приложения, для которых не было браузерной версии, и личные кабинеты мобильных операторов.

В итоге осталось 38 приложений, которые для удобства мы разделили на девять категорий. Больше половины из них составили личные кабинеты на сайтах компаний (24%), интернет-магазины и аптеки (16%) и сервисы доставки готовой еды и продуктов питания (16%). В отдельную категорию мы выделили сервисы SSO (10%) — они предоставляют единый аккаунт для всех приложений той или иной компании.

Категории онлайн-сервисов

Следующим этапом стала покупка SIM-карт. Было решено приобрести 100 SIM-карт у пяти крупных операторов связи. Для чистоты эксперимента 30 SIM-карт были куплены традиционным способом в салонах сотовой связи («белые»), еще 50 SIM-карт приобретены через каналы в Telegram («серые»), остальные 20 номеров планировалось взять в аренду через специализированные онлайн-сервисы (виртуальные). В итоге удалось приобрести только 15 виртуальных SIM-карт вместо 20. Таким образом, всего было задействовано 95 номеров.

Когда был составлен список приложений и приобретены SIM-карты, пришло время приступить к эксперименту — проверить возможность авторизации в каждом из 38 приложений. Мы посчитали, что если на проверку каждого аккаунта вручную тратить примерно 5 минут, то на проведение эксперимента потребуется около 13 суток 😱 Чтобы сэкономить время, было решено купить SIM box — специальное устройство для приема и передачи СМС-сообщений и совершения звонков. Для нашего эксперимента мы использовали устройство на восемь SIM-карт с поддержкой 2G, что позволило нам принимать сообщения с паролями сразу на несколько номеров одновременно.

С каждым номером телефона мы проверяли возможность аутентификации в приложениях из ранее составленного списка, используя формы входа или восстановления пароля. После проверки 20% номеров мы сократили список до 13 сервисов с самой высокой вероятностью успешного входа. Благодаря такой оптимизации и использованию SIM box мы справились за один день.

Полезная брешь

Отдельно отметим, что каждое третье исследованное приложение (12 из 38) содержало уязвимость User Enumeration, которая позволила частично автоматизировать эксперимент и сократить время на его проведение.

В некоторых сервисах при вводе номера телефона существующего пользователя можно было увидеть сообщение «На ваш номер отправлено СМС-сообщение с кодом». И наоборот, при вводе номера телефона, для которого учетная запись ранее не была создана, мы видели слова «Пользователь с таким номером не найден» или аналогичные по смыслу. Из этого мы делали вывод, существует ли в системе аккаунт, привязанный к введенному номеру телефона, или нет. Аналогичные сообщения встречались также в формах регистрации и при восстановлении пароля. С точки зрения безопасности разное содержание сообщений — недостаток, который позволяет гипотетическому злоумышленнику определить, какие аккаунты существуют, чтобы продолжить атаку. Проверку аккаунтов в приложениях с таким недостатком можно автоматизировать.

Кроме того, на этапе подготовки к атаке, еще до покупки SIM-карт, злоумышленники могут предварительно составить список номеров, для которых существуют аккаунты, что дополнительно повысит шансы на успешный улов: они могут не покупать номера, на которые ранее не были зарегистрированы аккаунты.

Пример уязвимости User Enumeration

Не пропадать же ̶д̶о̶б̶р̶у̶ номерам

В ходе эксперимента мы выяснили, что почти половина (43%) номеров ранее уже использовались для регистрации в сервисах из нашего списка. Найти незаблокированный аккаунт прежнего владельца получалось в каждом третьем случае: для 37% всех номеров удалось найти активный аккаунт хотя бы в одном из сервисов, для 6% номеров ранее созданные аккаунты были заблокированы. Среди тех номеров, которые уже использовались для регистрации, в каждом четвертом случае (27%) подтвердилась возможность входа в аккаунты прежних владельцев минимум в двух сервисах.

Результаты эксперимента (доля номеров)
Распределение номеров по количеству сервисов, в которых есть возможность входа в аккаунт прежнего владельца
Продавцы «серых» SIM-карт, узнавая цель покупки, давали советы по выбору операторов, номера телефонов которых лучше всего подходят для нашей задачи. Результаты эксперимента подтвердили их рекомендации.

У двух операторов из пяти доля успешных подтверждений возможности авторизации оказалась выше, чем у остальных. Один из пяти операторов, обнаружив активность, блокировал SIM-карты, поэтому успешная авторизация оказалась возможной только с одним из 18 номеров этого оператора. Блокировка происходила довольно быстро — СМС-сообщения с одноразовыми паролями переставали приходить после нескольких попыток.

Кроме того, было установлено, что при попытке входа в личный кабинет два оператора из пяти раскрывают Ф.И.О. человека, на которого оформлен номер. Это значит, что злоумышленник, воспользовавшийся «серым» номером для проведения той или иной атаки, может в дальнейшем использовать полученные персональные данные.

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

Ценные находки

Всего удалось подтвердить возможность доступа к 57 аккаунтам прежних владельцев номеров телефонов. При этом ни в одном из исследованных случаев не была подтверждена возможность доступа к банковскому аккаунту.

Срез по аккаунтам
Категории сервисов, в отношении которых подтверждена возможность доступа к аккаунтам
В ходе эксперимента мы заметили, что если номер ранее не использовался для регистрации в социальных сетях, то и в других сервисах аккаунты с этим номером обнаружены не были. Это значит, что злоумышленники могут использовать этот факт для оптимизации массовых атак на пользователей.

Что в итоге

Потеря телефона или длительная заграничная командировка — основные причины, по которым владелец номера мобильного телефона может потерять к нему доступ. Потеря номера — это одновременно и утрата доступа к онлайн-сервисам и приложениям, к которым этот номер был привязан. А это, в свою очередь, дает почву для атак злоумышленников, как только ваш прежний номер телефона вновь поступит в продажу. Мы подготовили рекомендации для абонентов, разработчиков приложений и операторов мобильной связи, которые помогут повысить ваш уровень защищенности.

Рекомендации

🤳 Пользователям:

  • Сохраняйте доступ к своим номерам телефонов, не теряйте SIM-карты.
  • Вовремя пополняйте баланс и совершайте минимум одно платное действие раз в три месяца: отправьте СМС-сообщение или сделайте звонок.
  • Если доступ к номеру телефона утрачен и нет возможности своевременно его восстановить, перепривяжите ваши аккаунты к другому номеру, к которому у вас есть доступ.
  • Для критически важных приложений (мессенджеров, соцсетей, онлайн-банков) дополнительно используйте альтернативный способ авторизации, если это возможно, например через электронную почту.
  • Настройте двухфакторную аутентификацию, используя генератор одноразовых паролей, например Google Authenticator. Откажитесь от входа через код в СМС-сообщении, если это возможно.
  • Не выдавайте мобильным приложениям разрешения на чтение СМС-сообщений.
  • Никому не сообщайте одноразовые пароли.
  • В случае подозрительной активности обратитесь в службу поддержки приложения или вашего оператора сотовой связи.

✍️ Разработчикам приложений:

  • Предоставьте пользователям возможность выбрать способ авторизации. Добавьте вход по электронной почте или по протоколу OAuth.
  • Не используйте СМС-сообщение в качестве второго фактора аутентификации или добавьте опцию выбора генератора OTP в качестве второго фактора.
  • Не используйте СМС-сообщение как замену паролям при однофакторной аутентификации.
  • Раз в три месяца запрашивайте у пользователей подтверждение принадлежности им номера телефона.
  • Реализуйте безопасный процесс восстановления доступа к аккаунту в случае смены номера телефона.
  • В формах регистрации, авторизации и восстановления пароля не должна отображаться информация о наличии пользователя с указанным номером телефона.
  • Не допускайте восстановление пароля только по коду из СМС-сообщения.
  • Отслеживайте, откуда пользователи входят в аккаунт. Необычный IP-адрес или браузер должны вызывать подозрения у систем безопасности.
  • Уведомляйте пользователя о попытках входа из необычных мест.
  • Предоставьте пользователям возможность просматривать и завершать активные сессии. Необходимо завершать все активные сессии при смене пароля.

📲 Мобильным операторам:

  • Уведомляйте пользователей о скорой блокировке номера по электронной почте и по альтернативному номеру телефона.
  • Реализуйте возможность восстановить доступ к номеру телефона на сайте или в мобильном приложении.