Новая кросс-кэш-атака на ядро Linux под названием SLUBStick с 99-процентным успехом конвертирует уязвимость ограниченной кучи в возможность чтения и записи произвольной памяти, позволяя исследователям повысить привилегии или избежать контейнеров.
Открытие принадлежит группе исследователей из Грацкого технологического университета, которые продемонстрировали атаку на ядре Linux версий 5.9 и 6.2 (последняя версия), используя девять существующих CVE как в 32-битных, так и в 64-битных системах, что свидетельствует о высокой универсальности.
Кроме того, атака работала со всеми современными средствами защиты ядра, такими как Supervisor Mode Execution Prevention (SMEP), Supervisor Mode Access Prevention (SMAP) и Kernel Address Space Layout Randomization (KASLR).
SLUBStick будет подробно представлен на предстоящей конференции Usenix Security Symposium в конце этого месяца. Исследователи продемонстрируют повышение привилегий и выход из контейнеров в новейшей версии Linux с включенными современными средствами защиты.
Пока же в опубликованном техническом документе содержатся все подробности об атаке и потенциальных сценариях эксплуатации.
Подробности SLUBStick
Одним из способов эффективного и безопасного управления памятью в ядре Linux является выделение и удаление кусков памяти, называемых "slabs", для различных типов структур данных.
Недостатки в этом процессе управления памятью могут позволить злоумышленникам повреждать структуры данных или манипулировать ими, что называется кросс-кэш атаками. Однако они эффективны примерно в 40% случаев и, как правило, рано или поздно приводят к краху системы.
SLUBStick использует уязвимость кучи, такую как double-free, user-after-free или out-of-bounds write, для манипулирования процессом выделения памяти.

Далее он использует побочный канал синхронизации для определения точного момента выделения/деаллокации фрагментов памяти, что позволяет злоумышленнику предсказывать и контролировать повторное использование памяти.
Использование этой временной информации повышает успешность эксплуатации кросс-обмена до 99 %, что делает SLUBStick очень практичным.

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

Последствия в реальном мире
Как и большинство атак с использованием побочного канала, SLUBStick требует локального доступа на целевой машине с возможностью выполнения кода. Кроме того, атака требует наличия уязвимости кучи в ядре Linux, которая затем будет использована для получения доступа к памяти на чтение и запись.
Несмотря на то что атака может показаться непрактичной, она дает злоумышленникам некоторые преимущества.
Даже для злоумышленников с возможностями выполнения кода SLUBStick дает возможность добиться повышения привилегий, обойти защиту ядра, выполнить выход из контейнера или использовать его как часть сложной цепочки атак.
Повышение привилегий может быть использовано для повышения привилегий до root, что позволяет выполнять неограниченные операции, а выход из контейнера - для выхода из "песочницы" и доступа к хост-системе.
Кроме того, на этапе после эксплойта SLUBStick может модифицировать структуры ядра или крючки для поддержания постоянства, что затрудняет обнаружение вредоносной программы защитниками.

Те, кто хочет глубже изучить SLUBStick и поэкспериментировать с эксплойтами, использованными исследователями из Университета Граца, могут найти их в репозитории GitHub исследователя.
Понравилась новость? Тогда не забудь оставить свой комментарий.
А так же, добавь наш сайт в закладки (нажми Ctrl+D), не теряй нас.
Комментарии