Плохая проработка сценария аутентификации. Или нет?

На глаза попалась статья о том, как молодой банк запустил веб-приложение для обслуживания клиентов. Я — директор по маркетингу RooX (специализируемся на аутентификации и авторизации внешних пользователей), так что мне стало интересно, как банк реализовал вход.
Я не являюсь клиентом этого банка. Этот факт стал катализатором исследования.

За иллюстрацию спасибо macrovector / Freepik.

Логи проявленного любопытства

  • В веб-версии логин — это номер телефона.

  • Проверка на формат мобильного номера отрабатывает нормально — клавиатура откликается только на цифры, код +7 предпроставлен, больше 9 цифр ввести нельзя, при недостатке цифр появляется подсказка «Введи мобильный телефон» (можно было бы «Не хватает цифр в номере»).

  • Форма принимает номер не-клиента как должное. Кнопка «Продолжить» активна. Ведет на страницу ввода кода.

  • При вводе нескольких случайных номеров телефона капча ни разу себя не проявила.
  • Пришло sms c кодом подтверждения.
  • Блокировка перебора кода сработала после 6 или 7 неправильных комбинаций, отправили «на скамейку запасных» на 5 минут.
  • После ввода правильного кода перебросило на девственно белую страницу. Пожалуй, это был первый намек, что я не клиент )
  • Некоторое время на любую попытку «а давайте снова войдем» сразу, без промежуточных просьб ввести телефон и код, показывалась девственно белая страница. Куда-то меня всё же залогинило )

  • Сотрудник банка перезвонил довольно быстро: «Вы оставили номер телефона, но не указали данные о компании». Обсудили, как такое произошло )

Анализ

Казалось бы, сценарий «пришел не-клиент» недостаточно отработан: при вводе номера телефона не-клиента не отреагировали, на смску потратились, залогинили в никуда. Однако...

  1. Кейс «Потенциальный клиент логинится в личный кабинет, минуя регистрацию» не самый, честно скажем, частый случай поведения ЦА. При запуске MVP ресурсы на реализацию этого сценария можно не тратить.

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

  3. Отправить sms-код для входа не-клиенту — вполне рабочий ход. Человека можно залогинить в зону «уже-почти-клиент» и дальше прогревать его до клиента. Этого не произошло, но могло бы.

  4. В никуда логинить нехорошо, да. Скорее всего, это произошло следующим образом. Система аутентификации проверила OTP (код по sms) и выдала токен с номером телефона. В ДБО не было такого пользователя, но это уже, как говорится, не проблемы шерифа. Но есть и светлая сторона. В описанном поведении сайта есть косвенные признаки того, что система аутентификации отделена от системы ДБО, что круто с точки зрения дальнейшего развития и поддержки обеих систем.

  5. Сотрудник позвонил. И если бы я была странным человеком из п. 1, меня бы отловили и попытались сделать клиентом.

Выводы

  1. Личному кабинету не хватает зоны для приземления не-клиентов.

  2. Текущая реализация входа может быть уязвима в случае, если кто-то очень хочет разорить банк на sms.

  3. Если и дальнейшие операции проводятся с подтверждением по одному фактору (тем более, по sms), то это уже противоречит требованиям безопасности ЦБ.
0
36 комментариев
Написать комментарий...
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Maksim Georgiev

Современный Директор по маркетингу это универсальный солдат!

Ответить
Развернуть ветку
Razor

Знаете, каждый джун тоже своего рода директор

Ответить
Развернуть ветку
Наталия Леднева
Автор

:)

Ответить
Развернуть ветку
Нур Ибрагимов

Наталья, спасибо за оценку нашей работы. Если верно понял, вы упоминаете наш новый банк для предпринимателей https://blanc.ru/
От себя добавлю, что замечания принимаем, кейсы не реализовали умышленно, чтобы ускорить выпуск веб-версии банка – мы сделали его за +- 3 месяца, и больше внимания уделили внутренней архитектуре и функционалу.

Правильно подметили, что аутентификация у нас явлвяется отдельным микросервисом, что дает гибкости при его развитии. Желаю больше обзоров и открывайте у нас счет ;-)

Ответить
Развернуть ветку
Наталия Леднева
Автор

Да, это ваш банк стал источником вдохновения )

Умышленную не-реализацию отметила в первом пункте, как признак хорошей приоритезации. Тем более, мой случай вообще из ряда вон )

