Shadow stack
¿Qué es Shadow stack?
Shadow stackUna shadow stack es una pila protegida y separada que guarda copias de las direcciones de retorno para detectar manipulaciones de la pila normal y bloquear ataques ROP.
Una shadow stack corre en paralelo con la pila de llamadas convencional: cada llamada apila la direccion de retorno en ambas pilas y cada retorno las compara. Si difieren, la CPU genera una excepcion y el proceso aborta antes de usar la direccion corrupta. El mecanismo se popularizo en articulos academicos de CFI y hoy esta disponible en hardware como Intel CET shadow stack y Arm v8.5-A Guarded Control Stack (GCS). Existen versiones puramente software (LLVM SafeStack, clang -fsanitize=safe-stack) con costes en rendimiento y aislamiento. La shadow stack cubre la arista hacia atras de CFI; las llamadas indirectas siguen necesitando CFI/IBT.
● Ejemplos
- 01
Windows 11 fuerza shadow stacks en modo usuario en CPUs compatibles con CET.
- 02
Arm GCS detecta un desborde que sobrescribe el LR guardado.
● Preguntas frecuentes
¿Qué es Shadow stack?
Una shadow stack es una pila protegida y separada que guarda copias de las direcciones de retorno para detectar manipulaciones de la pila normal y bloquear ataques ROP. Pertenece a la categoría de Seguridad de aplicaciones en ciberseguridad.
¿Qué significa Shadow stack?
Una shadow stack es una pila protegida y separada que guarda copias de las direcciones de retorno para detectar manipulaciones de la pila normal y bloquear ataques ROP.
¿Cómo defenderse de Shadow stack?
Las defensas contra Shadow stack combinan habitualmente controles técnicos y prácticas operativas, como se detalla en la definición.
¿Cuáles son otros nombres para Shadow stack?
Nombres alternativos comunes: Pila sombra, Safe stack, GCS.