Vulnerabilidades, exploits y ataques por desbordamiento del búfer

Vulnerabilidades, exploits y ataques por desbordamiento del búfer

 

Desbordamiento de buffer con Vulnerability Manager Plus

¿Qué es el desbordamiento del búfer?

Los programas que componen todas las aplicaciones están formados por búferes. Los búferes son espacios temporales que se asignan en la memoria para contener datos, hasta que se mueven a otras partes del programa. Los bytes de datos que puede contener un búfer se especificarán inicialmente durante el desarrollo del código. Debido a la ausencia de cualquier tipo de mecanismo de comprobación de límites, si el tamaño de la entrada introducida supera el tamaño asignado a ese búfer, éste se desborda, sobrescribiendo así los datos almacenados en búferes adyacentes o en el propio programa. Esto se denomina desbordamiento del búfer y esta vulnerabilidad actúa como un blanco fácil para los atacantes a la caza de un exploit.

¿Por qué el desbordamiento del búfer es una vulnerabilidad?

El exceso de datos alimentados al programa durante un exploit de desbordamiento del búfer, podría incluso ser una pieza maliciosa de código destinada a tomar el control completo del sistema operativo, dañar archivos o robar datos, por lo que es una vulnerabilidad que viene con fuertes repercusiones. Incluso si los atacantes no pueden acceder a todo el sistema operativo, es muy posible que impidan la ejecución de programas o, peor aún, que provoquen una denegación del servicio.

Entre los diferentes tipos de vulnerabilidades que existen, las vulnerabilidades de desbordamiento del búfer son unas de las primeras en ser explotadas. Aunque los lenguajes de programación modernos incorporan diversas técnicas para eludir estos ataques, las tendencias de seguridad revelan que en los últimos 5 años se ha producido un repentino aumento del número de vulnerabilidades de este tipo. Esto apunta al hecho obvio de que a medida que las aplicaciones refuerzan la seguridad reduciendo las vulnerabilidades que contienen, los atacantes responden con nuevos métodos para llevar a cabo un ataque. Por lo tanto, como empresa, no puede confiar únicamente en que sus proveedores le proporcionen un software seguro e impecable, sino que es esencial que, en primer lugar, tenga instalada una solución adecuada de evaluación y gestión de vulnerabilidades. Vulnerability Manager Plus realiza un trabajo exhaustivo en este sentido, no sólo identificando dichas vulnerabilidades, sino también presentándole efectivamente los medios necesarios para abordarlas o mitigarlas.

W¿Cuáles son los tipos de desbordamientos de búfer?

  • SDesbordamiento del búfer basado en la memoria de la pila:

    La memoria de la pila es el espacio de la memoria que se utiliza para almacenar las entradas del usuario. Los ataques de desbordamiento del búfer basados en la memoria de la pila son los que se producen debido al aprovechamiento de estos espacios de memoria. La mayoría de los ataques que se producen están basados en la memoria de la pila. De hecho, el primer exploit de desbordamiento del búfer que se produjo en 1986 también pertenecía a este tipo. El ataque del gusano Morris, considerado popularmente como el primer gran ataque a la seguridad en Internet, es un testimonio del impacto que estos ataques pueden tener en el mundo de la TI.
  • Desbordamiento del búfer basado en la pila:

    Estos exploits son muy difíciles de realizar y, por lo tanto, ocurren con menos frecuencia en comparación con los exploits de desbordamiento del búfer basados en la memoria de la pila. El espacio de memoria guardado para el programa actual se considera la pila, y se ataca en un exploit basado en la pila.

Ejemplos de desbordamiento del búfer:

Veamos algunos escenarios sencillos en los que se ha explotado una vulnerabilidad de este tipo.

  • Consideremos un programa escrito para conceder al usuario acceso a un sistema. Se pedirá al usuario que introduzca la contraseña y, si ésta es correcta, se le concederá acceso al sistema. Supongamos ahora que el usuario introduce una contraseña falsa de una longitud superior a la que puede contener el búfer. En este escenario se produce un desbordamiento del búfer. Aunque la contraseña introducida sea incorrecta, el programa acabará dando acceso al usuario al sistema, ya que la memoria adyacente que contiene la condición de comprobación de la contraseña se sobrescribirá con el exceso de datos proporcionados durante la introducción de la contraseña.
  • Estos ataques también pueden realizarse con el motivo de modificar la dirección de retorno. Estos exploits pueden utilizarse para corromper la memoria y desviar el flujo normal de ejecución de un programa. Se puede conseguir sobrescribiendo la posición de memoria que contiene la dirección de retorno con los datos sobrantes utilizados para realizar el desbordamiento del búfer. De este modo, un atacante puede controlar la ejecución del código incluyendo código arbitrario en la nueva dirección de retorno añadida.
  • Inundar la entrada con datos que superen ampliamente el espacio de búfer asignado también puede provocar el fallo del sistema y puede utilizarse para facilitar ataques DDOS.

