Qué es un desbordamiento de búfer

Llamamos desbordamiento de búfer al error que se produce en el software cuando un programa en concreto no es capaz de hacerse con el mando de los datos copiados en un área de la memoria cuya función precisamente es la de almacenar datos. Al ocurrir esto, los datos sobrantes se copian en partes de la memoria adyacentes, lo cual ocasiona la sobre escritura del archivo original.

El fallo ocurre en el momento en que los datos grabados corrompen a otros datos en archivos de memoria a causa de una falta de validación en la entrada de los mismos. En las arquitecturas comunes de computadoras no existe separación entre las zonas de memoria dedicadas a datos y las dedicadas a programa, por lo que los bytes que desbordan el búfer podrían grabarse donde antes había instrucciones, lo que implicaría la posibilidad de alterar el flujo del programa, llevándole a realizar operaciones imprevistas por el programador original. Esto es lo que se conoce como una vulnerabilidad.

Una vulnerabilidad puede ser aprovechada por un usuario para influir en el funcionamiento del sistema. En algunos casos el resultado es la capacidad de conseguir cierto nivel de control saltándose las limitaciones de seguridad habituales. Si el programa con el error en cuestión tiene privilegios especiales constituye en un fallo grave de seguridad.

En la actualidad, los procesadores pueden marcar zonas de memoria protegida para que el problema sea menor, generando excepciones de memoria, pero conlleva una carga ya que hay que programar el software de cada programa para que actúe de dicho modo.

 

 

Sobre el artículo

Categorias: Computacion
Ultima modificación: 03/22/2013