Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 1028

Теневой стек

Что такое Теневой стек?

Теневой стекТеневой стек — отдельный защищённый стек с копиями адресов возврата, позволяющий процессору обнаруживать порчу основного стека и блокировать ROP-атаки.


Теневой стек работает параллельно обычному стеку вызовов: каждый вызов помещает адрес возврата в оба стека, а возврат сравнивает их. Расхождение приводит к ловушке процессора и завершению процесса до использования испорченного адреса. Технику популяризировали академические работы по CFI, а в аппаратуре её реализуют Intel CET shadow stack и Arm v8.5-A Guarded Control Stack (GCS). Существуют программные реализации (LLVM SafeStack, clang -fsanitize=safe-stack) с потерями производительности и изоляции. Теневой стек защищает обратное ребро CFI; непрямые вызовы по-прежнему требуют CFI/IBT.

Примеры

  1. 01

    Windows 11 включает пользовательские теневые стеки на процессорах с CET.

  2. 02

    Arm GCS обнаруживает переполнение стека, перезаписывающее сохранённый LR.

Частые вопросы

Что такое Теневой стек?

Теневой стек — отдельный защищённый стек с копиями адресов возврата, позволяющий процессору обнаруживать порчу основного стека и блокировать ROP-атаки. Относится к категории Безопасность приложений в кибербезопасности.

Что означает Теневой стек?

Теневой стек — отдельный защищённый стек с копиями адресов возврата, позволяющий процессору обнаруживать порчу основного стека и блокировать ROP-атаки.

Как работает Теневой стек?

Теневой стек работает параллельно обычному стеку вызовов: каждый вызов помещает адрес возврата в оба стека, а возврат сравнивает их. Расхождение приводит к ловушке процессора и завершению процесса до использования испорченного адреса. Технику популяризировали академические работы по CFI, а в аппаратуре её реализуют Intel CET shadow stack и Arm v8.5-A Guarded Control Stack (GCS). Существуют программные реализации (LLVM SafeStack, clang -fsanitize=safe-stack) с потерями производительности и изоляции. Теневой стек защищает обратное ребро CFI; непрямые вызовы по-прежнему требуют CFI/IBT.

Как защититься от Теневой стек?

Защита от Теневой стек обычно сочетает технические меры и операционные практики, как описано в определении выше.

Какие есть другие названия Теневой стек?

Распространённые альтернативные названия: Стек возвратов, Safe stack, GCS.

Связанные термины