Desbordamiento de montículo

De Wikipedia, la enciclopedia libre
(Redirigido desde «Desbordamiento de monticulo»)

En informática, un desbordamiento de montículo (heap overflow/overrun) es un problema aritmético que hace referencia al exceso de flujo de datos sobre un montículo, esto permite un acceso no autorizado a la memoria por parte de un comando o de un programa o script denominado shellcode.

Un ejemplo de heap overflow[1]​ podría ser el siguiente: Supongamos que un programa tiene una función que acepta una cadena de caracteres y la copia en un búfer de memoria en el heap. Si el programador no verifica el tamaño de la cadena antes de copiarla en el búfer, un atacante podría enviar una cadena de caracteres que sea más grande que el tamaño del búfer, lo que provocaría que los caracteres adicionales se escriban en otras áreas de memoria adyacentes. Si estas áreas de memoria contienen información importante, el atacante podría alterarla y hacer que el programa se comporte de manera inesperada.

Para evitar un "heap overflow"[2]​, los programadores deben asegurarse de que sus programas estén diseñados para manejar correctamente el tamaño de los datos que reciben y asignan en el heap, utilizando técnicas como la validación de la entrada de usuario y el uso de funciones seguras de copia de memoria que verifican los límites de los búferes.

El método de detección más común de desbordamientos del montón es el análisis dinámico en línea. Este método observa la ejecución en tiempo de ejecución de los programas para identificar vulnerabilidades mediante la detección de violaciones de seguridad.[3]

Véase también[editar]

Referencias[editar]

  1. New Chrome 0-day Under Active Attacks – Update Your Browser Now, thehackernews
  2. Un bug en las antenas de telefonía podría permitir el control total sobre ellas, Adslzone
  3. USENIX Association, ed. (2005). Proceedings of the Second Workshop on Real, Large Distributed Systems: December 13, 2005, San Francisco, CA, USA. ISBN 978-1-931971-40-9.