В качестве анализируемой базы с Google Play брались мобильные банковские приложения, которые обрабатывают счета клиентов (мобильный банк) действующих на российском рынке банков. Была выбрана платформа Android как самая популярная в России среда для мобильных устройств и в то же время вызывающая больше всего опасений с точки зрения информационной безопасности.
В январе 2016 года в Google Play были найдены мобильные приложения 68 наших банков. Уровень их безопасности проанализирован при помощи российского инструмента, позволяющего осуществлять проверку даже при отсутствии исходного кода, загрузив в сканер рабочий файл приложения из Google Play.
При этом выполнены следующие условия: не приводить в статье реальные названия банков, конкретные выявленные уязвимости и даже не упоминать программу, с помощью которой проводился анализ. Специалисты и так поймут, а потенциальные злоумышленники использовать полученную информацию не смогут.
Банки были разбиты на три группы в соответствии с рейтингом. Первая группа — банки Топ-10 (девять из них имеют приложение мобильный банк, и все эти приложения проанализированы), вторая — Топ-100 (банки в рейтинге с 11-й по сотую строку, в тестируемую группу попали приложения 27 банков), и третья группа — «Остальные» банки (позиция в рейтинге 101 и далее, в тестируемую группу попали приложения 32 банков). Более детальная разбивка третьей группы не имела смысла, поскольку у средних и мелких банков, как правило, нет своих разработчиков мобильных приложений и они просто используют системы, наиболее популярные на рынке.
Результаты исследования
Почти во всех банковских мобильных приложениях были выявлены проблемы, которые потенциально могут быть использованы злоумышленниками. Однако критичность этих проблем разная. Если рассматривать типы сценариев атак, то можно обобщенно выделить три группы приложений.
Наиболее опасными для мобильных банковских приложений являются атаки типа «человек посередине». Вы в общественном месте запускаете свое банковское приложение через общественный Wi-Fi, а сидящий за соседним столиком злоумышленник перехватывает ваш трафик и крадет пароли и данные ваших банковских карт. Такая ситуация возможна, например, когда приложение не проверяет подлинность сайта банка. Скажем, разработчик бездумно использует стандартные библиотеки, в которых по умолчанию не контролируется подлинность сертификата сервера.
Будем считать, что имеющие такие ошибки приложения относятся к третьей, самой небезопасной группе по наличию уязвимостей. Тем более, что анализ показал: если разработчики не уделяли внимания этому аспекту ИБ, то и остальным аспектам они не уделяли его тоже.
Вторая группа приложений — более защищенная. Атака «человек посередине» уже не проходит. Но остаются возможности для троянов — универсальных, которые просто перехватывают на компьютере всё, что может представлять для злоумышленника интерес, или специальных, написанных под конкретное мобильное банковское приложение.
И наконец первая группа — приложения с незначительными потенциальными проблемами ИБ, имеющие защиту как от атаки «человек посередине», так и от занесенного вредоносного кода.
В принципе можно было бы выделить еще одну группу приложений — уязвимости в которых являются результатом злонамеренных действий разработчика, оставившего себе скрытые лазейки для дальнейшего входа в систему (это так называемые внутренние атаки или «программистские бомбы», выполняющие зловредный код по наступлении заложенного в программу времени). Но для мобильных банковских приложений такие уязвимости не типичны, они скорее актуальны для серверной части программного обеспечения и в данной статье рассматриваться не будут.
Результаты анализа банковских мобильных приложений по выделенным группам приведены в табл. 1.
Вполне ожидаема была относительно высокая доля банков из Топ-10 (11%), попавших в самую надежную первую группу (проблем с безопасностью практически нет). Но вызывает удивление очень высокий процент таких банков из третьей группы! Почему бы банкам, у которых есть бюджеты и свой штат разработчиков, не выделить деньги на нормальную проверку исходного кода на уязвимости?
Еще более интересная картина получается, если мы проанализируем интегральные оценки мобильных банковских приложений по уровню безопасности. Выделим группу со слабой безопасностью (интегральная оценка ниже двух по пятибалльной шкале), средней (выше двух и меньше четырех) и хорошей (от четырех до пяти) — и посмотрим табл. 2.
Получается, что малые и средние банки здесь даже имеют преимущество перед большими! Так как используют не свои разработки, а продукты компаний, специализирующихся в этой области. А такие компании не просто тестируют работу основного функционала, но большое внимание уделяют вопросам безопасности.
Отмечу, что для расчёта данной таблицы взяты либо приложения, созданные банками самостоятельно, либо выложенные на Google Play разработки известных на рынке компаний под брендом банка (white label). Многие банки не используют стратегию white label, а просто берут готовое мобильное приложение разработчика. Если учитывать это, количество банков в группах Топ-100 и особенно «Остальные» значительно увеличится, в этих группах немного изменятся проценты, но не картина в целом.
Некоторые выводы
Подводим итоги: не стоит полностью полагаться на разработчиков мобильных банковских приложений. Только два приложения (одно у банка из Топ-10 и одно из Топ-100) имели надежную защиту от атак со стороны троянов. Спасение утопающего — дело рук самого утопающего. Используйте хороший антивирус и регулярно его обновляйте. Это поможет защититься от троянских программ. Пусть банк присылает вам SMS-сообщения при выполнении всех ваших транзакций — это поможет остановить процесс списания денег злоумышленником. Используйте двухфакторную идентификацию, подтверждайте транзакции введением присланного по SMS кода. Скачивайте приложения только с официального сайта банка и регулярно его обновляйте.
Впрочем, всё это вы наверняка знали и раньше. Новое, что можно вынести из проведенного анализа, состоит в следующем: не стоит использовать мобильные банковские приложения в общественных местах, где возможна атака «человек посередине». Как показало исследование, даже крупнейшие банки не всегда проверяют свои приложения на вероятность таких атак.
И можно посоветовать банкам — не отдавайте всё на откуп своим разработчикам. Нельзя быть специалистом во всем, особенно в наш век узкой специализации. Если не хотите отдавать разработку мобильного банковского приложения на аутсорсинг — закажите хотя бы проверку его на уязвимости у сторонних специалистов по ИБ. Благо у нас в стране есть компании, которые могут оказать такие услуги.
Об авторе: канд. техн. наук, член Ассоциации руководителей служб информационной безопасности (АРСИБ); опыт работы в сфере ИТ и ИБ банков — более 20 лет.