Можно ли украсть деньги из мобильного банкинга? Часть 1

в 13:34, , рубрики: dsecrg, безопасность, Блог компании «Digital Security», информационная безопасность, мобильная разработка

image

Второй год подряд мы проводим независимый анализ безопасности приложений для мобильного банкинга (МБ) российских банков. За это время накопилось много наблюдений, мыслей, идей, которыми и хотелось бы поделиться. Особое внимание уделим МБ, но общие замечания актуальны и для других приложений, работающих с критичной информацией пользователя.

Наши исследования

В 2013 мы выпустили исследование “Анализ безопасности мобильных банковских приложений 2012”. Чуть позже похожую работу опубликовал исследователь из компании IOActive. О его результатах можно прочитать в его блог-посте здесь. В 2014 мы выпустили исследование “Безопасность мобильного банкинга: возможность реализации атаки MitM”.

А кому это надо?

Среди некоторых специалистов по банковской безопасности в России распространено мнение, что мобильный банкинг еще не заслужил к себе такого внимания, как, например, системы ДБО (дистанционно банковского обслуживания). Их основным аргументом является тот факт, что сейчас через системы мобильного банкинга проходит очень мало финансовых средств. И поэтому, дескать, злоумышленникам МБ не интересен.

Нам же данный сегмент кажется очень привлекательным для рассмотрения, и тому есть несколько причин. Так, хотелось бы сразу обратить внимание читателей на то, что ЦБ РФ не делает различий между ДБО и МБ. В настоящее время Банк России активно разрабатывает рекомендации по безопасному циклу разработки автоматизированных банковских систем. К сожалению, он пока еще не доступен в открытом доступе, но при первой возможности с ним стоит ознакомиться.

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

Тем, кто считает, что нужно уделять особое внимание ДБО и не тратить время на МБ, стоит знать, что эти системы взаимосвязаны. Не раз мы убеждались в этом на практике в ходе тестирования на проникновение и аудита. Нам удавалось обнаруживать уязвимости и вспомогательную информацию в системах МБ, которую в дальнейшем можно использовать для атак на ДБО.

И, наконец, попросту глупо отрицать мировую практику и говорить, что мобильный банкинг может не стать популярным в России. Число мобильных устройств у пользователей только увеличивается, и мобильный банкинг сегодня — это просто удобно.

Специфичные проблемы мобильного банкинга

1) Организационные проблемы
За последнее время удалось достаточно много пообщаться как с заказчиками (банками) мобильного банка, так и с их исполнителями (разработчиками). Всегда полезно взглянуть на ситуацию с разных сторон.
Что касается заказчиков, доводилось видеть несколько ТЗ на МБ и с трудом находить описание пункта про безопасность. Там чаще всего присутствуют очень общие пожелания, в которых мобильной специфики не учитывается вовсе. Это и понятно: в банках нет отдельных специалистов по мобильной безопасности со знаниями платформ iOS, Android или WindowsPhone. А как известно, механизмы безопасности надо закладывать сразу в архитектуру, думать о защите необходимо на всех стадиях разработки, чтобы экономить деньги в будущем.
В разговорах с разработчиками узнаешь много всего интересного, начиная понимать, откуда появляются такие глупые ошибки в таком критичном приложении, как МБ. Часто при создании продукта клиентскую часть пишет одна компания, а серверную – другая, а то и вовсе она написана кем-то достаточно давно. Наладить хорошей процесс взаимодействия между ними — задача не из простых, и тут появляется ряд ошибок. Далее, банки часто не могут предоставить хорошей тестовой среды для разработки клиентской части, что приводит к выдумыванию различных «костылей» разработчиком. И потом только от него зависит – не забудет ли он убрать их перед выходом релиза… И опять же, проблема наличия специалистов по ИБ у разработчиков не теряет актуальности.

2) Проблема избыточности приложений
Казалось бы: есть приложение для МБ, которое должно помогать удобно и безопасно работать с персональными счетами, деньгами. Откуда вдруг в нем код, отвечающий за работу с различными соц. сетями, сервисами файлов, сервисами заметок и т.д.?! Мне, например, как человеку, параноидально относящемуся к безопасности, это видеть очень странно… Объясняют производители просто: таким образом они рассчитывают лучше продавать такое приложение, наделенное уникальными чертами.
Естественно, никто особо не думает, что с увеличением функционала растет и сложность приложения, и вероятность допустить ошибку становится выше. Да и банально из-за всех этих сторонних сервисов растет attack surface.

