¿Qué es la fumigación en pilas?

La fumigación de pilas es una técnica de piratería utilizada para explotar las vulnerabilidades en el software informático. Actúa para controlar un programa aprovechando una parte de su memoria. Una vez que el código de piratería controla una parte de la memoria, 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 fumigación en pilas es piratear 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 se puede considerar como un 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 colección del sistema operativo lo libera. El código de colección es simplemente un dispositivo a prueba de fallas que recupera memoria si el programa falla o el software en sí no libera la memoria después de que termina su uso.

Al rociar el montón, un pirata informático intenta «rociar» el montón de memoria con una parte específica del código. El objetivo es colocar el código en una posición específica dentro del montón de memoria del programa, como colocar una palanca en el borde del marco de una puerta para proporcionar palanca para forzar la apertura de la puerta. Después de que la información se inserta 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 todo el búfer de memoria, 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 en pilas funciona debido a la asignación dinámica de memoria en el sistema. El programa de computadora esencialmente «posee» toda la parte de la memoria por el momento, por lo que el hacker 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 encajar 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 un candado 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 vuelve posible.