Mobile AppSec World
3.58K subscribers
99 photos
5 videos
15 files
634 links
Новости из мира безопасности мобильных приложений, а так же интересные статьи, обзоры инструментов, доклады, митапы и многое другое...

По всем вопросам - @Mr_R1p
Download Telegram
Вопрос, что есть в Android и практически нет в iOS? 🤓

На самом деле много чего :) Но самое интересное, на мой взгляд, это межпроцессное взаимодействие (IPC - Inter-process communication). В системе Android кажется бесшовным общение между приложениями через вызовы сервисов, запуск Activity, отправку Intent'ов и широковещательных сообщений. И это безумно удобно!

Но, как мы знаем, Android построен на базе ядра Linux и использует большое количество инструментов безопасности этой платформы. И на самом деле, вызовы из одного процесса в другой запрещены. Так как же тогда работает межпроцессное взаимодействие?

Ответ прост - в Android есть очень интересный механизм под названием Binder IPC, который представляет собой системный процесс для обмена данными между приложениями.

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

#Android #Security #IPC #Linux #binder

Часть 1 (в основном про общее строение безопасности Android и как он работает):
https://blog.hacktivesecurity.com/index.php?controller=post&action=view&id_post=46

Часть 2 (больше информации именно про устройство Binder IPC):
https://blog.hacktivesecurity.com/index.php?controller=post&action=view&id_post=48
Deep Dive into Android Binder IPC.pdf
3.1 MB
Для тех, кому интересно почитать более подробно про Binder, механизм его работы и внутренности, есть замечательный материал, который в подробнейших деталях описывает все нюансы :)

А также подробно описан механизм AIDL (Android Interface Definition Language). В буквальном переводе – язык описания интерфейсов Android. Используется для описания композиции и декомпозиции Java объектов в примитивы ОС для непосредственно передачи между процесами.

Информации много, но это того стоит, поверьте.

#Android #Binder #Security #IPC
Уязвимость Race Condition в Binder IPC

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

Недавно Google закрыли уязвимость CVE-2020-0423, которая позволяла получить root-доступ на устройстве через взаимодействие с Binder.

В статье подробно описано, почему это происходило, как эта уязвимость работает, с примерами кода, логов и большому количеству отсылок к разным другим интересным статьям. И более того есть PoC эксплойта 🔥

#Android #Binder #IPC #CVE
И снова шикарный трюк от @bagipro

Продолжая рубрику "советы для bugbounty", теперь про способ обхода ограничений для ContentProvider.openFile().

Вот ссылка на оригинальный пост, но для тех, у кого Твиттер закрыт и нет VPN немного пояснений и описаний.
Суть в том, что использую небольшой трюк можно получить приватную информацию через контент провайдер, если вызвать его не напрямую, а прикинуться шлангом, системным сервисом, которому по умолчанию выдаются любые Permissions.

Атака возможна, если:
1. Контент-провайдер экспортируется
2. Внутри он проверяет вызывающий UID, имя пакета и/или набор разрешений

Таким образом, можно вызвать ContentProvider.openFile() через IActivityManager.openContentUri(). Он проверит права доступа, но затем проксирует вызов из своего контекста, а именно к Binder.getCallingUid() == 1000, и, так как это UID системы, то ей по умолчанию предоставлены все права.

Что тут сказать, аплодирую стоя 👍👍

#android #binder #contentProvider #oversecured