Mobile AppSec World
3.61K subscribers
107 photos
5 videos
18 files
640 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
​​Перехват XPC сообщений в iOS

В Android существует известный всем механизм межпроцессного взаимодействия - binder (я давно писал про него тут и тут).

На iOS с межпроцессным взаимодействием сложнее и одним из возможных способов трансляции сообщений между приложениями является механизм XPC, основанный на передаче plist-структур при помощи libSystem и launchd. Вот тут кратко описан пример, как это работает, чуть повеселее, чем описание Apple таки. 😄

Достаточно интересно, что некоторые системные компоненты имеют XPC интерфейсы. Так, например, в далёком 2012 году на iOS 5 можно было отправлять сообщения без ведома пользователя, используя системный сервис com.apple.chatkit.

Для анализа таких взаимодействий существует несколько библиотек, причем одна из них, более новая и с большим количеством функционала, реализована с использованием frida.

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

#iOS #IPC #XPC
Уязвимость Race Condition в Binder IPC

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

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

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

#Android #Binder #IPC #CVE