¿Qué es un Buffer Overflow?

Autor: | Última modificación: 21 de junio de 2022 | Tiempo de Lectura: 4 minutos
Temas en este post:

¿Te has preguntado qué es un buffer overflow, cómo funciona y qué consecuencias podría tener en un sistema informático? En este post te damos respuesta a todas estas dudas y te hablamos sobre este tipo de ciberataque y cómo protegerte de él.

¿Qué es una vulnerabilidad?

Todos los ataques provienen de explotar la vulnerabilidad de un sistema informático. Por eso, antes de ver qué es un buffer overflow, haremos un breve repaso sobre qué es una vulnerabilidad y qué es un exploit.

Las vulnerabilidades son aquellos fallos informáticos o bugs que comprometen la seguridad de un sistema. Un fallo de seguridad puede encontrarse a nivel de sistema operativo o aplicación o se puede deber a un error en la configuración. Casi todos los softwares presentan vulnerabilidades, por eso, un equipo de ciberseguridad debe encontrarlas antes de que lo haga un hacker malicioso, por medio de auditorías y programas de bug bounty.

¿Cómo encontrar una vulnerabilidad?

Existen diferentes formas de hallar un fallo de seguridad. Se pueden encontrar vulnerabilidades comunes públicas en internet o se puede hacer una auditoría de ciberseguridad para descubrir nuevas. Algunas herramientas para esto son:

CVE Details

Esta aplicación web permite encontrar vulnerabilidades comunes registradas en bases de datos, junto con indicadores acerca de cómo de grave es cada fallo de seguridad.

Penetration testing

Otra forma de encontrar vulnerabilidades es hacerle exámenes de penetración al sistema. En estos tests, un experto en ciberseguridad evalúa diferentes vectores de ataque para encontrar las debilidades del software o la red. El penetration testing o pentesting incluye el uso de diferentes herramientas para recolectar información, con la inteligencia de fuentes abiertas y el fingerprinting.

¿Qué es un exploit?

Cuando las debilidades de un sistema se identifican, el atacante deberá desarrollar o conseguir un exploit.

🔴 ¿Quieres entrar de lleno a la Ciberseguridad? 🔴

Descubre el Ciberseguridad Full Stack Bootcamp de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada

👉 Prueba gratis el Bootcamp en Ciberseguridad por una semana

Un exploit es un programa desarrollado específicamente para aprovecharse de una vulnerabilidad. Estos softwares funcionan como método de entrada al sistema y contienen el código malicioso que el hacker desea ejecutar.

Ahora, hablaremos sobre un gran ejemplo de lo que es un exploit. A continuación, te explicaremos qué es un buffer overflow.

¿Qué es un buffer overflow?

Un buffer overflow es un error de programación que sucede cuando se copian una cantidad de datos en un área de memoria que no es suficientemente grande para almacenarlos. Lo anterior causa un desbordamiento de buffer o buffer overrun, lo cual hace que los datos de entrada ocupen zonas de memoria adyacentes, donde el atacante podría ejecutar un código malicioso.

¿Qué consecuencias tiene un ataque de buffer overflow?

Un ataque de buffer overflow puede tener tres tipos de consecuencias:

  1. Denegación de servicio del software atacado, es decir, que pare de funcionar.
  2. Tomar control del EIP para ejecutar código arbitrario dentro del sistema.
  3. Tomar el control del EIP desde la cuenta de un usuario con privilegios.

Registros de CPU

Estos son los diferentes registros de CPU hacia los cuales se pueden dirigir el desbordamiento del buffer:

  • EIP: indica la siguiente dirección de memoria que el ordenador debería ejecutar.
  • EAX: almacena temporalmente cualquier dirección de retorno.
  • EBX: almacena datos y direcciones de memoria.
  • ESI: contiene la dirección de memoria de los datos de entrada.
  • ESP: se usa para referenciar el inicio de un hilo.
  • EBP: indica la dirección de memoria del final de un hilo.

¿Cómo se hace un buffer overflow?

Ya sabes qué es un buffer overflow, ahora, te contaremos cuáles serían los pasos para llevar uno a cabo:

  1. Primero, debes validar que exista el error en el sistema que deseas probar. Para ello, puedes buscar información sobre el fallo de seguridad en internet.
  2. Una vez encuentres si el fallo existe, debes determinar cuántos datos debes enviar para causar el desbordamiento de buffer.
  3. Ahora, una vez ocurra el buffer overflow, tendrás que comprobar dónde está ocurriendo la escritura en la memoria para determinar con qué privilegios ejecutarías el código malicioso.
  4. Después, tendrás que evaluar qué espacio de memoria hay disponible para el payload, es decir, el código ejecutable.
  5. Finalmente, se crea el exploit.

¿Cómo protegerse de un buffer overflow?

Después de ver qué es un buffer overflow, probablemente te preguntes cómo evitar que nos ocurran este tipo de ciberataques. Por eso, hablaremos de las diferentes formas para protegerse de un buffer overflow:

  1. Ten cuidado con lo que descargas en internet. Un exploit suele disfrazarse de un programa confiable. Sin embargo, una vez lo ejecutas podrías estar instalando la puerta de entrada a un virus. Un buffer overflow podría llevar a una ejecución remota de código malicioso. Es decir, el atacante podría tomar control total del ordenador de la víctima.
  2. Instala un antivirus que detecte este tipo de programas maliciosos. Sin embargo, ten en cuenta que los ciberataques están en constante desarrollo y cada vez se esforzarán más por saltarse este tipo de protecciones.

¿Cómo aprender más?

Ahora sabes qué es un buffer overflow, cómo se hace, qué consecuencias tiene y cómo protegerte de él. Si quieres seguir aprendiendo y especializarte en ciberseguridad, tenemos la opción ideal para ti. No dudes en acceder a nuestro Ciberseguridad Full Stack Bootcamp, con el que, a través de una combinación de teoría y práctica, te convertirás en un experto en esta rama del sector tecnológico en menos de 7 meses. ¿A qué estás esperando para alcanzar tus mestas? ¡Pide más información e inscríbete ya!

[email protected]

¿Sabías que hay más de 24.000 vacantes para especialistas en Ciberseguridad sin cubrir en España? 

En KeepCoding llevamos desde 2012 guiando personas como tú a áreas de alta empleabilidad y alto potencial de crecimiento en IT con formación de máxima calidad.

 

Porque creemos que un buen trabajo es fuente de libertad, independencia, crecimiento y eso ¡cambia historias de vida!


¡Da el primer paso!