Уязвимость в модификациях ядра,сделанных Samsung для повышения безопасности Android

Уязвимость в модификациях ядра,сделанных Samsung для повышения безопасности Android

13.02.20
Исследователи безопасности из группы Zero, созданной компанией Google для предотвращения атак, совершаемых с использованием ранее неизвестных уязвимостей, выявили уязвимость в используемом компанией Samsung модифицированном варианте ядра Linux, применяемом в Android-прошивке смартфонов Galaxy A50. Проблема позволяет добиться перезаписи других данных в памяти и может использоваться для повышения своих привилегий и получения полного контроля за устройством.

1581546211163.png

Примечательно, что уязвимость вызвана ошибкой в подсистеме PROCA (Process Authenticator), разработанной Samsung для повышения защищённости платформы Android. PROCA обеспечивает отслеживание подлинности процессов и их соответствие изначально запущенным исполняемым файлам. Проверка осуществляется на основе цифровой подписи, хранящейся в расширенных атрибутах файла.

Из-за логической ошибки не исключена ситуация, когда аутентифицированный процесс завершился, а с тем же PID создан другой процесс, и PROCA посчитает этот процесс аутентифицированным. Более того, в случае несоответствия отслеживаемого и реального состояний процесса возможно возникновение состояния гонки (race condition), при котором создаются условия для перезаписи других структур в памяти (исходный буфер в ядре оказывается освобождённым и на его месте находятся уже другие данные).

Исследователи смогли подготовить прототип эксплоита, способного читать и записывать любые данные в памяти ядра. Несмотря на включение в ядре Samsung механизмов защиты от эксплуатации уязвимостей, таких как CONFIG_RKP_KDP, полученная возможность чтения и записи может быть использована для извлечения конфиденциальных данных из кэша ФС. Например, в прототипе эксполоита продемонстрировано определение содержимого БД учётных записей /data/system_ce/0/accounts_ce.db, включающей токены аутентификации.

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

OpenNet
 
Назад
Сверху Снизу