Об истории обнаружения некоторых уязвимостей можно писать настоящие приключенческие романы, другие же выявляются случайно во время рутинного тестирования. Именно так произошло и на этот раз. В ходе работы над одним из мобильных приложений неожиданно выяснилось, что с помощью определенной последовательности действий можно установить на девайс с Android 6.0 программу, которую впоследствии невозможно будет удалить стандартным способом. Как это работает? Давай разберемся.

Ошибку в логике работы самой популярной на нашей планете мобильной операционной системы обнаружил исследователь из компании «Софт-Эксперты» Александр Свириденко. Эта ошибка позволяет при помощи нехитрых манипуляций установить на работающее под управлением Android 6.0 устройство программу, которую невозможно удалить штатными средствами ОС. А если таким приложением внезапно окажется троян, его не сумеет снести ни один антивирус.

Разумеется, о столь удивительной находке была тут же проинформирована корпорация Google. Вскоре исследователь получил официальный ответ от Android Security Team, который в целом сводился к следующему: разработчиков ОС интересуют в первую очередь уязвимости в актуальных версиях Android, для которых еще выпускаются обновления, в то время как Android 6.0 — система морально устаревшая. Поэтому парни в Google не считают обнаруженную ошибку критической и вообще не рассматривают ее как серьезный инцидент, тем более что в новых версиях Android она уже устранена.

То, что на руках у десятков тысяч пользователей все еще имеется целый зоопарк девайсов, работающих под управлением «шестерки» и потому подверженных уязвимости (что документально подтверждается статистикой, которую может получить практически каждый разработчик Android-приложений), никого не интересует.

После получения такого отклика в адрес «корпорации добра» было отослано второе письмо, содержащее более подробное описание выявленной ошибки, но ответа на это послание так и не последовало. Ну а поскольку с момента отправки в Google баг-репорта прошел ровно год, настало самое подходящее время рассказать о находках.

WARNING

Эта статья несет исключительно информационный характер, и почерпнутую в ней информацию следует использовать только для самообразования. Автор не несет ответственности за любые возможные последствия практического применения изложенных здесь сведений и категорически не рекомендует применять описанные в статье методы и приемы в каких-либо иных целях, кроме исследовательских.

 

Теоретические принципы

В составе Android имеется важное приложение settings.apk, которое отвечает за отображение экрана системных настроек. Одна из ключевых особенностей settings.apk заключается в том, что только это приложение имеет полномочия назначать другим программам или отзывать привилегии администратора.

В Google специально установили такое жесткое ограничение, чтобы исключить получение повышенных привилегий клиентским софтом в обход операционной системы. Однако подобный подход к обеспечению безопасности подразумевает наличие как минимум одного узкого места. Какого?

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

Чтобы деинсталлировать такое приложение, нужно сначала отобрать у него администраторские привилегии. Сделать это можно с использованием системного окна «Настройки», за которое отвечает settings.apk. Однако, если наш гипотетический вредонос будет всякий раз ронять этот компонент при попытке изменить его привилегии, лишить трояна «административного ресурса», а следовательно, и удалить его с устройства станет невозможно.

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

 

Практическая реализация уязвимости

Как любил говорить заслуженный артист России известный иллюзионист Амаяк Акопян, «чтобы фокус получился, нужно дунуть: если не дунуть, никакого чуда не произойдет». В нашем случае волшебное превращение системного приложения settings.apk в тыкву происходит на Android 6.0 в результате строго определенной последовательности действий, подробно описанной ниже.

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.


  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    2 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии