Рокетбанк піддав ризику персональні дані клієнтів і дані банківських карт

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



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

У період з 31.07.2016 за 03.08.2016 я проводив черговий аудит безпеки Рокетбанка, в результаті якого були виявлені наступні уразливості:

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

Таким чином можна впровадити код на сторінку квитанції, шляхом простим зміною імені контакту на html код, який зловмисник захоче виконати на сторінці квитанції.

Наочний приклад виконання:


Приклад реалізації:
Запит:


Відповідь:


Отримуємо посилання на квитанцію:


За посиланням знаходиться сторінка квитанції з JavaScript-кодом, який змінює сторінку квитанції на сторінку переказу коштів з перехопленням даних банківської карти:



Використовуючи дану уразливість, зловмисник може, наприклад, змінити сторінку квитанції на сторінку переказу грошових коштів з перехопленням даних банківських карт.

Уразливість, що дозволяє отримати персональні дані запрошених клієнтів
При запиті додатком запрошених клієнтів, метод /api/v5/invitations/all розкриває, крім імені та прізвища з паспорта, номер телефону та адреса електронної пошти.

Приклад реалізації:


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

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

Тільки після того, як я повідомив Рокетбанк про те, що планую опублікувати результати, мною був отриманий адекватний фідбек з боку Рокетбанка, проте, Олег сказав, що Bug Bounty вони більше не підтримують:
Крім того, поясню, що якийсь політики «знайди баг — ми заплатимо» в реальності немає. Те, що написано на сайті з цього приводу — це просто слова, написані мною 3 роки тому. Після операції з Відкриттям, не вважаю за потрібне продовжувати цю практику.
Проте інформація про винагороду за виявлення вразливостей досі розташована на сайті Рокетбанка.

Після тривалої дискусії Рокетбанк все ж запропонував винагороду, від якого я був змушений відмовитися.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.