Независимый исследователь Сатья Пракаш (Sathya Prakash) рассказал в своем блоге, что осенью 2015 года ему удалось обнаружить ряд критических уязвимостей в приложении одного из крупнейших банков Индии. Благодаря найденным дырам, исследователь имел возможность похитить порядка 25 000 000 долларов.

Похищать чужие миллионы Пракаш не стал, ведь он white hat. Но исследователь коротал долгие осенние вечера в Швеции за изучением iOS приложения одного из крупнейших банков Индии, чье название не раскрывается.

Очень быстро Пракаш обнаружил, что у банковского приложения большие проблемы с certificate pinning. Это позволило реализовать man-in-the-middle атаку, понизить SSL соединение до более примитивного (SSL2.0), а затем перехватить запросы в виде обыкновенного текста, используя поддельные сертификаты.

Затем исследователь обнаружил, что архитектура приложения в принципе далека от идеала. В частности, оказалось, что приложение вообще никак не проверяет, действительно ли использованный в запросе ID клиента принадлежит клиенту, а не мошеннику. Ввод логина и пароля не требуется, PIN-код авторизации транзакции (MTPIN) не проверяется, так что злоумышленник может с легкостью выдаться себя на клиента банка. Все это позволяет получить информацию о балансе текущего счета жертвы и ее депозитах. Затем эти данные можно использовать для выполнения мошеннических операций.

«В случае перевода средств API напрямую работает с CURL, минуя валидацию аккаунта получателя/отправителя. Я мог перевести деньги на счета, которых не было в моем списке получателей», — объясняет Пракаш в блоге.

Фактически кто угодно, установивший мобильное приложение банка и имея банковский счет, мог перевести деньги с аккаунтов других пользователей. Паркаш пишет, что проверил уязвимости на нескольких аккаунтах, принадлежащих членам его семьи. У многих из них даже не был подключен интернет-банкинг или мобильный банкинг. Однако уязвимости исправно работали «как по волшебству».

poc
13 строк кода и простая автоматизация багов готова

Обо всех найденных проблемах исследователь сообщил представителям банка 13 ноября 2015 года. Ответ пришел лишь двенадцать дней спустя — 25 ноября 2015 года. Пракашу ответил лично заместитель генерального директора банка, уведомив о том, что все уязвимости были устранены. Никакого вознаграждения исследователю не предложили, лишь поблагодарили за бдительность и пожелали хорошего дня. Пракаш пишет, что был ошеломлен, однако он все же поинтересовался у представителей банка, нет ли у них какой-то bug bounty программы, намекнув, что бреши вели к  чужим счетам, с которых суммарно можно было похитить порядка 25 млн долларов. Ответа на свой вопрос исследователь так и не получил, больше сотрудники банка на связь не выходили. «Bug Bounty = 0$. Добро пожаловать в Индию!», — шутит Пракаш в конце своего отчета.

image05
Официальный ответ банка



Оставить мнение