¿Qué son las sobreescrituras no lineales / hacia atrás?

6

Leí algunas diapositivas de la conferencia Black Hat USA 2012 , y me topé con el término non-­linear/backward overwrite , mencionado en la diapositiva 5 de Aprovechar las mejoras de mitigación en Windows 8 por Ken Johnson y Matt Miller, Microsoft Security Engineering Center (MSEC) (PDF) presentación:

Atribución de imagen: Ken Johnson, Matt Miller, Centro de Ingeniería de Seguridad de Microsoft (MSEC)

De acuerdo con esta imagen, en Windows 7 todavía no hay mitigación para este tipo de sobrescritura.

¿Alguien tiene una pista de lo que es este non-­linear/backward overwrite y me puede dar información adicional sobre esta técnica de explotación?

    
pregunta user2252343 04.06.2013 - 23:04
fuente

1 respuesta

5

En primer lugar, una "sobrescritura lineal" es el tipo más común de desbordamiento de búfer. Este es el ejemplo dado en la diapositiva. Cuando comienza en alguna dirección base, escribe de forma lineal y, finalmente, sobrescribe la dirección de retorno:

void function(LPCSTR input){
    char buffer[256];
    strcpy(buffer, input);
}

Un ejemplo de una sobrescritura no lineal es este exploit de control de GroupWise ActiveX escrito por rGod . Este componente ActiveX tiene una llamada de método donde uno de los parámetros es una dirección de memoria, que permite a un atacante escribir en una ubicación arbitraria en la memoria. Si la dirección de retorno estaba protegida por un canario, el atacante podría simplemente apuntar directamente a la dirección de retorno y sobrescribirla sin corromper el canario. Los punteros colgantes también pueden producir una condición en la que el atacante puede controlar una dirección específica para leer, escribir o ejecutar. Una moda no lineal.

    
respondido por el rook 05.06.2013 - 07:38
fuente

Lea otras preguntas en las etiquetas