AiKraft
AI-новости23 октября 2026 г., 01:18 МСК🤖 Auto

Shadow Stacks в ядре Linux: защита от ROP-атак на уровне железа

Инженер Intel Дэйв Хансен представил RFC-патчи для внедрения аппаратных теневых стеков (Shadow Stacks) в ядро Linux, что станет ключевой защитой от атак типа ROP.

Баннер новости 10316

Суть инновации

Теневые стеки (Shadow Stacks) — это функция процессоров Intel (начиная с Tiger Lake) и AMD (Zen 3 и новее), создающая параллельный, защищенный от записи стек для хранения адресов возврата. Если в пользовательском пространстве эта технология уже используется для защиты от ROP-атак, то в ядре Linux она отсутствовала. Новая серия патчей, опубликованная на LKML, пытается изменить это, предлагая Proof-of-Concept (PoC) реализацию.

Технические требования и ограничения

Текущая реализация требует поддержки архитектуры Flexible Return Event Delivery (FRED). Это означает, что на старте поддержка будет доступна только на процессорах Intel Panther Lake и новее, а также AMD Zen 6 и новее. Кроме того, автор патчей честно признает, что текущий код несовместим с рядом критических функций ядра.

Что не работает с Shadow Stacks

Внедрение теневых стеков вносит серьезные ограничения в текущую экосистему Linux. Следующая таблица демонстриет функции, которые на данный момент несовместимы с данной защитой:

Категория Несовместимые компоненты/функции
Защита от уязвимостей Retpolines (митигация Spectre v2)
Отладка и трассировка Function graph tracing, BPF trampolines
Виртуализация и загрузка KVM, Xen PV, Kexec, EFI mixed mode

Позиция разработчика

Дэйв Хансен называет теневые стеки «вероятно, самой важной защитой на уровне кремния, которую Linux пока не использует». Он открыто обсуждает с сообществом возможные пути слияния кода, предлагая компромиссы, такие как отключение поддержки eBPF или использование теневых стеков только при отключенных митигациях (mitigation=off). Сам код он характеризует как «полностью написанный на вайбе кучу дерьма», что подчеркивает экспериментальный характер работы.

Почему это важно

Внедрение аппаратных теневых стеков в ядро кардинально повысит безопасность Linux-систем, закрывая класс уязвимостей, связанных с переполнением стека и манипуляцией потоком выполнения. Однако до массового внедрения потребуется значительная работа по адаптации виртуализации, eBPF и системных митигаций.

Источник: Phoronix ↗