Simmobilykit что это за программа

Эмуляция и перехват SIM-команд через SIM Toolkit на Android 5.1 и ниже (CVE-2015-3843)

Simmobilykit что это за программа. Смотреть фото Simmobilykit что это за программа. Смотреть картинку Simmobilykit что это за программа. Картинка про Simmobilykit что это за программа. Фото Simmobilykit что это за программа

Я обнаружил эту уязвимость, исследуя возможность перехвата одноразовых паролей, которые отправлялись банком поставщику телекоммуникационных услуг, а затем поступали на специальное приложение SIM-карты и выводились на пользовательский интерфейс Android.

Перехват

Представьте, что на SIM-карте есть небольшое приложение, которое получает сообщение от оператора связи и показывает его на экране вашего Android-устройства. Если покопаться в исходниках Android, можно наткнуться на класс com.android.internal.telephony.cat.CatService, который отвечает за передачу команд между слоем радиоинтерфейса (Radio Interface Layer, RIL) и ОС.

И, наконец, broadcastCatCmdIntent() :

А вот эта часть довольно занятная:

Как злоумышленник может этим воспользоваться?

Например, использовать вредоносное приложение, не требующее дополнительных привилегий, для перехвата команд, отправляемых SIM-картой на телефон. Для этого необходимо лишь зарегистрировать receiver с действием android.intent.action.stk.command и получить STK CMD из интента.

Пример перехваченной команды:

Simmobilykit что это за программа. Смотреть фото Simmobilykit что это за программа. Смотреть картинку Simmobilykit что это за программа. Картинка про Simmobilykit что это за программа. Фото Simmobilykit что это за программа

Это объект Parcelable в байтах. Преобразовав Hex в ASCII, вы получите сообщение SIM-карты.

Эмуляция

Однако это лишь половина уязвимости. Рассмотрим приложение, которое получает вот такое широковещательное сообщение:

Simmobilykit что это за программа. Смотреть фото Simmobilykit что это за программа. Смотреть картинку Simmobilykit что это за программа. Картинка про Simmobilykit что это за программа. Фото Simmobilykit что это за программа

Это приложение называется SIM Toolkit (STK) и является частью стандартного Android-фреймворка. Исходники можно найти тут.

1. SIM-карта запрашивает подтверждение некоторой операции, скажем, транзакции в интернет-банке, выводя на экран телефона сообщение типа «Подтвердить транзакцию № 1234 на сумму 100 500 рублей» с двумя опциями — «ОК» и «Отмена». Код на StkDialogActivity.java:

2. Если пользователь нажмет «ОК», будет вызвана команда sendResponse(StkAppService.RES_ID_CONFIRM, true) ; в противном случае — sendResponse(StkAppService.RES_ID_CONFIRM, false) ;.

3. Что, если при помощи действия android.intent.action.stk.command создать такое же диалоговое окно с другим текстом (поддельное) и вывести его на экран за несколько секунд до генерации SIM-картой оригинального сообщения («Подтвердить транзакцию № 1234 на сумму 100 500 рублей»)? В тексте сообщения напишем «Нажмите ОК для закрытия», а кнопки оставим те же — «ОК» и «Отмена».

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

5. Итак, мы остановились на следующем:

Здесь сообщается, что «Недопустимым является отклик, который не имеет соответствующей проактивной команды и отправка которого может “сбить с толку” baseband/ril». На деле, если RIL или SIM-карта будут получать от вас неожиданные отклики, последствия могут быть непредсказуемыми. В ходе моего исследования несколько SIM-карт вышло из строя, так и не загрузив меню.

Заключение

Команда AOSP устранила эту ошибку в обновлении Android 5.1.1 для Nexus-устройств (сборка LMY48I).

Вот некоторые из моих патчей:

Автор: Руководитель отдела безопасности мобильных приложений Positive Technologies (англоязычная версия материала)

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *