Привет, Хабр!
И снова представляю вам самые главные новости из мира безопасности мобильных приложений (с 14 по 20 мая). Несмотря на прошедшую вторую волну праздников, новостей и материалов хватает, - давайте посмотрим, что интересного произошло.
![](https://habrastorage.org/getpro/habr/upload_files/87f/6a9/3b6/87f6a93b619a0892ab7be755dec67cdd.jpg)
Новости
Перехват трафика мобильного приложения с использованием Wireguard, MitmProxy и Linux внутри Android
В последнее время по какой-то причине выходит много статей на тему перехвата трафика мобильных приложений. Были уже способы с Magisk, с установкой сертификата в системные руки или через специальный инструмент.
Автор этой статьи предлагает поставить на Android-устройство LineageOS, Magisk, frida-server, потом развернуть Linux на девайсе, накатить туда frida-tools и MitmProxy. После этого они начинают дружить друг с другом по SSH через Wireguard VPN (ну и вроде как с компа туда можно подключиться).
То есть, получаем полноценную лабораторию на одном устройстве. Классно, правда?
На самом деле, выглядит немного пугающе, и возникает вопрос: “Зачем так сложно?” Но если кто-то захочет заиметь нечто подобное, то этот мануал вам поможет.
Архивирование приложений в Android
В недавнем сообщении в своем блоге компания Google объявила, что начала работать над новой функцией, которая позволит "архивировать приложения". Это позволит пользователям освободить ~60% от занимаемого дискового пространства, "удалив части приложений, а не удаляя их полностью".
Поскольку в таком случае технически приложения остаются на устройстве, их данные сохраняются при архивировании, что облегчает их резервное копирование и запуск.
В статье также рассказывается о том, что такое App Bundle, как его сделать, как он работает и вот это все.
Хороший материал, можно узнать много интересных вещей.
Быстрый способ проверить наличие обфускации, тип шифрования apk и различных проверок
Очень полезный инструмент для быстрого анализа приложения на наличие обфускации или специального пакера, который зашифровывает dex-файлы.
Также может быть крайне полезен при анализе приложений, так как умеет определять различные методы защиты приложения, включая проверку на эмулятор, проверку на подключенный дебаггер. Списком выводит те проверки, что ему удалось найти:
|-> anti_vm : Build.FINGERPRINT check, Build.MANUFACTURER check, Build.MODEL check, Build.PRODUCT check, Build.TAGS check, SIM operator check, device ID check, network operator name check, ro.kernel.qemu check
|-> compiler : r8
|-> obfuscator : unreadable field names, unreadable method names
Иными словами, теперь нет необходимости вручную смотреть, какие проверки есть внутри приложения и что нужно подменять, достаточно просто запустить некую команду, передать ей на вход имя файла и получить результат.
Конечно, инструмент не покрывает всех проверок, но в качестве отправной точки может неплохо помочь.
Небольшой получасовой экскурс на Youtube об инструменте radare2.
Я пока еще не попробовал его в полной мере, но описание его возможностей внушает уважение. Крайне интересный инструмент для реверса мобильных приложений. Учитывая, что у него есть куча плагинов, api и прочих полезных вещей, может поучаствовать и в автоматизации.
Для старта советую начать с официальной книги по radare2, где очень многое описано, благодаря чему становится понятнее, как и для чего его использовать.
Writeup по простенькому Android CTF
Прохождение достаточно простого CTF на одной из недавних конференций NahamCon2022.
Автор описывает принцип работы приложения и решает задачу при помощи модификации smali-кода, попутно немного объясняя что и как он делает.
Небольшой и занятный writeup, можно для эксперимента пройти его не через модификацию smali, а через frida, например.
Для тех, кто хочет попробовать свои силы, сам файл приложения можно взять здесь.
В одном из источников подсмотрел полезную заметку по использованию Frida с несколькими примерами, которые могут помочь в работе.
Примеры для С, Android и iOS. Их не очень много и они довольно общие, но в целом, крайне полезные для анализа приложения. Однозначно стоит их поместить в закладки, а лучше сохранить локально.
Анализ потенциально опасного приложения на Flutter
Всем любителям Flutter посвящается. В последнее время из каждого чата доносится Flutter, Flutter, Stepn Flutter.
Вот и исследователю попалось приложение, потенциально похожее на зловредное. А во время анализа выяснилось, что написано оно на платформе Andromo, что на самом деле тот же Flutter.
Статья разделена на несколько частей, и включает анализ таких приложений в целом (подходы, инструменты и т.д.), а также анализ зловредов. Очень познавательно.
Как оказалось в итоге, приложение это не зловредное, но что-то мне подсказывает, что в скором времени мы ещё увидим статьи о новых типах вирусов, написанных на Dart…
Найти всё, что скрыто. Поиск чувствительной информации в мобильных приложениях
Одной из самых трудоемких задач в процессе анализа приложения (как минимум по времени) - это поиск неправильно хранящихся чувствительных данных в приложении, понимание, откуда они там появились и где дальше используются.
В своей статье я немного рассказал про наши принципы и подходы к такому поиску, поразмышлял на тему того, как найти более сложные кейсы и как это связать воедино.
В секции про правильное хранение получилось добавить немного про шифрование и, думаю, в ближайшее время, я сделаю пост про основы шифрования, что нужно знать, чтобы не допустить простых ошибок во время реализации (по аналогии с SSL Pinning).
Надеюсь, что этот материал покажется вам интересным и вы сможете что-то нужное подчерпнуть для анализа или для защиты.
Биометрия, как много в этом слове
Небольшая заметка про маленький, но противный баг, который периодически встречается в приложениях использующих биометрическую аутентификацию. Этот нюанс точно стоит учитывать при добавлении биометрии в своем приложении или при анализе биометрической аутентификации.
Отдельное спасибо автору за готовый frida-скрипт по обходу некорректно реализованной биометрической аутентификации.
Бесплатные сканы от Oversecured.
Один из ведущих облачных статических анализаторов запустил программу по двум бесплатным сканированиям для новых учетных записей.
Сканировать можно любые приложения. Для Android достаточно apk-файла, для iOS будет необходим исходный код на Swift.
Fuzzing инструмента radare2 в Kubernetes
Весьма занятная статья вышла про увеличение скорости fuzzing используя Kubernetes.
Автор реализовал (а вернее взял из предыдущего исследования) небольшой блок кода, который случайно меняет последовательность бит в бинарном файле. После, измененный бинарный файл отправляется в radare2 и отслеживаются падения, то есть, удалось ли обработать файл или нет. Всё это развернуто в кубе и гоняется на каждый релиз.
Вообще, несмотря на кажущуюся сложность, статья написана весьма неплохо и читается очень легко.
Заключение
По традиции, напоминаю, что много интересных материалов по теме публикуется в Telegram-канале про мобильную безопасность Mobile Appsec World. Также они добавляются в репозитории, где всегда можно найти интересующие темы по безопасности:
Хотите что-то добавить? Жду вас в личных сообщениях, комментариях под постами, а может быть даже и в Pull Request.
Всем спасибо и продуктивной работы!