Всё, что стоит знать, и ничего лишнего.
Как на самом деле происходит атака
Сначала злоумышленник собирает достаточно личных данных, чтобы пройти проверку личности, проводимую службой защиты данных — часто это происходит из утечек информации или фишинговых страниц. Затем он связывается с оператором, заявляя о потере или повреждении телефона, и запрашивает перенос или замену SIM. После завершения замены телефон жертвы незаметно теряет связь, и все SMS и голосовые вызовы перенаправляются злоумышленнику. В течение нескольких минут следуют сброс паролей, банковские OTP и коды восстановления учетной записи. Первым сигналом для жертвы обычно является то, что ее телефон перестал работать, к тому времени деньги уже переведены.
Почему отправлять SMS OTP по-прежнему стоит.
Урок не в том, что SMS OTP бесполезен — он доходит до любого телефона на любом рынке без установленного приложения, чего не может сделать ничто другое. Урок в том, что он подтверждает номер телефона, а не человека, а номер может переходить из рук в руки. Рассматривайте его как один из нескольких факторов для любых необратимых событий и сочетайте его с сигналом, который не позволит злоумышленнику перемещаться с SIM.
Защита: проверяйте не только код, но и саму строку.
Замена SIM оставляет след в собственных записях оператора. Запрос по номеру (HLR возвращает дату последней замены SIM и информацию о том, был ли номер недавно перенесен. Если SIM абонента была заменена четыре часа назад, и сейчас он сбрасывает пароль, это момент дополнительной аутентификации, а не обычный вход в систему. Провайдеры, работающие напрямую с оператором, могут прочитать эту информацию, поскольку они поддерживают отношения с оператором; реселлер, находящийся на расстоянии нескольких узлов, обычно этого прочитать не может.
Что делать на практике
Перед отправкой OTP для важных операций проверяйте статус смены и переноса линии. Применяйте период ожидания — многие банки отказываются от сброса пароля в течение 24–72 часов после обнаружения смены. Предлагайте аутентификацию через приложение или пароль в качестве основного фактора для наиболее рискованных операций, а SMS используйте в качестве резервного варианта, который по-прежнему работает в случае потери телефона. И оповещайте клиента через второй канал, например, электронную почту, при смене SIM в его учетной записи.