Месяц назад, просматривая мобильное приложение для интернет-банкинга от Альфа-Банка, решил проверить, насколько оно безопасно.
![](https://habrastorage.org/r/w780q1/files/99f/b46/b3d/99fb46b3d1c247608da1fb98985c5241.jpg)
Так как я являюсь клиентом этого банка, мне было интересно, уделяют ли они должное внимание безопасному хранению данных клиентов. Уточню, что я являюсь клиентом украинского филиала и соответственно имел возможность проверять только ту часть мобильного приложения, которая предназначена для украинских клиентов.
![](https://habrastorage.org/r/w780q1/files/108/528/36c/10852836c0e046f78cc82ef4ec291cd4.jpg)
Для отслеживания трафика, передаваемого мобильным приложением на сервер устанавливаем Fiddler.
Программа предельно проста в использовании, устанавливается и настраивается по инструкции довольно легко. Дополнительно в настройках программы нужно включить декриптование https трафика
В телефоне в настройках wi-fi нужно указать адрес прокси, поднимаемый этим приложением и для того, чтобы программа могла расшифровывать мобильный HTTPS трафик, нам нужно дополнительно установить сертификат (IOS, Android).
После всех этих действий запускаем Fiddler и мобильное приложение Альфа-Банк. Теперь все запросы, отправляемые мобильным телефоном, будут отображаться в Fiddler. В нашем случае это оказался SOAP протокол с запросами в формате XML.
![](https://habrastorage.org/r/w780q1/files/023/43d/96f/02343d96f7814912a82ead7ef5f6a358.jpg)
Я искал типичные ошибки, которые допускают разработчики. Самая распространенная из них — это отсутствие проверки прав доступа при запросе с использованием идентификатора. Поиск ошибок производим следующим образом. Берем запрос мобильного приложения, залогированный Fiddler и воспроизводим его в браузере Google Chrome при помощи плагина «Postman»:
![](https://habrastorage.org/r/w780q1/files/a37/459/e86/a37459e86e9a4d16a17d50652828e943.jpg)
В этом запросе заменяем целочисленный идентификатор на большее или меньшее значение и проверяем ответ сервера. Если сервер вернет ошибку или пустой запрос — то все хорошо, если данные клиента, значит есть уязвимость. Долго искать не пришлось. При запросе на формирование выписки, отсутствовала проверка на права доступа. Для доступа к данным использовался такой идентификатор, как cardContractId. Увеличивая или уменьшая его значение, можно было получать выписки других пользователей.
В тот же день мною было отправлено сообщение о найденной уязвимости через сайт Альфа-Банка, но в течении нескольких дней, не получив ответа, я позвонил в клиентскую службу и попросил, чтобы со мной связалась служба безопасности. Следует отдать должное, сотрудник СБ перезвонил мне в тот же день и по истечению чуть более недели уязвимость была устранена.
Однако хотелось бы обратиться к руководству подразделения банка, отвечающего за разработку программных продуктов. Сервисы банка активно развиваются и обрастают функционалом, в котором, хотите вы этого или нет, появляются уязвимости. Существующие каналы связи практически не реагируют при отправке запросов в электронной форме. Например, два мои собщения о XSS уязвимостях на других ресурсах Альфа-Банка, поданные несколько месяцев назад, так и остались без ответа.
Организуйте отдельный канал связи для подачи заявок по найденным уязвимостям и создайте программу поощрения. Такие программы существуют у Google, Amazon, Yandex и даже у Приватбанка и они очень эффективно помогают в оперативном закрытии дыр в безопасности. Не ждите, пока злоумышленники начнут эксплуатировать найденные уязвимости и клиенты сообщат вам о проблемах уже по факту.
![](https://habrastorage.org/files/99f/b46/b3d/99fb46b3d1c247608da1fb98985c5241.jpg)
Так как я являюсь клиентом этого банка, мне было интересно, уделяют ли они должное внимание безопасному хранению данных клиентов. Уточню, что я являюсь клиентом украинского филиала и соответственно имел возможность проверять только ту часть мобильного приложения, которая предназначена для украинских клиентов.
![](https://habrastorage.org/files/108/528/36c/10852836c0e046f78cc82ef4ec291cd4.jpg)
Подготовка
Для отслеживания трафика, передаваемого мобильным приложением на сервер устанавливаем Fiddler.
Программа предельно проста в использовании, устанавливается и настраивается по инструкции довольно легко. Дополнительно в настройках программы нужно включить декриптование https трафика
В телефоне в настройках wi-fi нужно указать адрес прокси, поднимаемый этим приложением и для того, чтобы программа могла расшифровывать мобильный HTTPS трафик, нам нужно дополнительно установить сертификат (IOS, Android).
После всех этих действий запускаем Fiddler и мобильное приложение Альфа-Банк. Теперь все запросы, отправляемые мобильным телефоном, будут отображаться в Fiddler. В нашем случае это оказался SOAP протокол с запросами в формате XML.
![](https://habrastorage.org/files/023/43d/96f/02343d96f7814912a82ead7ef5f6a358.jpg)
Теперь немного о процессе поиска уязвимостей
Я искал типичные ошибки, которые допускают разработчики. Самая распространенная из них — это отсутствие проверки прав доступа при запросе с использованием идентификатора. Поиск ошибок производим следующим образом. Берем запрос мобильного приложения, залогированный Fiddler и воспроизводим его в браузере Google Chrome при помощи плагина «Postman»:
![](https://habrastorage.org/files/a37/459/e86/a37459e86e9a4d16a17d50652828e943.jpg)
В этом запросе заменяем целочисленный идентификатор на большее или меньшее значение и проверяем ответ сервера. Если сервер вернет ошибку или пустой запрос — то все хорошо, если данные клиента, значит есть уязвимость. Долго искать не пришлось. При запросе на формирование выписки, отсутствовала проверка на права доступа. Для доступа к данным использовался такой идентификатор, как cardContractId. Увеличивая или уменьшая его значение, можно было получать выписки других пользователей.
В тот же день мною было отправлено сообщение о найденной уязвимости через сайт Альфа-Банка, но в течении нескольких дней, не получив ответа, я позвонил в клиентскую службу и попросил, чтобы со мной связалась служба безопасности. Следует отдать должное, сотрудник СБ перезвонил мне в тот же день и по истечению чуть более недели уязвимость была устранена.
Однако хотелось бы обратиться к руководству подразделения банка, отвечающего за разработку программных продуктов. Сервисы банка активно развиваются и обрастают функционалом, в котором, хотите вы этого или нет, появляются уязвимости. Существующие каналы связи практически не реагируют при отправке запросов в электронной форме. Например, два мои собщения о XSS уязвимостях на других ресурсах Альфа-Банка, поданные несколько месяцев назад, так и остались без ответа.
Организуйте отдельный канал связи для подачи заявок по найденным уязвимостям и создайте программу поощрения. Такие программы существуют у Google, Amazon, Yandex и даже у Приватбанка и они очень эффективно помогают в оперативном закрытии дыр в безопасности. Не ждите, пока злоумышленники начнут эксплуатировать найденные уязвимости и клиенты сообщат вам о проблемах уже по факту.