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

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

[Далее]

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

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

[Далее]

Заводим USRP B200-mini-i под macOS на M1

Я уже какое-то время изучаю SDR, и вот наконец-то мне приехала более серьезная игрушка чем RTL-SDR, с которой я упражнялся ранее.

/img/usrp-b200-mini-i-macos-m1/device.jpg

Строго говоря, это не оригинальная B200-mini-i от Ettus Research, а ее китайский клон. Но так распорядилась судьба 🤗 По основным компонентам она сопоставима, поэтому жить можно.

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

[Далее]

Как установить jailbreak на iPhone X

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

/img/iphone-x-jailbreak/kdpv.jpg
[Далее]

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

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

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

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

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

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

[Далее]

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

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

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

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

/img/string-pool/kdpv.jpg

[Далее]

Непокорный ReactNative

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

/img/disobedient-react-native/rnkdpv.jpg
[Далее]

Как получить root права на OPPO A16

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

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

[Далее]

Биометрическая недоаутентификация

Много уже написано и сказано про биометрическую аутентификацию в android приложениях. И это не прошло бесследно. Вижу много приложений где флоу аутентификации биометрия+пин-код сделан по всем канонам безопасности. Но дьявол кроется в деталях. И сегодня я покажу как всего один флаг способен умножить на 0 отлично выстроенную систему аутентификации. Речь пойдет об одном широко известном приложении 🤐

/img/biometric-underauthentication/logo.gif

[Далее]

Ядовитая экосистема

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

/img/poisonous-ecosystem/logo.gif

[Далее]