Аутентификация как отдельный микросервис — это респект. Всем рекомендуем.

Встречно желаю кратного роста! И приходите к нам в https://roox.ru за customer identity and access management ;)

Ответить
Развернуть ветку
Денис Бойцов

"Текущая реализация входа может быть уязвима в случае, если кто-то очень хочет разорить банк на sms." — мне кажется, нужно столько запросов, что у скорее сайт заддосится )

Ответить
Развернуть ветку
Наталия Леднева
Автор

Держим кулачки, чтобы никакими sms и никаким ddos'ом нельзя было их разорить )))

Ответить
Развернуть ветку
Igor Elkanyuk

Защита от ddos атак на этапе аутентификации у нас предусмотрена

Ответить
Развернуть ветку
Kseniya

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

Ответить
Развернуть ветку
Наталия Леднева
Автор

В идеале, вместо белой страницы должен быть личный кабинет для тех, кто "уже-почти-клиент".

Ответить
Развернуть ветку
Екатерина

А зачем не-пользователю в принципе приходить в приложение не интересующего его банка? И зачем банку все эти смс, авторизация в никуда и прочее для не-пользователей? Собрать базу для прогрева?

Ответить
Развернуть ветку
Наталия Леднева
Автор

Совсем не-пользователям в принципе незачем.

Но некоторые не-пользователи могут быть целевой аудиторией и при этом промахнуться мимо сделанной специально для них конверсионной кнопки. Например, в случае этого банка кнопка "Личный кабинет" в интерфейсе была ОЧЕНЬ заметна. Кнопку "Стать клиентом" они тоже не прятали, но промахнувшиеся всегда бывают.

Банку — да, база для прогрева. У них и так механизм прогрева есть — в виде звонка живого человека. Надеюсь, сделают и авторизованную зону в вебе.

Ответить
Развернуть ветку
Ася

Что-то не соображу, а какие еще факторы кроме смс практикуются? Биометрия и код доступа?

Ответить
Развернуть ветку
Наталия Леднева
Автор

Здесь OTP (one time password, проще говоря, код) по sms.
И здесь он по сути - первый фактор.

Так что первое, что приходит в голову - это еще и пароль попросить.

Далее бывают OTP через другой транспорт, например, email, push или звонок.
Бывает TOTP, когда на устройстве стоит программка (например, Google authenticator), которая генерит код.
Бывают коды, список которых ранее нагенерили и на бумажке выдали с заключением договора. Бывали, по крайней мере ) В Сбере мне такие давали несколько лет назад.
Биометрия еще, да.

Для важных операций могут попросить USB-ключ вставить или дополнительно через кого-то доверенного залогиниться, через ЕСИА, например.

Ответить
Развернуть ветку
Ася

Спасибо за ответ)

Ответить
Развернуть ветку
Sergey Syroezhkin

пароль?

Ответить
Развернуть ветку
Павел Житнюк

Самое интригующее здесь, конечно, а что за банк)

Ответить
Развернуть ветку
Наталия Леднева
Автор

Они в коментах саморазоблачились )

Ответить
Развернуть ветку
Ася Власова

Дир по маркетингу так неплохо разбирается в сфере, в которой работает его компания. Увожение!

Ответить
Развернуть ветку
Yury

А как оно должно быть ещё?

Ответить
Развернуть ветку
Наталия Леднева
Автор

Спасибо )

Ответить
Развернуть ветку
Dmitriy Zorin

Наталья, есть куча замечаний.

Проверка на формат мобильного номера отрабатывает нормально — клавиатура откликается только на цифры, код +7 предпроставлен, больше 9 цифр ввести нельзя, при недостатке цифр появляется подсказка «Введи мобильный телефон» (можно было бы «Не хватает цифр в номере»).

Т.е. потенциальные нерезиденты, и резиденты с иностранным номером просто могут пройти мимо. А точнее туда они и идут.

Форма принимает номер не-клиента как должное. Кнопка «Продолжить» активна. Ведет на страницу ввода кода.

Так то да, но ниже вы пишете:

Информировать при вводе телефона «ой, вы же не клиент» плохо с точки зрения инфобеза.

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

