Ну, Android, а ты OMA CP…

zebslpw7nmya8ufizmjdxqcowxo.jpeg
Недавно мы «порадовали» пользователей iPhone проблемами безопасности BLEee, но вряд ли мы сторонники какого-либо из фронтов в извечном споре Apple vs. Android, и готовы рассказать «отличную» новость про Android, если, конечно, в вашей душе есть место для злорадства.
Исследователи из Check Point Software Technologies обнаружили уязвимость, предположительно, в более чем 50% устройств на базе ОС Android в реализации механизма автонастройки для подключения к мобильному оператору по протоколу OMA CP (Open Mobile Alliance Client Provisioning), что позволяет злоумышленнику подменить как минимум следующие параметры устройства, осуществив атаку Man-in-the-middle с применением фишинга:


  • сервер сообщений MMS;
  • адрес прокси-сервера;
  • домашнюю страницу и закладки браузера;
  • адрес почтового сервера;
  • серверы синхронизации контактов и календаря.


Реализация OMA CP

OMA CP — это протокол управления устройством передачи данных спецификации OMA Device Management, разработанный в соответствии с мобильным стандартом Открытого Мобильного Альянса (Open Mobile Alliance), использующий XML-подобный SyncML (Synchronization Markup Language). Протокол OMA CP использует беспроводной протокол передачи данных WAP. Текущая версия OMA CP — 1.1 от 2009 года. При этом для обмена не требуется, чтобы в смартфоне присутствовала SIM-карта или было настроено подключение к Интернету.
Векторы атак используют процесс предоставления данных мобильному клиенту «по воздуху» (over-the-air (OTA) provisioning), с помощью которого мобильные операторы устанавливают необходимые настройки на устройства, подключающиеся к сотовой сети.
Стандарт предоставляет ряд мер по аутентификации CP-сообщений от оператора мобильных услуг, но не все вендоры их реализуют. При этом и сами меры не отличаются надежностью.
В рамках Android данный протокол реализуется omacp.apk.
Если верить исследованию, базовая ОС Android не использует защитные механизмы OMA CP, при этом большинство вендоров решают этот вопрос самостоятельно с помощью аутентификации OTA. Поэтому, если любишь перепрошивать свой девайс стоковым Android, то сейчас есть повод задуматься.


Условия и реализация атаки

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


NETWPIN-аутентификация

За редким исключением (рассмотрено ниже про Samsung) сообщения от оператора аутентифицируются, предоставив девайсу его же IMSI (Mobile Subscriber Identity, уникальный 64-битный идентификатор устройства, аналогичный IP-адресу в «этих ваших интернетах»). Насколько сложно «достать» IMSI — вопрос отдельный, но есть как минимум следующие способы:


  • вредоносное приложение на устройстве (при этом достаточно разрешения в манифесте permission.READ_PHONE_STATE);
  • посмотреть SIM-карту жертвы;
  • использование ISMI-catcher, имитирующих мобильные вышки, что потребует определенных вложений, но вполне возможно.
    При получении CP-сообщения пользователю не предоставляется какая-либо информация об отправителе, и решение о легитимности решается сугубо жертвой.


USERPIN-аутентификация

Даже если у злоумышленника отсутствует ISMI, то можно осуществить следующий вектор атаки:


  • отправка сообщения от имени оператора с запросом о применении настроек;
  • автоматический запрос у пользователя PIN-кода системой;
  • отправка CP-сообщения с настройками, защищенного PIN-кодом, указанным пользователем.


Особо отличившийся

Если большинство уязвимых смартфонов использует слабые механизмы аутентификации OMA SMS, то в некоторых устройствах Samsung эта защита не была реализована в принципе на момент исследования (март 2019 г.). Злоумышленник мог просто отправить сообщение с запросом на настройку смартфона и при условии, что пользователь согласится с установкой, задаваемые в CP-сообщении параметры были бы применены. На данный момент Samsung выпустила обновление безопасности для исправления SVE-2019–14073. Так что, если ты не любитель обновлений от вендора или фанат кастомных Android-прошивок, то лучше озаботиться данной проблемой.
Что интересно, у Samsung это уже не первый случай подобного отношения к безопасности OMA CP:
utvlhk2u46cgblqs39pf4tqtbce.png


В Samsung Galaxy S4-S7 приложение omacp игнорирует разграничения безопасности, что ведет к применению незапрашиваемых WAP Push SMS сообщений, в результате чего происходит неавторизованное изменение настроек в рамках набора уязвимостей SVE-2016–6542.


Противодействие


  • Самый брутальный способ: отключение приложения omacp. Но тогда «шторка» твоего Android может лишиться части уведомлений, которые для тебя могут быть критичны.
  • Если не используешь Samsung и стоковый Android (или вдруг устройство неизвестного однодневного китайского бренда), то в принципе достаточно будет разумного использования головы, потому что векторы атак предполагают твое непосредственное участие.
  • Так как по сути это MitM-атака, то большинство вопросов «точечно» (на уровне критичных приложений) решается использованием certificate pinning, хотя на практике многие бизнес-приложения пренебрегают данным способом.


Как дела у Apple? и философский вопрос

К счастью для злорадного (нет, это не ты) Apple-пользователя, в данных устройствах используется механизм Apple iOS profiles с использованием сертификатов. Почему похожая система защиты не используется в Android-устройствах? Вопрос более чем интересный.

© Habrahabr.ru