Неделя мобильной безопасности (23-29 апреля)

от автора

Привет, Хабр!

Продолжая серию мини-дайджестов по мобильной безопасности, посмотрим, что интересного появилось с 23 по 29 апреля.

Новости

URI Spoofing в клиенте мессенджера Signal для iOS

Достаточно необычную уязвимость в мессенджере Signal опубликовали исследователи.

В клиенте нашли инъекцию RTLO (RightToLeftOverride), позволяющую отправлять пользователям ссылки, которые выглядели бы как нормальные, но вели бы на совершенно другой домен (тот, который читался справа налево). К примеру, можно отправить ссылку:
http://example.com/#files/ten.jpeg , вставить перед ней специальный символ «обратного чтения» и клиент загрузит на самом деле адрес: gepj.net/selif#/moc.elpmaxe

Гениально и просто — регистрируем нужные домены и вперёд! Интересная техника, раньше о ней не слышал. Надо будет проверить при анализе приложений, как они обрабатывают подобные символы.

 

CVE-2021-1782 в XNU Vouchers subsystem

По следам заметок и размышлений от Google Project Zero на тему уязвимости в iOS с парсингом ASN.1 формата — подоспела ещё одна отличная статья про уязвимость CVE-2021-1782.

В ней много полезной информации о том, как устроена система Vouchers в ядре iOS. Что это такое, зачем нужно, как работает, в чем был смысл уязвимости. Также представлен PoC, с помощью которого можно посмотреть, как ее эксплуатировать.

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

 

И ещё один способ добавить сертификат в системное хранилище сертификатов на эмуляторе

Название “Android Pentesting Setup On Mac M1” выглядит не просто многообещающе, но и модно, и ждешь от нее много интересного, рассказывающего о специфике нового чипа.

Но по факту это просто описание того, как поставить Android Studio, создать и запустить эмулятор.

Польза: в статье описан, наверное, самый простой способ добавления сертификата от Burp Suite в системное хранилище сертификатов. Речь о запуске эмулятора с доступным на запись системным разделом и простое копирование туда файла сертификата.

Системные сертификаты лежат в /system/etc/security/cacerts. И все, что нужно, это скачать, сконвертировать сертификат в нужный формат и положить его в эту директорию. Ничего сложного, но статья безумно подробно описывает весь этот процесс.

Возможно будет полезно, если не хочется ставить Magisk.

 

И снова про App Transport Security: что это и зачем

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

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

А если к этому добавить возможность прикрепления сертификатов по аналогии с андроидовским Network Security Config, и посмотреть более внимательно, как с ним работать, можно получить очень удобный инструмент для настройки сетевого взаимодействия.

Исходя из всех этих соображений, я написал статью, посвященную теме App Transport Security. О том, как его настраивать, что означают ключи, как сделать прикрепление сертификатов, как проверить настройку backend и многое другое!

Надеюсь, что вам пригодится это в работе!
Ну или тем, кто когда-то начнет работать с iOS и будет искать материалы по этой теме.

 

Получение root на эмуляторе с Google Play

На эмуляторах с установленным Google Play не так-то просто было получить полноценный root-доступ.

Я писал про репозиторий, который позволяет получить постоянный root на эмуляторе, но он только для эмуляторов без Google Play, и там достаточно сложная последовательность действий и репозиторий уже в архиве.

Но вот инструмент, который обещает нам получение рута на эмуляторе вплоть до 12-го Android. Но это не совсем привычный нам root-доступ вообще, а только для конкретного процесса (включая демона adb). Что интересно, права выдаются «на лету», то есть никаких специальных действий с самим эмулятором производить не нужно. Чтобы понять, как это работает, можно посмотреть описание репозитория, идея из которого была реализована для более старших версий Android.

Может весьма пригодиться для анализа приложений.

 

Удаленное выполнение кода в Adobe Acrobat Reader для Android

Исследователь обнаружил возможность выполнения произвольного кода в Adobe Reader через ставшую уже классической связку между уязвимостями Path Traversal в getLastPathSegment() и подгрузку через эту уязвимость нативной библиотеки, где в методе JNI_OnLoad вызывается зловредный код.

Конечно, уже есть оперативный фикс от adobe и за эту багу выплатили 10К, что весьма и весьма достойно!

Статья хорошо описывает весь путь, без лишней воды. И даже фикс показывает.

 

Очень хитрая и интересная Malware

Обычно я не люблю статьи про анализ разных вирусов и прочей Malware под Android, поскольку в них в 90% случаев нет ничего особенного. Такое ощущение, что их просто делают под копирку и собирают из нескольких доступных исходников с небольшой модификацией.

Однако, в этой статье рассказывается про очень интересную и достаточно хитрую разработку, которая не реализует классический DexClassLoader для подгрузки и запуска полезной нагрузки, а использует механизм MultiDexApplication с небольшими изменениями (другие имена файлов, локация для сохранения, а также реализована предварительная расшифровка dex-файла). Хорошо, что ключ шифрования по традиции сохраняется в исходном коде ?

В общем, достаточно интересный пример, можно взять на вооружение для CTF, например.

 

Frida хуки из smali кода

Вслед за jadx и jeb, можно получить хуки на нужные классы напрямую из smali файлов.

Автор репозитория, правда, не расщедрился на описание и ограничился командой на запуск:

java Smali2Frida "/directory/to/smalifolder" >script.js

И понять, что там происходит, можно только запустив эту команду. А после ее выполнения получаем js-файлик с хуками на все классы внутри выбранной директории. Может быть достаточно удобно, если нужно повесить много хуков.

Но поскольку это Open Source, никто не гарантирует, что это будет работать.

Заключение

Завершая третий выпуск, не могу не напомнить, что много интересных материалов по теме публикуется в Telegram-канале про мобильную безопасность Mobile Appsec World. Также они добавляются в репозитории, где всегда можно найти интересующие темы по безопасности:

Хотите что-то добавить? Жду вас в личных сообщениях, комментариях под постами, а может быть даже и в Pull Request.

Всем спасибо и хороших выходных!


ссылка на оригинал статьи https://habr.com/ru/articles/663530/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *