Прямая без препятствий. От чего и зачем нужно защищать мобильные приложения. pt maze.. pt maze. rasp.. pt maze. rasp. Блог компании Positive Technologies.. pt maze. rasp. Блог компании Positive Technologies. взломы.. pt maze. rasp. Блог компании Positive Technologies. взломы. защита мобильных приложений.. pt maze. rasp. Блог компании Positive Technologies. взломы. защита мобильных приложений. защита мобильных устройств.. pt maze. rasp. Блог компании Positive Technologies. взломы. защита мобильных приложений. защита мобильных устройств. Информационная безопасность.. pt maze. rasp. Блог компании Positive Technologies. взломы. защита мобильных приложений. защита мобильных устройств. Информационная безопасность. Исследования и прогнозы в IT.. pt maze. rasp. Блог компании Positive Technologies. взломы. защита мобильных приложений. защита мобильных устройств. Информационная безопасность. Исследования и прогнозы в IT. кибератаки.. pt maze. rasp. Блог компании Positive Technologies. взломы. защита мобильных приложений. защита мобильных устройств. Информационная безопасность. Исследования и прогнозы в IT. кибератаки. клоны.. pt maze. rasp. Блог компании Positive Technologies. взломы. защита мобильных приложений. защита мобильных устройств. Информационная безопасность. Исследования и прогнозы в IT. кибератаки. клоны. перепаковка.. pt maze. rasp. Блог компании Positive Technologies. взломы. защита мобильных приложений. защита мобильных устройств. Информационная безопасность. Исследования и прогнозы в IT. кибератаки. клоны. перепаковка. Реверс-инжиниринг.. pt maze. rasp. Блог компании Positive Technologies. взломы. защита мобильных приложений. защита мобильных устройств. Информационная безопасность. Исследования и прогнозы в IT. кибератаки. клоны. перепаковка. Реверс-инжиниринг. Тестирование мобильных приложений.. pt maze. rasp. Блог компании Positive Technologies. взломы. защита мобильных приложений. защита мобильных устройств. Информационная безопасность. Исследования и прогнозы в IT. кибератаки. клоны. перепаковка. Реверс-инжиниринг. Тестирование мобильных приложений. уязвимости мобильных приложений.
Прямая без препятствий. От чего и зачем нужно защищать мобильные приложения - 1

На связи Николай Анисеня из отдела перспективных технологий Positive Technologies. Так вышло, что в компании я уже много лет занимаюсь безопасностью мобильных приложений, исследую тренды этого направления и, как и все, наверно, специалисты в этой области, ломаю голову: как сделать мобильное приложение более защищенным. Этой публикацией я открываю цикл статей на тему безопасности мобильных приложений и устройств, корень которой (начнем со спойлера!) — в анализе кода. В этой статье расскажу об угрозах мобильных приложений, сценариях атак на них и о главном парадоксе в их разработке. Интересно? Тогда погнали!

В теме безопасности мобильных приложений присутствуют разнонаправленные тренды. Что-то становится более защищенным благодаря улучшению фреймворков, операционных систем и практик безопасной разработки, а где-то, наоборот, появляются новые возможности для атак из-за новой функциональности мобильных приложений. Все как в том меме: «Исправлены баги, добавлены новые». Примером может служить уязвимость, приводящая к атаке типа Tapjacking, о которой впервые заговорили применительно к Android 2.3. На устройствах с Android 4 эта проблема была фактически решена, однако с выходом Android 6 вышел и «наследник» этой уязвимости, позволяющий произвести атаку Cloak and Dagger.

Источник: pikabu.ru

Источник: pikabu.ru

Направлению безопасности мобильных приложений в Positive Technologies уже более десяти лет, и все это время мы наблюдаем эту картину: какие-то компоненты мобильных приложений становятся защищеннее, а какие-то, наоборот, вбирают в себя все больше угроз.

Этот факт также находит отражение в данных OWASP Mobile Top 10. Но в этом рейтинге можно заметить и весьма однозначные тренды, если анализировать долгосрочный период. Например, давайте рассмотрим ситуацию с защитой кода. За 10 лет существования OWASP Mobile Top 10 эта проблема не просто всегда отмечалась в рейтинге, но и стабильно поднималась вверх списка — с 10-го места в 2014-м на 7-е в 2024-м. Формулировали проблему каждый раз по-разному: возможность реверс-инжиниринга, тамперинга, недостаточная бинарная защита, защита кода.

Несмотря на растущую угрозу, защита кода все еще остается крайне непопулярной мерой защиты мобильных приложений, согласно исследованию, опубликованному на arXiv.org. За период с 2016 по 2023 год в среднем 56% приложений применяли техники обфускации, однако только 59% из них, или ⅓ от изначальной выборки, совмещали все три описанные в статье техники обфускации, при этом качество защиты не исследовалось. Не удалось найти похожих исследований для техник RASP — runtime application self-protection — самозащиты приложений во время запуска.

По нашей статистике, основанной на результатах анализа защищенности приложений за 2024 год, проводимых для наших клиентов, а также исходя из опыта личного участия наших экспертов в программах bug bounty, доля применения совокупности техник обфускации и RASP составляет только 8%.

