Explotación de la memoria dinámica

Heap Exploitation

Heap Exploitation

De manra muy simple, la memoria dinámica es aquella que se maneja en tiempo de ejecución. A esta sección de la memoria se le conoce como Heap. Al igual que la pila (Stack), el Heap también puede ser abusado para ganar control sobre la ejecución de un proceso, y a esto se le conoce como Heap Exploitation.

La forma de explotar el Heap es muy distinta a la de explotar la pila, y algo más complicada. Además, con las protecciones ofrecidas por los sistemas operativos modernos para proteger la ejecución de código en el segmento de memoria destinado a la pila, la explotación del Heap es prácticamente nuestra única técnica de explotación de la memoria.

Para aprender más sobre este tipo de técnicas, sólo tienes que preguntar al sabio, pero aquí os dejamos una referencia a un libro (Gitbook) que se acaba de publicar, de hecho, no está terminado aún, pero contiene bastante información:

Heap Exploitation

Dicho libro está dividido en 3 secciones: la primera nos enseña cómo la librería glibc maneja la memora, se centra en el uso de las funciones raciones malloc y free. En la segunda, da un repaso a las técnicas más conocidas de la explotación de la memoria dinámica, y la tercera nos da algunos consejos de programación segura, para que nuestro código esté a prueba de este tipo de ataques.