¿Cómo evita la sobrescritura la dirección de retorno de la cookie de pila [duplicado]

2
  La opción del compilador

/ GS desarrollada por Micorsoft agregó una cookie adicional antes   la dirección de retorno y antes de devolver la cookie se comprueba, si es   está intacto, entonces la dirección de retorno es segura

¿Por qué se mantendría esta suposición? Según tengo entendido, esto hace que la vida de los hackers sea un poco más difícil de mantener ahora intacta la cookie.

    
pregunta zinking 19.12.2013 - 15:32
fuente

2 respuestas

5

La cookie de pila (también conocida como "canary") no evita que la dirección de retorno se sobrescriba, pero aumenta las posibilidades de que el código advierta que la sobrescritura antes sigue la dirección de retorno sobrescrita.

Esto es heurístico: la idea es que la mayoría de los desbordamientos de búfer que terminan sobrescribiendo la dirección de retorno proceden secuencialmente de un búfer de pila, uno al "otro lado" de la ranura de cookies, por lo que también también sobrescribir la cookie. "Mantener la cookie intacta" requiere que el atacante pueda, de alguna manera, hacer un "desbordamiento saltante" (sucede, pero rara vez) o puede obtener el valor de la cookie para que pueda sobrescribir el valor de la cookie. Obtener el valor de la cookie es difícil, ya que normalmente se elige aleatoriamente en el momento de la ejecución (los detalles varían según el sistema operativo y la versión del sistema operativo), y no se anuncian; en algunas situaciones raras, el atacante puede obtener el valor de la cookie indirectamente de las consecuencias de otra vulnerabilidad explotable.

En la práctica, la cookie de pila hace que la vida del atacante sea un poco más difícil, pero por un tiempo bastante grande. No es 100% efectivo, como mecanismo de defensa, pero tampoco está trivialmente trabajado.

    
respondido por el Tom Leek 19.12.2013 - 19:04
fuente
0

Un canario de pila protege la dirección de retorno en la pila al verificar primero el valor del canario antes de mover la dirección de retorno de la pila al EIP. Para sobrescribir la dirección de retorno en la pila con un desbordamiento de búfer basado en la pila, se debe sobrescribir el depósito. Si se sabe que la dirección de retorno en la pila se sobrescribió, entonces el programa puede salir de forma segura sin pasar el flujo de ejecución al atacante.

    
respondido por el rook 19.12.2013 - 18:36
fuente

Lea otras preguntas en las etiquetas