¿Cómo proteger el Shadow Stack?

1

Descubrí que se utilizan muchos mecanismos de protección en la seguridad de las computadoras para garantizar la integridad del flujo de control, uno de estos mecanismos es la pila Shadow:

El principal es muy fácil, ya que garantiza la integridad de la dirección de retorno de las funciones. De hecho, la dirección de retorno ubicada en la pila se compara con la que se empuja en la pila de sombra.

Hay varias implementaciones de la pila Shadow, una de ellas consiste en modificando la función de epílogo y prólogo (para hacer que escriba en la pila de sombras y cargue desde ella para la comprobación).

La pregunta es: si las funciones en el espacio de usuario pueden escribir en la pila de la sombra, ¿cómo podemos evitar que el atacante escriba / modifique la pila de la sombra?

    
pregunta Ahmed 03.05.2018 - 10:15
fuente

2 respuestas

1

No se puede proteger completamente, pero ese no es el propósito de la pila de sombras. La sombra de la pila evita la modificación de la pila por un desbordamiento de búfer en la variable local (variable en la pila), no por código arbitrario. Si el atacante ya puede ejecutar código arbitrario, se acabó el juego.

    
respondido por el Peter Harmann 03.05.2018 - 12:02
fuente
1

La protección de la pila sombra es bastante costosa, la protección podría estar en el nivel de hardware. Para responder a su pregunta, puede encontrar más información sobre la protección del Shadow Stack. aquí:

enlace

T. H. Dang, P. Maniatis y D. Wagner. El desempeño Coste de las pilas de sombras y apilar canarios. En el 10º Simposio ACM Información, Seguridad Informática y Comunicaciones, ASIACCS, 2015.

enlace

M. Pagador, A. Barresi, y T. R. Gross. Control de grano fino Integridad del flujo a través del endurecimiento binario. En 12ª conferencia Sobre Detección de Intrusiones y Malware y Vulnerabilidad. Evaluación, DIMVA, 2015.

    
respondido por el Soufiane Tahiri 03.05.2018 - 18:16
fuente

Lea otras preguntas en las etiquetas