Вопрос, что есть в 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
На самом деле много чего :) Но самое интересное, на мой взгляд, это межпроцессное взаимодействие (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
А также подробно описан механизм 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
Про Binder было несколько постов, которые объясняли что это, как работает и для чего нужен. Но если кратко - это системный компонент, через который реализовано межпроцессное взаимодействие в Android.
Недавно Google закрыли уязвимость CVE-2020-0423, которая позволяла получить root-доступ на устройстве через взаимодействие с Binder.
В статье подробно описано, почему это происходило, как эта уязвимость работает, с примерами кода, логов и большому количеству отсылок к разным другим интересным статьям. И более того есть PoC эксплойта 🔥
#Android #Binder #IPC #CVE
cve.mitre.org
CVE -
CVE-2020-0423
CVE-2020-0423
Common Vulnerabilities and Exposures (CVE®) is a list of records — each containing an identification number, a description, and at least one public reference — for publicly known cybersecurity vulnerabilities. Assigned by CVE Numbering Authorities (CNAs)…
И снова шикарный трюк от @bagipro
Продолжая рубрику "советы для bugbounty", теперь про способ обхода ограничений для
Вот ссылка на оригинальный пост, но для тех, у кого Твиттер закрыт и нет VPN немного пояснений и описаний.
Суть в том, что использую небольшой трюк можно получить приватную информацию через контент провайдер, если вызвать его не напрямую, априкинуться шлангом, системным сервисом, которому по умолчанию выдаются любые Permissions.
Атака возможна, если:
1. Контент-провайдер экспортируется
2. Внутри он проверяет вызывающий UID, имя пакета и/или набор разрешений
Таким образом, можно вызвать
Что тут сказать, аплодирую стоя 👍👍
#android #binder #contentProvider #oversecured
Продолжая рубрику "советы для bugbounty", теперь про способ обхода ограничений для
ContentProvider.openFile()
.Вот ссылка на оригинальный пост, но для тех, у кого Твиттер закрыт и нет VPN немного пояснений и описаний.
Суть в том, что использую небольшой трюк можно получить приватную информацию через контент провайдер, если вызвать его не напрямую, а
Атака возможна, если:
1. Контент-провайдер экспортируется
2. Внутри он проверяет вызывающий UID, имя пакета и/или набор разрешений
Таким образом, можно вызвать
ContentProvider.openFile()
через IActivityManager.openContentUri()
. Он проверит права доступа, но затем проксирует вызов из своего контекста, а именно к Binder.getCallingUid() == 1000
, и, так как это UID системы, то ей по умолчанию предоставлены все права.Что тут сказать, аплодирую стоя 👍👍
#android #binder #contentProvider #oversecured
X (formerly Twitter)
Sergey Toshin 🇺🇦 (@_bagipro) on X
Bypassing ContentProvider.openFile() internal security checks in Android
[1/3]
I've discovered an interesting trick that you may use to access private information using a content provider
[1/3]
I've discovered an interesting trick that you may use to access private information using a content provider