¿Cómo evitar los ataques por desbordamiento del búfer?

Ahora que la gravedad de estos ataques ha salido a la luz, sepamos cómo prevenirlos. Vulnerability Manager Plus puede utilizarse como herramienta proactiva en estos casos, ya que ofrece múltiples formas eficientes de tratar el mismo problema.

  • Aleatoriedad en la disposición del espacio de direcciones (ASLR).

    Aunque los desbordamientos de búfer suelen producirse en lenguajes de programación más antiguos, como C y C++, debido a la falta de comprobación de límites, los lenguajes más avanzados aún pueden ser presa de este tipo de exploits. Siguen produciéndose, debido a lo fácil que es para los atacantes adivinar la posición de los procesos y funciones en la memoria. En esencia, ASLR puede resolver esto aleatorizando los espacios de direcciones que podrían ser objetivos potenciales de tales ataques. Cuando se intenta un exploit de desbordamiento del búfer, se solicitará una ubicación incorrecta del espacio de direcciones debido a que los atacantes desconocen la aleatorización. Esto provocará el fallo de la aplicación objetivo, deteniendo así el ataque y alertando al sistema. ASLR suele venir activado automáticamente en todas las versiones recientes de Windows, aunque existen excepciones. Puede que sólo sean excepciones, pero sin duda le costarán a su empresa una suma considerable. Pero no deje que esto le moleste, ya que Vulnerability Manager Plus trae la solución. Usando esta herramienta única de análisis y gestión de vulnerabilidades se le dará a usted un 100% de visibilidad de tales errores de configuración de seguridad junto con opciones adicionales para habilitar ASLR inmediatamente.
  • Prevención de ejecución de datos (DEP).

    La Prevención de Ejecución de Datos impide que se ejecuten determinados sectores de la memoria. Usando DEP, la persona que escribe el código puede elegir no ejecutar la pila o incluso otras partes innecesarias del programa. Esto significa que un atacante no podrá utilizar un ataque de desbordamiento del búfer para añadir código arbitrario en la pila y esperar que se ejecute correctamente. Al igual que ASLR, DEP también viene activado automáticamente en todas las versiones recientes de Windows. Pero con un montón de configuraciones que el administrador debe gestionar, las posibilidades de que se desactive accidentalmente son muchas. Vulnerability Manager Plus realiza un trabajo exuberante al identificar, notificar y corregir inmediatamente tales contratiempos.
  • Protección contra sobrescritura del gestor de excepciones estructurado (SEHOP).

    La gestión estructurada de excepciones (SEH) es un mecanismo de gestión de excepciones utilizado para gestionar errores y excepciones que surgen durante la ejecución normal del código de una aplicación. Este gestor de excepciones puede ser manipulado y sobrescrito por desbordamientos de búfer, ya que suelen estar presentes en la pila, provocando así exploits SEH y forzando el cierre de las aplicaciones. La protección contra sobrescritura del gestor de excepciones estructurado (SEHOP) está diseñado para bloquear exploits que utilizan la técnica de sobrescritura de la gestión estructurada de excepciones (SEH). Vulnerability Manager Plus hace un trabajo robusto al analizar todos los endpoints de su empresa para garantizar que SEHOP esté habilitado, protegiéndolo así de una tonelada de tales exploits.
  • Parche de vulnerabilidades de desbordamiento del búfer.

    En caso de que una vulnerabilidad de este tipo haya entrado en su red a pesar de todos sus esfuerzos de gestión, Vulnerability Manager Plus le cubrirá las espaldas. Puede obtener una visibilidad completa de todas las vulnerabilidades que existen en su red, junto con información detallada sobre la causa de la vulnerabilidad. Esta solución integral de evaluación y gestión de vulnerabilidades va un paso más allá, ya que no sólo identifica vulnerabilidades como los desbordamientos de búfer, sino que también presenta las formas de corregirlas en forma de parches. Puede implementar parches fácilmente para todas las vulnerabilidades descubiertas al instante directamente desde la consola de Vulnerability Manager Plus.

A pesar de lo peligrosos que pueden llegar a ser estos exploits de desbordamiento del búfer, pueden prevenirse fácilmente con una solución de análisis y corrección de vulnerabilidades. ¡Apresúrese! Descargue Vulnerability Manager Plus ahora y explore su variedad de funcionalidades de forma gratuita durante un período de prueba de 30 días.