Actualizado el 14-01-2007
versión para imprimir

¿que es un buffer overflow ?

A menudo leemos el término buffer overflow en artículos sobre seguridad en internet.
Los problemas de seguridad mas frecuentes (y graves) tienen que ver con buffer overflow descubierto en el programa tal o en el programa cual. En este artículo describiremos que es exactamente y por que es un riesgo para la seguridad de nuestros ordenadores.

En resumen buffer overflow o desbordamiento de buffer es un error de sistema causado por un defecto de programación, de tal forma que el programa que lo sufre pretende escribir mas información en el buffer (unidad de memoria) de la que este puede alojar.

Este desbordamiento es posible porque el autor del programa no incluyó el código necesario para comprobar el tamaño y capacidad del buffer en relacion con el volumen de datos que tiene que alojar.

Los problemas comienzan cuando el exceso de datos se escribe en otras posiciones de memoria, con la perdida de los datos anteriores.

Si entre los datos perdidos por la sobreescritura se encuentran rutinas o procedimientos necesarios para el funcionamiento del programa que estamos ejecutando, el programa dará error.
Cuando la memoria de un programa llega a sobreescribir en forma aleatoria, el programa generalmente se colgará.

¿Y esto que tiene que ver con la seguridad? El problema para la seguridad nace cuando este desbordamiento de buffer es provocado intencionalmente por alguien mediante envio de datos que incluyen porciones de código, calculando la cantidad de datos para poder predeterminar cual es el sobrante que se va a sobreescribir y donde. Provocado el desbordamiento, contienen una instrucción que apunta a una posición de memoria distinta, donde se encuentra el codigo ejecutable enviado por el atacante. El programa, inducido a funcionar anormalmente por la perdida de datos causada por el desbordamiento, ejecutará el código enviado por el atacante.

El buffer overflow es un problema de código defectuoso, por lo tanto como usuarios nada podemos hacer para evitarlo (salvo que ademas de usuarios seamos expertos programadores, y dispongamos del codigo fuente de la aplicacion que sufre el desbordamiento). En realidad el unico remedio es estar informado de los programas que sufren estos problemas, y tener el software actualizado.

This site powered by Phorum.