¿Qué es un ataque de desbordamiento de búfer y cómo se puede prevenir?

Todos los días, los piratas informáticos de todo el mundo descubren nuevas vulnerabilidades y las explotan para obtener acceso a sitios web, aplicaciones e incluso a la arquitectura del sistema. Una de las cosas que tienen en común todos los dispositivos electrónicos, viejos y nuevos, es que son administrados por aplicaciones que se almacenan en la memoria. Los piratas informáticos se han aprovechado de esto y han encontrado lagunas conocidas como desbordamiento de búfer.

Aunque no son nuevos, los ataques de desbordamiento de búfer y las vulnerabilidades han causado estragos cada vez más en el ciberespacio. Verificar Algunos mitos de ciberseguridad que te hacen más vulnerable a los ataques.

Aquí te explicaremos qué son los ataques de desbordamiento de búfer y cómo puedes prevenirlos.

Comprender el búfer y la memoria del sistema

Para comprender qué es un ataque de desbordamiento de búfer y cómo funciona, debe saber qué es un búfer y cómo funciona la memoria de la computadora.

La memoria de montón y pila son dos características principales de la memoria de la computadora. Son las estructuras de datos utilizadas para asignar memoria. Aunque son similares, la memoria de pila y la memoria de montón difieren en muchos aspectos.

La pila, que utiliza el concepto de último en entrar, primero en salir (LIFO), se utiliza en la memoria RAM para almacenar en caché las ejecuciones de aplicaciones, mientras que el montón asigna la memoria mediante la asignación dinámica de variables globales. Pero lo único que tienen en común es un amortiguador. Verificar 4 Trucos para Acelerar la Navegación Web y la Velocidad de Internet en Windows 10.

¿Qué es un búfer?

Un búfer es un área de memoria utilizada para almacenar datos, muy probablemente en la memoria RAM de una computadora, a medida que se mueven de un lugar a otro. Por lo general, estos datos son aplicaciones que deben implementarse. Los búferes se almacenan en la pila o montón. Mejora la ejecución de datos.

¿Qué es un desbordamiento de búfer?

Un desbordamiento de búfer ocurre cuando un búfer recibe más datos que su capacidad de almacenamiento. Como no puede procesar tantos datos, se desborda.

Ahora, en la memoria de la computadora, inmediatamente después del búfer o caché, está la dirección del remitente. Lo que en realidad se llama puntero de instrucción extendida (EIP). Su trabajo es dirigir la computadora a una aplicación específica cuando se completa. Cuando un búfer contiene más datos de los que puede contener y se desborda, se desborda a la dirección de retorno.

Para entender esto, supongamos que tiene un espacio de búfer que solo puede contener cinco caracteres. Entonces, si agrega palabras como "azúcar" o "paz", el flujo del búfer puede contenerlas. Pero cuando tiene una palabra como 'autenticación', seguramente se desbordará. Esto conduce a un mal funcionamiento o bloqueo en el sistema. Pero los piratas informáticos pueden explotar esta vulnerabilidad para lanzar un ataque de desbordamiento de búfer.

¿Qué es un ataque de desbordamiento de búfer y cómo funciona?

Los ataques de desbordamiento de búfer ocurren cuando un pirata informático toma el control de la dirección o EIP del remitente. Cuando un atacante sabe cuánta memoria del sistema hay, puede escribir datos intencionalmente en esa memoria solo para eludirla. Luego se asegura de escribir el EIP o la dirección de retorno para apuntar a una aplicación que pueda darle acceso al sistema o revelar información confidencial almacenada en el sistema.

Un atacante puede incluso escribir algunos datos que contengan código malicioso y provocar un desbordamiento del búfer. Luego se escribe un EIP para redirigir el sistema de vuelta al código malicioso y se ejecuta. Después de eso, el hacker toma el control del sistema.

Hay cinco pasos principales en los ataques de desbordamiento de búfer:

  • póngase en fila.
  • Examen aleatorio.
  • Encontrar el desplazamiento.
  • Sobrescriba el EIP o la dirección del remitente.
  • Explotación de la vulnerabilidad.

