Android Jetpack Navigation: Go Even Deeper

Предыдущее исследование

Некоторое время назад мой коллега нашел интересную уязвимость в библиотеке Jetpack Navigation, которая позволяет открывать любой экран приложения в обход существующих ограничений для компонентов не являющихся экспортированными, а следовательно недоступными для других приложений. Суть проблемы в наличии неявного механизма обработки depplink-ов, с которым может взаимодействовать любое приложение на устройстве. Это исследование завершилось тем, что компания Google добавила в документацию к библиотеке следующее предупреждение:

/img/jetpack-compose-navigation/afd2874f950766bd721944957a1f0a0d.png

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

[Далее]

Три случайных уязвимости

В рамках стажировки PT Start от компании Positive Technologies поучаствовал в роли спикера на интенсиве по безопасности мобильных приложений. Всего, что там происходило в паблик не раскрою, но разбор трех уязвимостей, про которые рассказывал студентам, покажу. Две из них нашел я сам, а третья просто показалась мне очень интересной по ряду причин, которые станут понятны далее.

/img/three-random-bugs/kdpv.png
[Далее]

Эволюция уязвимостей в приложениях для Android

История развития приложений для Android прошла несколько заметных этапов: небольшие приложения, работающие локально, клиент-серверные приложения, экосистемы приложений и суперапы (super-app). Каждый из этих этапов повышал планку сложности, порождал новые уязвимости и заставлял разработчиков все больше заботиться о безопасности как самих приложений, так и данных, которыми они оперируют. Развивалась и сама операционная система, предоставляя разработчикам больше возможностей и механизмов обеспечения безопасности. Но в этой системе уравнений всегда несколько больше неизвестных, чем кажется на первый взгляд. Эта статья о том, как эволюционировали уязвимости мобильных приложений, что на это влияло, какие уязвимости актуальны сейчас и какие ждут нас в будущем.

[Далее]

Безопасность мобильных приложений и устройств

За 2022 год наша команда обнаружила 216 уязвимостей в 25 парах исследованных приложений для платформ Android и iOS. Наибольшая доля уязвимостей (14%) пришлась на хранение пользовательских данных в открытом виде. Несмотря на усилия со стороны разработчиков операционных систем и сообществ по безопасной разработке приложений, этот класс уязвимостей продолжает уверенно сохранять лидерство несколько лет подряд. Описанный тренд сохранит актуальность в 2023 году, хотя использовать криптографию в мобильных приложениях сегодня очень просто: и вендорские, и опенсорсные решения облегчают разработчикам работу с криптографическими примитивами. Второе место поделили между собой уязвимости, касающиеся проверки целостности приложений и хранения конфиденциальной информации в коде (по 9%). Замыкает тройку лидеров класс уязвимостей, связанных с проверками на недоверенное окружение (8%).

[Далее]

Деобфускация в уме: Часть 1

Если вам на секунду показалось, что название статьи вам смутно знакомо, то вам не показалось.

Очень часто под рукой не оказывается ни отладчика, ни дизассемблера, ни даже компилятора, чтобы набросать хотя бы примитивный трассировщик. Разумеется, что говорить о взломе современных защитных механизмов в таких условиях просто смешно, но что делать если жизнь заставляет?

Касперски Крис

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

/img/deobfuscation-in-the-mind/kdpv.png

[Далее]

Бассейн со строками

Бывает так, что долго-долго собираюсь написать про какую-то тему и не нахожу на это время, а потом приходит человек и задает на эту тему вопрос (спасибо тебе, человек!), после которого находятся силы и время сделать разбор интересной темы.

Речь пойдет об организации памяти в JVM и таком явлении как String pool, а также почему нельзя так просто взять и удалить секретную информацию из памяти android приложения.

Внутри много картинок!

/img/string-pool/kdpv.jpg

[Далее]