¿Qué es un Desbordamiento de Búfer?

Un desbordamiento de búfer (Buffer Overflow en inglés) es un tipo de vulnerabilidad de seguridad en un software, donde un programa, al recibir más datos de los que puede manejar un búfer, provoca que los datos excedentes se desborden hacia regiones adyacentes de memoria. Los búferes son áreas de memoria designadas para contener datos, temporalmente, mientras son transferidos de un lugar a otro dentro de una aplicación o entre aplicaciones.

Un desbordamiento de búfer puede causar varios tipos de problemas en un sistema, desde cierres inesperados y comportamiento errático, hasta la ejecución de código malicioso, suministrado por un atacante, con los mismos privilegios que el programa que sufre el desbordamiento.

Ejemplos

Si un programa reserva espacio para almacenar 100 caracteres pero un usuario intenta introducir 200, los 100 caracteres extra podrían «desbordar» sobre el área de memoria adyacente, sobrescribiendo la data allí almacenada. Si un atacante hace esto de manera intencional y embebe comandos en esa data extra, podría conseguir la ejecución de dichos comandos en la máquina.

Un ejemplo reconocido de un desbordamiento de búfer es el fallo de seguridad en el software de servidor web Apache conocido como ApacheBleed, donde se puede provocar el envío de fragmentos de memoria que puedan contener información delicada como contraseñas.

Preguntas frecuentes

  • ¿Cómo prevenir ataques de Desbordamiento de Búfer? Para prevenir estos ataques, los desarrolladores deberían utilizar funciones que limiten la cantidad de datos que pueden ser almacenados en los búferes, verificación de límites, y programación en lenguajes modernos que manejan automáticamente la memoria.
  • ¿Hay ejemplos de problemas de Desbordamiento de Búfer? Un ejemplo sería el fallo de seguridad conocido como ApacheBleed en el software de servidor web Apache. Otro caso famoso es el del Gusano Morris, que explotó un desbordamiento de búfer en el comando fingerd del sistema operativo Unix.

Las últimas noticias en nuestro podcast semanal