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