¿Qué es la pulverización en pilas?
La pulverización en montón es una técnica de pirateo utilizada para explotar vulnerabilidades en software de computadora. Actúa para obtener control sobre un programa aprovechando una parte de su memoria. Una vez que una parte de la memoria está controlada por el código de piratería, el pirata informático puede tomar el control de la ejecución del código mediante la implementación de un desbordamiento de búfer en el área de almacenamiento dinámico de la memoria. La aplicación más común para la pulverización de montón es hackear navegadores web como Internet Explorer®.
Un "montón" es un bloque dinámico de memoria que la computadora asigna a un programa en particular, llamado así porque la computadora dedica una pila virtual de memoria al programa. Esto puede considerarse como espacio de almacenamiento en un armario o escritorio. Este montón de memoria pertenece al programa hasta que el software o el código de recopilación del sistema operativo lo libera. El código de recopilación es simplemente un dispositivo a prueba de fallas que recupera la memoria si el programa falla o si el software mismo no libera la memoria después de que finaliza su uso.
En la pulverización de montón, un hacker intenta "rociar" el montón de memoria con una parte específica de código. El objetivo es colocar el código en una posición específica dentro del montón de memoria del programa, como encajar una palanca en el borde de un marco de puerta para proporcionar palanca para forzar la puerta abierta. Después de que la información se incrusta en el montón de memoria a través de la pulverización de calor, el pirata informático puede desbordar el montón o el búfer de memoria completo, generando errores dentro del sistema. Una vez que ocurren los errores, el hacker puede aprovecharlos para ejecutar su propio código en el sistema.
La pulverización de montón funciona debido a la asignación dinámica de memoria en el sistema. El programa de computadora esencialmente "posee" toda la porción de memoria por el momento, por lo que el pirata informático ya conoce la ubicación relativa dentro de la memoria que la computadora ha asignado al programa. Por lo tanto, el hacker necesita poca especificidad para meter su código en las grietas; puede rociar el código a ciegas, sabiendo que el bloque de memoria siempre estará allí mientras el programa continúe ejecutándose. Esto podría compararse con tratar de abrir una cerradura con los ojos vendados; la tarea se vuelve casi imposible si la cerradura se está moviendo, pero mientras permanezca en una ubicación fija, al igual que el montón de memoria en el sistema, el trabajo se hace posible.