Эксперты Грацского технологического университета рассказали об атаке SLUBStick — новой технике эксплуатации ядра Linux, которая помогает сделать связанные с хипом уязвимости более опасными.
Исследователи пишут, что кросс-кеш атака на ядро Linux в 99% случаев позволяет преобразовать ограниченную хипом уязвимость в возможность чтения и записи произвольной памяти, что позволяет повысить привилегии или осуществить побег из контейнеров.
Эксперты продемонстрировали SLUBStick на примере ядра Linux версий 5.9 и 6.2, используя девять CVE как в 32-битных, так и в 64-битных системах, обнаруженных в период с 2021 по 2023 год.
Особенно отмечается, что атака сработала невзирая на все современные средства защиты ядра, включая Supervisor Mode Execution Prevention (SMEP), Supervisor Mode Access Prevention (SMAP) и Kernel Address Space Layout Randomization (KASLR).
Детали SLUBStick будет подробно изложены на предстоящей конференции Usenix Security Symposium в конце августа. Пока же исследователи продемонстрируют повышение привилегий и выход из контейнеров в Linux с включенными средствами защиты. Кроме того, в опубликованном докладе содержатся подробности об атаке и возможных сценариях ее использования, а на GitHub уже выложены эксплоиты, использованные исследователями.
Так, одним из способов эффективного и безопасного управления памятью в ядре Linux является выделение и освобождение участков памяти, называемых «slab», для различных структур данных. Недостатки в этом процессе управления памятью могут позволить повреждать структуры данных или манипулировать ими, что называется кросс-кеш атаками. Однако обычно такие атаки эффективны примерно в 40% случаев и, как правило, рано или поздно приводят к «падению» системы.
Атака SLUBStick эксплуатирует уязвимость в хипе, например, типа double-free, user-after-free или out-of-bounds записи, для манипулирования процессом выделения памяти. Затем она использует timing-атаку по сторонним каналам для определения точного момента выделения/освобождения, что позволяет предсказывать и контролировать повторное использование памяти, повышая эффективность атаки до 99%.
Преобразование проблем хипа в чтение и запись произвольной памяти происходит в три этапа:
- освобождение определенных участков памяти и ожидание повторного использования ядром;
- перераспределение этих участков контролируемым образом, чтобы гарантировать, что они будут использованы для критических структур данных, например, таблиц страниц (page table);
- после восстановления атакующий получает возможность перезаписывать данные в таблицах страниц, получая возможность читать и записывать любые участки памяти.
Отмечается, что, как и большинство других side-channel атак, SLUBStick требует локального доступа на целевой машине с возможностью выполнения кода. Кроме того, атака требует наличия уязвимости хипа в ядре Linux, чтобы затем использовать эту проблему для получения доступа к памяти на чтение и запись.
То есть злоумышленники, которые уже обладают возможностями выполнения кода, смогут применять SLUBStick для повышения привилегий, обхода защитных механизмов ядра, побега из контейнера и в целом использовать атаку в составе сложных цепочек атак.