Месяц назад, просматривая мобильное приложение для интернет-банкинга от Альфа-Банка, решил проверить, насколько оно безопасно.
Так как я являюсь клиентом этого банка, мне было интересно, уделяют ли они должное внимание безопасному хранению данных клиентов. Уточню, что я являюсь клиентом украинского филиала и соответственно имел возможность проверять только ту часть мобильного приложения, которая предназначена для украинских клиентов.
Подготовка.
Для отслеживания трафика, передаваемого мобильным приложением на сервер устанавливаем Fiddler.
Программа предельно проста в использовании, устанавливается и настраивается по инструкции довольно легко. Дополнительно в настройках программы нужно включить декриптование https трафика
В телефоне в настройках wi-fi нужно указать адрес прокси, поднимаемый этим приложением и для того, что бы программа могла расшифровывать мобильный HTTPS трафик, нам нужно дополнительно установить сертификат (IOS, Android).
После всех этих действий запускаем Fiddler и мобильное приложение Альфа-Банк. Теперь все запросы, отправляемые мобильным телефоном, будут отображаться в Fiddler. В нашем случае это оказался SOAP протокол с запросами в формате XML.
Теперь немного о процессе поиска уязвимостей.
Я искал типичные ошибки, которые допускают разработчики. Самая распространенная из них — это отсутствие проверки прав доступа при запросе с использованием идентификатора. Поиск ошибок производим следующим образом. Берем запрос мобильного приложения, залогированный Fiddler и воспроизводим его в браузере Google Chrome при помощи плагина “Postman”.
В этом запросе заменяем целочисленный идентификатор на большее или меньшее значение и проверяем ответ сервера. Если сервер вернет ошибку или пустой запрос — то все хорошо, если данные клиента, значит есть уязвимость. Долго искать не пришлось. При запросе на формирование выписки, отсутствовала проверка на права доступа. Для доступа к данным использовался такой идентификатор, как cardContractId. Увеличивая или уменьшая его значение, можно было получать выписки других пользователей.
В тот же день мною было отправлено сообщение о найденной уязвимости через сайт Альфа-Банка, но в течении нескольких дней, не получив ответа, я позвонил в клиентскую службу и попросил, что бы со мной связалась служба безопасности. Следует отдать должное, сотрудник СБ перезвонил мне в тот же день и по истечению чуть более недели уязвимость была устранена.
Однако хотелось бы обратиться к руководству подразделения банка, отвечающего за разработку программных продуктов. Сервисы банка активно развиваются и обрастают функционалом, в котором, хотите вы этого или нет, появляются уязвимости. Существующие каналы связи практически не реагируют при отправке запросов в электронной форме. Например, два мои собщения о XSS уязвимостях на других ресурсах Альфа-Банка, поданные несколько месяцев назад, так и остались без ответа.
Организуйте отдельный канал связи для подачи заявок по найденным уязвимостям и создайте программу поощрения. Такие программы существуют у Google, Amazon, Yandex и даже у Приватбанка и они очень эффективно помогают в оперативном закрытии дыр в безопасности. Не ждите, пока злоумышленники начнут эксплуатировать найденные уязвимости и клиенты сообщат вам о проблемах уже по факту.
Автор: dinikin