🥁 Более чем за 10 лет анализа защищенности нам встретилось только одно приложение, защиту которого не удалось преодолеть за выделенное на проект время. Однако это не помешало нам обнаружить критическую уязвимость с помощью реверс-инжиниринга: в одном месте защита не применялась, и именно через него мы получили исполнение кода на сервере — уязвимость в10 баллов по шкале CVSS!

И вроде это неудивительно: реверс-инжиниринг нельзя сделать невозможным, а атакующий всегда может делать с клиентским приложением все, что ему вздумается: модифицировать, читать память, использовать фрагменты кода на свое усмотрение.

Почему так происходит?

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

Но решение у этой проблемы есть. Техники защиты кода способны сильно усложнить реверс-инжиниринг и тамперинг. Хорошая защита кода увеличивает трудозатраты и, как следствие, стоимость атаки настолько, что злоумышленник предпочитает отказаться от идеи атаковать приложение.

Но каждый ли разработчик заботится о защите своего приложения? Безопасность — это всегда затраты. Поэтому давайте разберемся, стоит ли вам переживать о защите кода и как ее обеспечить при необходимости.

Сценарии атак на мобильные приложения

Для атакующего реверс-инжиниринг в широком смысле — это инструмент изучения внутреннего устройства приложения для достижения одной из целей:

🔻 поиск и эксплуатации уязвимостей,

🔻 создание клонов и модификаций,

🔻 изучение внутреннего устройства приложения в целях конкуренции,

🔻 использование части кода или компонентов приложения без согласия правообладателя,

🔻 кража контента,

🔻 автоматизация и разработка альтернативных клиентов.

Для частичной или полной защиты от подобных угроз хорошо работают технологии защиты кода. Рассмотрим в деталях каждый из этих сценариев.

Реверс-инжиниринг конкурентов

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

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

Кража ассетов

Также в геймдев распространено воровство ассетов. Неплохо защищаться в этом случае можно юридическими методами, так как доказать воровство большинства компонентов гораздо проще (по сравнению с формулами из предыдущего примера). Но не все ассеты могут быть защищены юридически. Примером таких уязвимых компонентов могут стать файлы локальных ML-моделей, хранимые в бандлах приложений. В исследовании на arXiv.org за 2021 год сказано, что 41% приложений никак не защищают свои модели, а ⅔ приложений допускают их тривиальное извлечение из бандла. Выгода атакующего здесь аналогичная: экономия ресурсов на обучение модели. Жертва в этом случае теряет конкурентное преимущество, на разработку которого уже потрачены ресурсы.

Воровство контента

Но воруют не только идеи и технологии. Злоумышленники также заинтересованы в пиратстве контента: фильмов, музыки, книг и др. Основным средством борьбы здесь является блокирование сайтов, распространяющих пиратский контент. Однако использование методов DRM (digital rights management, технологии для защиты копирайта) совместно с протекторами мобильных приложений может сильно увеличить стоимость извлечения контента.

Автоматизация и альтернативные клиенты

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

Автоматизация взаимодействия с API сервера мобильного приложения также может нести риски для бизнеса. Это разработка торговых или игровых ботов, сбор рыночных данных, данных о пользователях. Использование ботов — в торговле, играх, еще где-то — может привести к тому, что легитимные пользователи приложения будут в заведомо подвержены риску. В случае игр и трейдинга — это нечестная конкуренция, в мессенджерах и соцсетях — это спам-рассылки, мошенничество, накрутки. Другим ярким примером такого проигрыша могут служить боты для записи в визовые центры. Забронировать слот на сайте, как это предполагается системой, почти нереально, приходится выкупать забронированные ботами места.

Создание клонов и модификаций приложений

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

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

Обнаружен вредоносный клон, полученный с помощью перепаковки легитимного Android-приложения ChatGPT

EvilBamboo атакует мобильные устройства в ходе многолетней кампании

Семейство шпионских Android-приложений, переделанных из легитимных с помощью добавления бэкдора

Похожим образом дело обстоит с модификациями приложений без цели навредить пользователю. Удаление или перенаправление рекламы, разблокировка платных функций — все это легко дается злоумышленникам, если в приложении не применяются технологии защиты от модификации и перепаковки. Согласно этому исследованию, 21% модов (модифицированных приложений) перенаправляют рекламные доходы оригинального приложения.

Поиск и эксплуатация уязвимостей

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

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

Технологии RASP — дамп памяти, тамперинг и динамическая инструментация (Frida), применение динамических сканеров (DAST) — препятствуют динамическому анализу. В случае их использования злоумышленник вынужден потратить огромное количество ресурсов на создание кастомного тестового окружения, перепаковку приложения, чтобы просто подступиться к поиску уязвимостей.

Зона риска: какие приложения наиболее уязвимы?

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

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

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

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


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

Прямая без препятствий. От чего и зачем нужно защищать мобильные приложения - 3

Николай Анисеня

Руководитель отдела перспективных технологий, Positive Technologies

Автор: ptsecurity

Источник

Рейтинг@Mail.ru
Rambler's Top100