Мобильные приложения российских банков небезопасны

15.05.2014

Оригинал: safe.cnews.ru

Автор: Сергей Попсулин

Примерно каждое четвертое приложение для мобильного банкинга для платформы Android (23%) и каждое седьмое аналогичное приложение для iOS (14%) уязвимо к атаке типа «человек посередине» (Man-in-the-Middle, MitM). Таковы результаты исследования, проведенного российской компанией Digital Security.

В ходе исследования были проверены 59 приложений для мобильного банкинга для платформы Android и 61 приложение для iOS, которые используют финансовые организации на российском рынке.

Как пояснили аналитики, проверка возможности реализации атаки MitM была выбрана не случайно: при контролировании канала передачи данных между приложением мобильного банкинга и сервером злоумышленник может украсть деньги со счета клиента, то есть нанести прямой финансовый ущерб.

Атака типа MitM — это перехват трафика от отправителя адресату, когда ни тот, ни другой не догадываются о наличии перехватчика. Причем злоумышленник может не только читать трафик, но и незаметно изменять его.

Самый распространенный сценарий организации атаки «человек посередине» — подключение пользователя к поддельной точке доступа Wi-Fi. Атакующий может развернуть собственную Wi-Fi-сеть, полностью идентичную известной сети для мобильного устройства. Такой сценарий может быть легко реализован в кафе, торговом или бизнес-центре.

Итоги проверки приложений для мобильного банкинга

Существуют и другие схемы: подключение к поддельной базовой станции оператора и использование зараженного сетевого оборудования и пр. Главное — чтобы трафик проходил через подконтрольный злоумышленнику узел.

Виды защиты и число приложений для МБ с уязвимостями для платформы Android

Для того чтобы защитить клиентов от атак типа MitM, разработчики прибегают к шифрованию канала связи с помощью технологии SSL, в которой клиент и сервер обмениваются сертификатами для установления подлинности друг друга.

Виды защиты и число приложений для МБ с уязвимостями для платформы iOS

Однако эту технологию еще совсем недавно использовали далеко не все банки. «Как бы удивительно это ни звучало, еще год назад мы встречали приложения для мобильного банкинга, в которых все общение, включая финансовые операции, происходило по HTTP-протоколу: аутентификация, данные о переводах, — все было в открытом виде. Это значит, что злоумышленнику для получения финансовой выгоды необходимо было просто находиться с жертвой в одной сети и обладать минимальной квалификацией. Тогда для успешной атаки было достаточно исправлять номера счетов назначения и, при желании, суммы», — рассказали в Digital Security.

Внедрение технологии SSL, тем не менее, не гарантирует полную безопасность. Самый распространенный класс ошибок — это некорректное использование SSL разработчиками приложений. Они могут неправильно учесть специфику библиотек для работы с SSL, использовать сторонний код с содержащимися в нем уязвимостями, а также забыть убрать из приложения тестировочный код.

«Как показывает наш опыт в анализе безопасности мобильных приложений, почти всегда присутствует код, отвечающий за отключение проверки действительности сертификата. Данный код используется разработчиками для тестовых целей. В связи с этим, из-за невнимательности разработчика код может попасть в итоговый релиз программы. Таким образом, уязвимость проверки действительности сертификата может появляться в одной версии и исчезать в другой, что делает данную уязвимость «плавающей» от версии к версии», — пояснили аналитики.

Кроме того, работа с SSL может быть организована различными способами: с использованием самоподписанных сертификатов (Self-Signed) и сертификатов, выданных центрами сертификации (CA-Signed Cert Hostame). Второй способ является более надежным. Еще более надежно — применение SSL Pinning. Суть этого подхода заключается во встраивании сертификата или публичного ключа, которому клиент доверяет при взаимодействии с сервером, прямо в приложение и отказе от использования встроенного в мобильную ОС хранилища сертификатов.