Уязвимость в KernelSU демонстрирует критическую угрозу для рутированных устройств Android

vulnerability

Глубокий доступ к ядру Android через популярные фреймворки рутирования, такие как KernelSU, APatch и SKRoot, открывает беспрецедентные возможности для злоумышленников. Исследователи кибербезопасности из zLabs компании Zimperium выявили критическую уязвимость в KernelSU, позволяющую полный захват контроля над устройством при эксплуатации всего одной слабости. Эта находка подчеркивает системные риски, присущие инструментам, модифицирующим ядро операционной системы.

Технология и уязвимость

Frameworks для получения привилегий root, включая KernelSU, APatch и SKRoot, используют сложные методы патчинга ядра Linux. Они внедряются в системные вызовы, такие как "prctl", создавая скрытые каналы связи между пользовательскими приложениями-менеджерами и пространством ядра. Это позволяет выполнять операции, запрещенные стандартной политикой безопасности Android, включая модификацию политик SELinux и предоставление прав суперпользователя (root). Однако, как показал анализ Zimperium, именно эта глубокая интеграция формирует серьезную поверхность для атак.

Аутентификация менеджера KernelSU

В середине 2023 года специалисты zLabs обнаружили опасную уязвимость в KernelSU версии 0.5.7. Проблема заключалась в механизме аутентификации менеджера, который отвечает за предоставление root-прав другим приложениям. В отличие от APatch и SKRoot, полагающихся на уязвимые к брутфорсу пользовательские пароли, KernelSU использует проверку подлинности на основе UID (идентификатора пользователя), имени пакета и криптографической подписи APK-файла. Этот метод считается более надежным, но его реализация содержала фатальный изъян.

Уязвимость активировалась при выполнении команды "CMD_BECOME_MANAGER" через системный вызов "prctl(0xDEADBEEF, CMD_BECOME_MANAGER, data_path)". Ядро проверяло путь к APK менеджера ("/data/app/*/base.apk"), сканируя таблицу файловых дескрипторов (fd) процесса в поисках первого подходящего файла для верификации его цифровой подписи. Последовательный характер этого сканирования создавал состояние гонки (race condition).

Механика атаки

Злоумышленник мог создать вредоносное приложение (например, "com.attacker.manager"), включающее в себя легитимный APK-файл KernelSU в свою директорию "lib". Эксплуатация заключалась в манипулировании порядком файловых дескрипторов процесса. Атакующее приложение, запускаясь, могло закрыть стандартный дескриптор ввода (stdin, fd 0) и открыть заранее подготовленный легитимный APK KernelSU, хранящийся внутри себя. Это приводило к тому, что ядро при проверке первым обнаруживало дескриптор валидного APK с корректной подписью разработчика KernelSU.

Следующим шагом приложение вызывало "prctl" с командой "CMD_BECOME_MANAGER", указывая путь к своим данным. Ядро, обнаружив "правильную" подпись в первом же подходящем дескрипторе, ошибочно авторизовывало вредоносное приложение как настоящий менеджер KernelSU. Это мгновенно предоставляло злоумышленнику полный контроль над устройством.

Получив статус менеджера, атакующий мог использовать команды вроде "CMD_GRANT_ROOT" для выполнения произвольного кода с правами root или "CMD_SET_SEPOLICY" для отключения механизмов безопасности SELinux. Работоспособность концепта была подтверждена исследователями с помощью proof-of-concept эксплойта. Ключевым условием успеха является запуск атаки до того, как официальный менеджер KernelSU успеет закэшировать свой UID, что делает перезагрузку устройства особенно опасным моментом - вредоносное приложение с разрешением "RECEIVE_BOOT_COMPLETED" получает приоритет.

Системные риски рутирования

Уязвимость в KernelSU - не единичный случай. По данным zLabs, практически все популярные фреймворки рутирования Android содержат серьезные недостатки безопасности. Анализ выявил повторяющиеся проблемы: ненадежные механизмы аутентификации, отсутствие санитизации пользовательского ввода и небезопасные способы взаимодействия между ядром и пользовательским пространством. Например, ранние версии APatch страдали от слабой защиты паролем, позволявшей несанкционированное повышение привилегий. В Magisk недавно обнаружена уязвимость (CVE-2024-48336), позволявшая приложениям выдавать себя за сервисы Google Mobile Services (GMS) для получения root-прав без ведома пользователя.

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

Эксперты Zimperium подчеркивают, что эволюция методов рутирования, хотя и расширяет возможности кастомизации, неизбежно увеличивает поверхность атаки. Уязвимость в KernelSU наглядно показывает: для полного контроля над рутированным устройством злоумышленникам зачастую достаточно найти и использовать всего одну ошибку в сложной цепи доверия между пользовательским приложением и ядром системы. Непрерывный мониторинг угроз и взвешенная оценка рисков остаются критически важными для всех, кто решается на рутирование своих Android-устройств.

Ссылки

Комментарии: 0