Альфа-Банк Украина входит в ТОП-5 по количеству активных карт среди всех украинских банков и имеет довольно неплохой интернет-банкинг My Alfa-Bank.
У них существует функция перевода средств другому клиенту по номеру телефона: чтобы перевести деньги, достаточно указать номер телефона получателя, нет необходимости указывать номер карты.
Длительное время функция p2p-перевода по номеру телефона действовала при соблюдении определенных условий: если у получателя подтверждён телефон и оформлена зарплатная (именно зарплатная) карта в Альфа-Банке Украина.
Не так давно, в конце марта этого года, банк реализовал p2p переводы по номеру телефона в интернет-банкинге My Alfa-Bank уже для всех клиентов банка, а не только для «зарплатников».
Я решил протестировать функцию на предмет получения данных о клиенте по его номеру телефона.
Ввожу сумму и номер телефона родственника, у которого открыт счёт в Альфа-Банке, нажимаю «Далее».
На следующей странице, чтобы убедиться, что деньги будут отправлены нужному человеку, банк указывает ФИО клиента в замаскированном виде: часть фамилии замаскирована звёздочками, а имя и отчество указаны только первыми буквами, это правильно (здесь и далее номера телефонов, ФИО отправителя и получателя указаны фиктивными):
Конечно, если средства перевести, я увижу полные ФИО получателя.
Но и получатель увидит мои – так что на этом этапе проверка закончена.
Перехожу в последние операции, чтобы посмотреть на детали этого теста:
Ничего интересного – при наведении курсора мыши на такую операцию нет интересующих меня данных.
Позже, в мае, функция переводов между клиентами Альфа-Банка по номеру мобильного телефона появилась и в мобильном приложении.
И я, зная, что работа с мобильными приложениями может быть реализована иначе, решаю проверить это на Android.
Ввожу данные (сумма и номер телефона), ввожу код из SMS и вижу ту же картину: ФИО маскируется.
Хорошо для клиентов, но жаль для меня. Отменяю операцию.
Однако иду проверить данный перевод в последних операциях в web-версии – и да, в деталях платежа, который я проверял в мобильном приложении, отображаются поля «Отправитель платежа» и «Получатель платежа»!
Да, уязвимость найдена.
Таким образом, проблема именно в отображении операций, созданных в мобильном приложении — по номеру телефона можно получать актуальные ФИО клиентов, даже не отправляя им деньги. Таких клиентов может быть до 1,15 млн. (количество активных карт по данным НБУ), но необходимо, чтобы клиент был зарегистрирован в системе.
Пишу в банк по найденным на сайте адресам, что им следует доработать передачу полей при операции, совершаемой в мобильном приложении (или маскировать данные оттуда, как это сделано на других этапах такой операции), и проблема будет решена.
Хронология событий:
30 мая — первое письмо, в котором я указываю ссылку на запароленный документ со скриншотами с детальным описанием проблемы;
07 июня — повторное письмо с вопросом о реакции, получаю ответ: «Опишите проблему в текстовом формате (при необходимости добавьте скрин) для решения вопроса», отправляю ответ;
26 июня — моё повторное письмо с вопросом о том, будет ли исправлена ситуация или нет, и когда. Получаю следующий ответ: «Зафиксированное предложение передается в профильное подразделение для рассмотрения и включения в план дальнейших действий. Реализация зафиксированного предложения зависит от разных факторов: ресурсов, сложности реализации, проектов, которые находятся уже в реализации. По предложениям, которые поступают на банк, обратная связь не предоставляется» – по предложениям? Я же ясно указал, в чём проблема, приложил скриншоты, подсказал решение;
07 июля – естественно, никакого движения, попытался уточнить вопрос через знакомых.
Во время проверки обнаруживается, что теперь ошибка не зависит от платформы и воспроизводится также и в web-версии: теперь для получения ФИО владельца по номеру телефона одновременно использовать приложение и сайт не нужно — узнать ФИО клиента без перевода средств можно просто в интернет-банкинге;
08 августа — пишу в банк, что хочу опубликовать информацию о том, как найденная ошибка не была исправлена банком за несколько месяцев; получаю ответ "Информация предоставлена Вами была передана в соответствующий отдел Банка и получен ответ, что она будет добавлена в backlog, но на данный момент изменения проводиться не будут" и "Отдел разработки не считает, что предоставленная Вами информация повлияет на уязвимость интернет-сервиса, но приняли ее во внимание. Спасибо, что помогаете нам стать лучше. С уважением, Альфа-Банк!".
Итог: с конца мая и на текущий момент уязвимость не исправлена — по номеру телефона можно получить ФИО клиента, не совершая перевода (просматривая детали незавершённой операции в интернет-банкинге).
Автор: Gorodnya