Пришло sms c кодом подтверждения.
Отправить sms-код для входа не-клиенту — вполне рабочий ход. Человека можно залогинить в зону «уже-почти-клиент» и дальше прогревать его до клиента. Этого не произошло, но могло бы.

Шиза в чистом виде. Вы даете 2 взаимоисключающих утверждения. Либо не понимаете, как это работает.

Ответить
Развернуть ветку
Наталия Леднева
Автор

1. Да, они идут заводить российский номер. Я не могу прокомментировать, почему банк сейчас отсекает владельцев нероссийских номеров. Предположу, что это не вошло в MVP. А проверку на российский они сделали нормально.

2. Не поняла замечание.

По поведению формы невозможно понять, введен номер клиента или не-клиента. Если быть совсем точным, форма ввода телефона никак не отреагировала на номер не-клиента (только он у меня и был). Но уверена, что форма сохраняет покер-фейс и на ввод номера клиента. И далее и тех, и других одинаково ведет на страницу введения OTP. Все хорошо с точки зрения инфобеза.

3. Взаимоисключения нет.

Sms с кодом мне пришла, хоть я и не-клиент. Вроде нелогично, но на самом деле нормально. Реализуй авторизованную зону "не-клиент" и логинь туда всех и грей там до клиентов. Сейчас эта зона не реализована, показывается белая страница, ну так еще не вечер.

Ответить
Развернуть ветку
Igor Elkanyuk

Страница для "не-клиентов" у нас реализована, там есть ссылка на регистрацию. Вопрос в том, почему вы не попали на эту страницу - с этим мы сейчас разбираемся

Ответить
Развернуть ветку
Наталия Леднева
Автор

Егор, эта страница реализована в авторизованной зоне?

Ответить
Развернуть ветку
Igor Elkanyuk

Да

Ответить
Развернуть ветку
Наталия Леднева
Автор

Попробовала повторить "успех", не вышло. Отлично попала в "Упс, ты не клиент Бланка". URL компактный, заканчивается на settings/no-company.

Надо было скрин, конечно, сделать. Белую страницу мне показывали по url длиной больше половины десктопного экрана.
У меня в истории браузера уже ничего (

И простите за Егора, Игорь.

Ответить
Развернуть ветку
Igor Elkanyuk

Наталия, спасибо! Понял про какую ошибку, мы с ней разбираемся

Ответить
Развернуть ветку
Айгуль Ширяева

Зато действующих клиентов задолбают своими «выгодными» предложениями взять вторую кредитную карту, особенно если первой никогда не пользуешься :/

Ответить
Развернуть ветку
Олег Горбатов

"А если капчи нет, может перебором составить базу телефонов клиентов".
Это действительно серьезная проблема для небольшого банка? Перебирать гигантский массив телефонов неклиентов, чтобы создать базу телефонов клиентов? Так кто-то делает?

Ответить
Развернуть ветку
Наталия Леднева
Автор

Делают ли? Зависит от целей. Базу можно достать разными способами, но если интерфейс почему-то сразу дает ответ, клиент ты или нет, скрипт пробега по базе, даже по гигантской, не очень сложная задача.

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

Ответить
Развернуть ветку
Виктория Фоменко

Как раз недавно столкнулась с потоком звонков от мошенников, предлагающих услуги банков. Хотелось бы, конечно, чтобы в банковской сфере и не только более внимательно относились к персональной информации клиентов

Ответить
Развернуть ветку
Фрэнк Розенталь

Самое оптимальное здесь - не отвечать на незнакомые номера совсем. Но не всегда есть такая возможность, к сожалению)

Ответить
Развернуть ветку
Dmitry Salatov

Похоже я знаю какой банк, лол)
С таким подходом тестирования есть много проблем:
1. Твои корнер кейсы не представляют никакой чтат значимости, чтобы без них не релизить веб-лк.
2. Пользуясь не как робот ты и не должен попадать на сценарии защиты от уязвимости. А в защите первый приоритет - защита пользовательских данных и денег клиентов. И уже второй - бюджета на смс.
3. Открой счёт и посмотришь какой там второй фактор и как подтверждаются операции.

Ответить
Развернуть ветку
Наталия Леднева
Автор

О нероссийских номерах телефонов — не могу прокомментировать, почему банк сейчас отсекает владельцев нероссийских номеров. Предположу, что это не вошло в MVP.

Ответить
Развернуть ветку
33 комментария
Раскрывать всегда