Как указывают исследователи, SLUBStick использует уязвимости кучи (термин программирования), такие как двойное освобождение памяти (double-free), использование выделенной области памяти после ее освобождения (use-ater-free), запись в области за пределами выделенной памяти (out-of-bounds write) для манипуляций процессом выделения памяти.
Побочный канал для повышения эффективности
Ядро Linux выделяет под разные типы структуры данных фрагменты памяти, которые именуются Slabs (плиты). Каждый Slab – это объем памяти, занятый под различные структуры ядра небольшого объема, для которых нет смысла выделять по целой странице памяти.
В процессе распределения памяти время от времени возникают уязвимости, позволяющие злоумышленниками нарушать целостность структур данных или манипулировать ими; такие атаки называют межкэшевыми (cross-cache). Обычно их эффективность не превышает 40%, плюс рано или поздно они вызывают отказ системы.
Атака SLUBStick, однако, использует временной побочный канал – для определения точного момента, когда осуществляется выделение и очистка объема памяти, что позволяет злоумышленнику предсказывать и контролировать повторное использование памяти. И это повышает успешность атаки до 99%.
Конверсия уязвимости кучи в уязвимость произвольных чтения-записи памяти происходит следующим образом: после освобождения выделенных фрагментов памяти – дождаться их повторного использования ядром; контролируемо перераспределить эти фрагменты, убедившись, что они используются для критических структур данных, таких как страничных таблиц; перезаписать данные в этих таблицах, что открывает возможность считывать произвольные области памяти и записывать в них данные.
«Реализация этой атаки требует локального доступа, возможности запускать на ней код и наличия неисправленной уязвимости ядра, – отмечает Михаил Зайцев, эксперт по информационной безопасности компании SEQ. – То есть, практическая осуществимость этой атаки довольно низка, хотя и далека от невозможности. В любом случае, уязвимости ядра пользователям Linux необходимо отслеживать пристально и устранять как можно оперативнее». Как пишут исследователи атаки, при худших вариантах SLUBStick позволяет повышать привилегии в системе вплоть до максимальных (что по факту означает полный контроль над устройством), обходить средства защиты ядра, выходить за пределы контейнеров и использовать что-либо из этого в рамках более комплексной атаки по цепочке поставок.
Кроме того, SLUBStick позволяет модифицировать структуры самого ядра для обеспечения постоянства присутствия и сокрытия потенциального вредоносного ПО от средств обнаружения.
Источник
Нет комментариев