La alineación es el primer paso. Aquí, el atacante encuentra una parte de la memoria de la aplicación vulnerable a un desbordamiento de búfer. Luego viene la verificación aleatoria similar a una cola, pero aquí el atacante envía caracteres a la aplicación para ver si se puede descifrar. Una vez que tiene éxito, el atacante continúa encontrando el desplazamiento, donde el búfer se ha desbordado. Esto se hace para averiguar el tamaño del búfer y la dirección del remitente. Luego, el atacante inserta un código malicioso y toma el control del sistema.

¿Cuáles son los tipos de ataques de desbordamiento de búfer?

Hay dos tipos principales de ataques de desbordamiento de búfer: ataques basados ​​en pila y ataques basados ​​en montón.

1. Ataques de desbordamiento de búfer basados ​​en pilas

Los ataques de desbordamiento de búfer basados ​​en pila son el tipo más común de ataque de desbordamiento de búfer. Ocurren cuando la memoria de la pila del sistema se desborda y se explota. También conocido como aplastamiento de pilas.

2. Ataques de desbordamiento de búfer basados ​​en montón

Este tipo de ataque de desbordamiento de almacenamiento no es muy común, ya que es difícil de implementar y explotar. Ocurre cuando la memoria asignada a una aplicación se desborda. En enero de 2021, Google descubrió una vulnerabilidad de desbordamiento de búfer en el componente V8 de Chrome.

¿Cómo se pueden prevenir los ataques de desbordamiento de búfer?

Los ataques de desbordamiento de búfer se pueden mitigar mediante el uso de la protección del tiempo de ejecución del sistema, el uso de lenguajes de programación seguros, la arbitrariedad del diseño del espacio de direcciones y, en general, garantizando las medidas de seguridad adecuadas.

1. Utilice la protección de tiempo de ejecución del sistema

La protección en tiempo de ejecución también se conoce como verificación de límites de matriz en tiempo de ejecución. Esto garantiza que cada aplicación se ejecute dentro del espacio de búfer o memoria disponible. Comprueba todos los datos escritos en la memoria del sistema. Esto dificulta que un hacker sobrescriba los datos en el sistema y aproveche la vulnerabilidad.

2. Usa lenguajes de programación seguros

Los lenguajes de programación como C y C++ no implementan la verificación de matriz de tiempo de ejecución porque requieren código adicional para verificar y ralentizar cada aplicación escrita en el sistema. Por lo tanto, es más vulnerable a los ataques de desbordamiento de búfer. Usar lenguajes más seguros como C#, Java y Python es mejor porque tienen menos riesgo de ataques de desbordamiento de búfer. Verificar ¿Qué es un virus de puerta trasera? Cómo protegerse contra los ataques de puerta trasera.

3. Utilice la aleatorización del diseño del espacio de direcciones (ASLR)

Una métrica de seguridad seleccionada asigna aleatoriamente direcciones de aplicaciones y funciones en la memoria del sistema a diferentes áreas de datos. Esto dificulta que un atacante navegue por funciones confidenciales en la memoria.

4. Garantice estrictas políticas de seguridad

Esto incluye actualizar regularmente el sistema, verificar la exactitud de todos los datos escritos en el sistema y asignar los privilegios mínimos a los usuarios. Con las políticas de seguridad adecuadas, no tiene que preocuparse por un ataque de desbordamiento de búfer. Verificar Métodos que se pueden usar para hackear tus mensajes de WhatsApp.

Mantener la seguridad es esencial para combatir los ataques de saturación de búfer

Según un proverbio común en el campo de la seguridad, “Mientras el sistema sea utilizado por humanos, habrá una vulnerabilidad”, lo cual es cierto e inevitable. Sin embargo, uno siempre puede reducir las posibilidades de un ataque asegurándose de que las medidas de seguridad adecuadas estén implementadas y se cumplan estrictamente.

Recuerde que los piratas informáticos encuentran constantemente nuevas formas de explotar vulnerabilidades como estas. Por lo tanto, debe mantenerse a la vanguardia siguiendo los últimos desarrollos en el campo de la seguridad cibernética. Ahora puedes ver Las mejores formas de alentar a las personas a trabajar en ciberseguridad.

Ir al botón superior