3) Проблема хранения данных
Мобильные устройства всегда с нами и невелики по объему. Их легко потерять или просто упустить из виду на некоторое время. При этом, сейчас мобильные устройства о нас могут сказать куда больше, чем их настольные «братья». Поэтому проблема хранения данных остается одной из самых важных.
При анализе безопасности приложения для МБ мы часто видим критичную информацию в открытом виде, которая либо просто хранится в приложении, либо неосознанно валится в кеш сетевых запросов, логи, крешдампы, скриншоты. Злоумышленник при получении физического доступа к устройству может скачать эти критичные файлы.

4) Проблема работы в недоверенной среде
Часто пользователи сами ставят свои устройства под угрозу, получая root-доступ на своем Android-устройстве или устанавливая jailbreak на iOS-устройстве. При этом, они чаще всего не понимают, что при получении различной халявы и рюшечек, встроенные механизмы безопасности ОС частично или полностью отключаются. Тем самым, увеличивается вероятность заражения устройства вредоносным кодом и растет вероятность успешной атаки. Продвинутое вредоносное ПО для мобильных устройств сейчас уже может это сделать само – главное так или иначе попасть на мобильное устройство.
Просмотрев почти все МБ на российском рынке, можно сказать, то что лишь некоторые из них (точнее всего 2-3) проверяют, в каком состоянии находится мобильное устройство – есть ли там jailbreak или root-доступ. Далее, они выводят сообщение и информируют пользователя об этом. Еще в прошлом году одно из таких приложений отказывалось работать на «дискредитированном» устройстве, но уже в этом году ПО просто вносит определенный лимит на проводимые операции. А в большинстве случаев приложения для МБ работают как ни в чем не бывало.

5) Проблема многофакторной аутентификации
В классической системе ДБО второй фактор часто приходит в виде SMS на телефон, и пользователь подтверждает проведение транзакции. В случае мобильного банкинга, при этом подходе оба фактора приходят/вводятся на одно устройство. Если на устройстве есть вирус (что особенно актуально для ОС Android), то это вредоносное ПО непременно перехватит секретную информацию.
В среде мобильного банкинга распространены следующие подходы многофакторной аутентификации: SMS-сообщения с OTP, таблицы одноразовых кодов, специальные мобильные приложения для генерации OTP прямо на устройстве, биометрическая аутентификация. К сожалению, у них у всех есть один большой общий недостаток: они приходят/вводятся на тоже устройство и передаются по тому же каналу передачи данных, что может контролировать злоумышленник при атаке MiTM или какое-то вредоносное ПО на устройстве. Так что для мобильных приложений актуально, скорее, не наличие второго фактора, а существование второго канала передачи данных.

6) Проблема распространения приложений
Данная проблема касается только мобильные ОС со множеством магазинов приложений. В первую очередь, речь идет об ОС Android. Для Android существует огромное количество магазинов (Google Play, Samsung Apps, Yandex market, Amazon mobile app distribution, SlideMe и т.д.). Некоторые из них сразу «залиты» в устройство по умолчанию, и у пользователя нет выбора, тем более у обычного. В итоге, в одном магазине может лежать легитимное приложение, а в другом его модифицированная версия с вредоносным функционалом.
В последнее время участились просьбы посмотреть, что делает приложение для МБ в магазине, к которому не должно, по идее, иметь отношения. Также встречаются просто неофициальные приложения для банков, представляющие собой «обертки» над Интернет-сайтом. Просмотрев ряд таких приложений, мы пока не обнаружили вредоносный функционал, но это не означает, что со следующим обновлением он не появится и ваши данные улетят на сторонний сервер. Необходимо пользоваться только официальными приложениями, а банкам стоит мониторить магазины приложений на наличие подделок.

7) Проблема защиты кода
Кажется, что такие приложения, как МБ, должны всячески пытаться усложнить жизнь любителям поковыряться в их внутренностях, но это не совсем так. Деобфускация кода встречается в Android приложениях, пусть и нечасто. В iOS она абсолютно отсутствует. Так что для анализа этой проблемы полезно сравнивать эти системы. Aналогичная ситуация и с антиотладочными техниками. Также стоит четко понимать, что деобфускация кода и антиотладочные способы — это не механизмы безопасности, а способы усложнения анализа. Без всего этого упрощается поиск уязвимостей в коде.

8) Проблема защиты канала передачи данных
Мобильные устройства прекрасны тем, что они всегда с нами и дают нам возможность получить доступ к информации из любого места. Придя в кафе, ресторан, торговый центр или кинотеатр, мы ищем доступные бесплатные Wi-Fi точки доступа и без раздумья присоединяемся к ним… или садимся на крючок?
Во второй части статьи мы рассмотрим эту ситуацию и покажем, когда и как именно злоумышленник может украсть деньги из приложения для мобильного банкинга.

Автор: d1g1

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js