Исследователи из Check Point описали сценарий MitM-атаки через антивирусное приложение Guard Provider, предустановленное на смартфонах Xiaomi. Злоумышленник может взломать соединение, по которому обновляются базы сигнатур вредоносного ПО, и внедрить сторонний код на целевое устройство.

По данным аналитической компании IDC, смартфоны Xiaomi входят в пятерку самых популярных среди российских пользователей. В 2018 году производитель занял 14% рынка, поставив покупателям 4,2 млн устройств — на 600 тыс. меньше Apple.

Уязвимое приложение объединяет в себе антивирусные движки Avast, AVL и Tencent. Пользователь может выбрать один из них в качестве основного, и если тот окажется недоступен, последовательно включать остальные — например, при невозможности обновить базу сигнатур.

Эксперты нашли в Guard Provider несколько серьезных уязвимостей, которые совместно открывают взломщику полный доступ к смартфону. Главная проблема — это незащищенное HTTP-соединение, используемое для обновления баз антивирусных сканеров. Если злоумышленник находится в одной сети с жертвой, он сможет перехватить пересылаемые в ней данные, нейтрализовать антивирусную защиту и взломать устройство.

Как поясняют эксперты, если мобильное приложение объединяет несколько SDK (как Guard Provider — антивирусные движки), каждый из них может обращаться к закрытой информации «соседа». В отсутствие разграничений уровень безопасности пользователя определяет наименее защищенный SDK, поскольку компрометация одного пакета открывает доступ ко всем данным.

В случае Guard Provider слабым звеном оказался движок AVL, через который эксперты смогли скомпрометировать данные Avast. Атака работает, только если пользователь выбирает последний антивирус в качестве основного.

Сначала взломщик должен перехватить обращение Avast за очередной базой сигнатур — это возможно из-за уязвимости HTTP-соединения. На данном этапе злоумышленнику нужно узнать имя пакета с обновлением, чтобы позднее скомпрометировать его. После этого преступник блокирует дальнейшие запросы Avast к серверу, чтобы пользователь Guard Provider переключился на другой движок, к примеру, AVL.

Второй антивирус сразу обращается к своему конфигурационному файлу, где указан адрес для скачивания обновлений; данные хранятся в открытом виде, поэтому преступник может заменить URL. Загрузка скомпрометированного архива открывает взломщику путь к песочнице Guard Provider. Это происходит потому, что в AVL есть уязвимость path traversal (выход за пределы каталога) — она позволяет переходить в сторонние директории, используя существующий URL в качестве отправной точки.

Как отмечалось выше, все SDK работают в одной песочнице, поэтому файл AVL может отредактировать скачанную ранее базу обновлений Avast, наименование которой он узнал на первом этапе. Теперь ему остается разблокировать доступ первого антивируса к серверу, чтобы тот вновь стал основным и открыл скомпрометированный файл.

Стоит отметить, что Guard Provider повторно не сканирует содержимое песочницы на угрозы — предполагается, что проверка происходит при загрузке данных. Таким образом, преступник может поместить фактически любой зловредный код на смартфон без риска обнаружения.

Исследователи сообщили об уязвимости разработчикам Xiaomi, в настоящий момент брешь уже закрыта. Они подчеркивают, что подобные сценарии могут быть актуальны для любых приложений, объединяющих в себе несколько SDK.

В феврале специалисты взломали умные самокаты Xiaomi через незащищенное Bluetooth-подключение. Эксперты создали приложение для автоматического поиска уязвимых устройств и перехвата управления над ними.

Категории: Аналитика, Главное, Уязвимости