Desbordamiento de búfer
El desbordamiento de búfer es una vulnerabilidad de seguridad aprovechada por los ciberdelincuentes para realizar ataques contra todo tipo de software.
El búfer es una sección de la memoria RAM de nuestro dispositivo donde se almacenan datos de forma temporal. Es usada por todo tipo de software, desde aplicaciones a sistemas operativos, para realizar diferentes registros en ese espacio de almacenamiento. Un ejemplo de registro en el búfer podría ser una aplicación que, al introducir nuestras credenciales, almacena esa información en este espacio temporal para su posterior uso.
Cuando los datos a escribir en este búfer sobrepasan la cantidad estimada estamos hablando de un desbordamiento de búfer. En ese momento, el programa puede experimentar problemas de funcionamiento y ser susceptible a ser atacado a través de alguna vulnerabilidad. En esta situación, el programa afectado intentará escribir estos datos en un espacio no destinado para ello. Este comportamiento suele ocurrir debido a una mala programación del software o a un fallo en sus comunicaciones.
Un ataque que aproveche este desbordamiento de búfer suele estar programado para ejecutar un código malintencionado que envía una cantidad de datos mayor a la que pueda recibir el software. Este proceso generaría un bloqueo en la aplicación permitiendo, por ejemplo, la ejecución de un código que permitiese al atacante acceder al sistema.
El primer caso del que se tiene constancia de la explotación de esta vulnerabilidad data de 1988, la cual fue usada por el gusano Morris para propagarse por Internet. Y no fue hasta 1995 cuando se desarrolló un estudio dedicado al desbordamiento de búfer por parte de Thomas Lopatic para su prevención. Desde entonces multitud de malware, especialmente del tipo gusano, se han aprovechado de estas brechas de seguridad hasta nuestros días.
Los atacantes que usan este tipo de ataques suelen tener un conocimiento avanzado en la arquitectura del software debido a su complejidad, aunque existen vulnerabilidades comunes que son aprovechadas por ciberdelincuentes sin este tipo de conocimientos. Un atacante experto podría incluso escribir en el mismo búfer, permitiendo de ese modo abrir una consola de comandos y tomar el control del sistema.
Para evitar este tipo de ataques, es altamente recomendable utilizar aplicaciones que usen lenguajes de programación avanzado, realizar las actualizaciones recomendadas por el fabricante, las cuales suelen contener parches que solventan posibles brechas de seguridad y mantenerse al tanto de los diferentes boletines de alertas de seguridad que publican los desarrolladores de las aplicaciones informando de posibles vulnerabilidades.