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

    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 точки доступа и без раздумья присоединяемся к ним… или садимся на крючок?
    Во второй части статьи мы рассмотрим эту ситуацию и покажем, когда и как именно злоумышленник может украсть деньги из приложения для мобильного банкинга.
    Digital Security
    299,63
    Безопасность как искусство
    Поделиться публикацией

    Комментарии 38

      0
      А еще есть способ через покупку SIMок со старыми, уже бывшими в употреблении, номерами. На некоторых из них всё еще бывает подключен мобильный банк.
        +2
        В нормальных банках при смене симки блокируется возможность что-либо сделать до повторной проверки всех данных. Примеры — Альфа и ТКС.
          0
          Интересно, как в таком случае обстоит дело с операциями, которые можно произвести через банальную отправку смс.
            0
            А как банки узнают о смене симки?
              0
              Ниже уже прочитал.
                +1
                не совсем так. банк подключается к оператору как «оператор связи». и при запросе от абонента он дергает опсоса на предмет информации по абоненту, и если имси отличается — то просит подтвердить замену симкарты. smsc.ru/hlr/ — вот, например, такая услуга.
              0
              В альфе. При установке симки с другим номером всё работает в штатном режиме. При замене симки с тем же номером отваливается альфа-ключ.
              0
              При замене сим-карты в телефоне на новую (номер оставался тот же) у меня неожиданно оказался заблокирован мобильный банкинг. Пришлось с паспортом идти в отделение для разблокировки.
              Вопрос автору поста: Как они это делают?
                0
                Скорее всего из-за того что банк использовал привязку к IMSI.
                  +1
                  А вот как банки получают IMSI? Он же между абонентами не передается. Специально договариваются с операторами сотовой связи? Или может банки даже не получают сам IMSI, а просто просят оператора уведомлять о его деактивации? Насколько я понимаю, сообщать кому-то стороннему номер IMSI небезопасно, его должен знать только оператор.
                    0
                    Приложение может запросить значение IMSI у системы. Например, в Android есть функция getSubscriberId() в классе TelephonyManager.
                      0
                      Даже если и так, это поможет только в защите приложения мобильного банка, но никак не защитит онлайн-банкинг от перехвата СМС двухфакторной авторизации или просто от переводов через СМС.
                      0
                      Менял тут sim на micro-sim. Интернет не телефоне не подключен. Через 15 минут понадобился банк-клиент ТСК (на десктопе). Получил отлуп с ошибкой о смене симы. Начал разбираться, и, по словам саппорта — МТС сами стучат им о смене симы (сливая им IMSI или просто хук на смену — не знаю). Восстановили доступ минут за 10, правда данных колл-центр запрашивал много, и ФИО-рождение-т.п., и паспорт с пропиской и кодом подразделения (благо что рядом была сия книжица), и кодовое слово, хорошо хоть «релфи» с паспортом не просили прислать. Хотя порадовало, что перевыпуск симы зловредам не поможет в отъеме у меня условных единиц.
              +1
              > Деобфускация кода встречается в Android приложениях, пусть и нечасто

              Наверно наоборот, обфускация кода?
                0
                Да — исправил.
                –1
                Кажется, не все проблемы нужно решать инженерными способами. Ведь есть и административные варианты решения задачи. Думаю, МБ должен быть подключен к неважной карточке, которая имеет небольшой баланс, не имеет доступа к основному счёту, а также не позволяет брать кредиты. Тогда взлом — это не трагедия, а потеря денег «на кофе».
                  +3
                  Я тут, кстати, столкнулся с забавным идиотизмом. Жена переводила деньги из мобильного банкинга, пришла смс с кодом, а через некоторое время на этот же телефон позвонили и спросили подтверждает ли она платеж. Забавно, все проверки на одном телефоне, какой смысл? Я понимаю если бы они спросили кодовое слово, допустим, но нет, ничего, просто вопрос подтверждаете или нет и попрощались…
                    0
                    Я слышал о технологиях записи для последующего сопоставления «характера речи» в банковских антифрод-системах.
                      0
                      В двух разных банках, где мне поступал такой звонок во время совершения перевода, меня просили назвать полностью Ф.И.О. и дату рождения.
                        0
                        Альфа не просит
                        0
                        Как минимум чтобы убедится что это делает не троян. Да и образец голоса ваш у них наверняка уже есть.
                        0
                        Почему-то прямого ответа на заголовок в тексте нет. Хотя он краток и понятен: «да».
                          0
                          Еще в прошлом году одно из таких приложений отказывалось работать на «дискредитированном» устройстве, но уже в этом году ПО просто вносит определенный лимит на проводимые операции.

                          Почему сразу «дискредитированном»? Может наоборот «более защищенном»? :)
                          PS. Я в основном про root-доступ.
                            +1
                            И как же установка root привилегий повышает безопасность?
                              +1
                              Нарпимер, без рутовых привелегий нельзя заменить прошивку Андроидов на самосборную, из которой выборошены некоторые ненужные корневые сертификаты, установлен и настроен фаерволл; невозможно поставить некоторый софт, более или менее успешно изолирующий приложения друг от друга и от бесполезных для их работы данных о самом телефоне. Но рациональное зерно в статье всё же есть: большинство любителе «зарутить трубу» делают это исключительно для понтов и установки ломанных программ со стрёмных форумов, за которые иначе пришлось бы отвалить целых 3$.
                                0
                                В моем случае — после получения рута ставится фаервол и XPrivacy.
                                  0
                                  Но эти программы не гарантируют вам что какая-нибудь зараза не проберется в систему и получит все привилегии. Очень часто такой канал это пользователь, который ставит ну ооооочень нужное приложение.
                                    0
                                    Не гарантирует, но вероятность этого уменьшается во много раз. Установка приложения с Android Market тоже не гарантирует, что вы не подцепите заразу.
                                  0
                                  Возможностью отобрать у «плохих» приложений ненужные разрешение
                                  Firewall на уровне системы.

                                  Масса способов улучшить защиту системы, имя root
                                0
                                Я рутил свой телефон под Android не из-за халявы и рюшек, а потому что без root'а им просто невозможно пользоваться. Например, не избавиться от неотключаемых ненужных предустановленных приложений (больше всего меня бесили неотключаемые напоминания во встроенном календаре Lenovo).

                                Только под root'ом можно решать проблемы со шрифтами (у меня в белом русифицированном телефоне очень криво отображался текст на русском во многих программах), переразметить внутреннее хранилище (из-за монстров типа facebook, пухнущих на несколько Мб каждую неделю, оно заполнилось до предела за пару месяцев), и множество других причин.
                                  0
                                  проблему (с точки зрения пользователя это — именно проблема) с банками… можно решить тем же RootCloak/RootCloak+ (если человеку реально рут нужен — поставить не сложно)…

                                  не потому ли Еще в прошлом году одно из таких приложений отказывалось работать на «дискредитированном» устройстве, но уже в этом году ПО просто вносит определенный лимит на проводимые операции. а то вспоминается одна тема на banki.ru где как раз банк ругали за то что не дают под рутом запускатся… только вот сейчас этот МБ просто матерится на старте но запускается.
                                  0
                                  9). Проблема защиты от человека с паяльником.
                                    +1
                                    Купить для смс-подтверждений отдельный копеечный телефон-звонилку и отдельную симку. Да и вероятость того, что такое убожество украдут, снизится.
                                      0
                                      Наоборот… кому нужен смарт, который практически тут же удаленно заблочат? А вот такие дешевые неприхотливые телефоны они всегда в цене… Уж тогда его надо поцарапать и в чём-то конкретно измазать, чтобы не позарились.
                                      0
                                      Есть схема фрауда через замену симки. Злоумышленник идет в салон связи, и просит заменить «вышедшую из строя» симку с таким-то номером (допустим по поддельному паспорту с нужными данными или сговором с сотрудником салона). Или просто покупает номер предыдущего владельца.
                                      Потом, нехитрыми манипуляциями через мобильный банк снимает все средства. Например в сбербанке. Факт того, что для успешного совершения операций достаточно нехитрых действий, и на это никак не влияет защита приложений и всего такого, ибо оно там не используется.
                                      Автор, ваша компания не проводила аудит на предмет таких атак?
                                        0
                                        Кроме владения телефоном, нужно ещё знать логин и пароль от системы. Данный вектор атаки абсолютно не технический — здесь чисто социальная инженерия. Мы ей тоже занимаемся. Но при анализе безопасности МБ, как правило заказчики не включают данную модель нарушителя (сговор с сотрудником салона) в перечень работ.

                                        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                        Самое читаемое