Рокетбанк подверг риску персональные данные клиентов и данные банковских карт

в 15:32, , рубрики: банки, информационная безопасность, персональные данные, Рокетбанк, уязвимости

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

Рокетбанк подверг риску персональные данные клиентов и данные банковских карт - 1

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

В период с 31.07.2016 по 03.08.2016 я проводил очередной аудит безопасности Рокетбанка, в результате которого были обнаружены следующие уязвимости:

Межсайтовый скриптинг

При любых операциях Рокетбанк генерирует страницу квитанции, которую можно отправить на почту или посмотреть по ссылке в браузере. Если квитанция на операцию по переводу или пополнению между друзьями (метод /api/v5/friend_transfers/income), то наименование POS-терминала на странице квитанции генерируется следующим образом: «запрос %ИМЯ ДРУГА ИЗ КОНТАКТА В СМАРТФОНЕ%», при этом символы HTML в имени друга не экранируются.

Таким образом можно внедрить код на страницу квитанции, путем простым изменением имени контакта на html код, который злоумышленник захочет выполнить на странице квитанции.

Наглядный пример выполнения:

Рокетбанк подверг риску персональные данные клиентов и данные банковских карт - 2

Пример реализации:

Запрос:

Рокетбанк подверг риску персональные данные клиентов и данные банковских карт - 3

Ответ:

Рокетбанк подверг риску персональные данные клиентов и данные банковских карт - 4

Получаем ссылку на квитанцию:

Рокетбанк подверг риску персональные данные клиентов и данные банковских карт - 5

По ссылке находится страница квитанции с JavaScript-кодом, который изменяет страницу квитанции на страницу перевода средств с перехватом данных банковской карты:

Рокетбанк подверг риску персональные данные клиентов и данные банковских карт - 6

Используя данную уязвимость, злоумышленник может, например, изменить страницу квитанции на страницу перевода денежных средств с перехватом данных банковских карт.

Уязвимость, позволяющая получить персональные данные приглашённых клиентов

При запросе приложением приглашенных клиентов, метод /api/v5/invitations/all раскрывает, помимо имени и фамилии из паспорта, номер телефона и адрес электронной почты.

Пример реализации:

Рокетбанк подверг риску персональные данные клиентов и данные банковских карт - 7

Используя данную уязвимость, злоумышленник может получить персональные данные клиента Рокетбанка, которого он пригласил.

Сразу после составления отчёта по аудиту, я отправил его в Рокетбанк: службе безопасности и техническому директору Олегу Козыреву. Уязвимости были устранены в течении часа, однако ответа не поступало в течение недели.

Только после того, как я уведомил Рокетбанк о том, что планирую опубликовать результаты, мною был получен адекватный фидбэк со стороны Рокетбанка, однако, Олег сказал, что Bug Bounty они больше не поддерживают:

Кроме того, поясню, что какой-то политики «найди баг — мы заплатим» в реальности нет. То, что написано на сайте по этому поводу — это просто слова, написанные мной 3 года назад. После сделки с Открытием, не считаю нужным продолжать эту практику.

Однако информация о вознаграждении за обнаружение уязвимостей до сих пор расположена на сайте Рокетбанка.

После длительной дискуссии Рокетбанк всё же предложил вознаграждение, от которого я был вынужден отказаться.

Автор: mrEisenberg

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js