¿Por qué un ataque (D) DoS ralentiza la CPU y bloquea un servidor?

22

Por lo tanto, tengo la idea básica de (D) DoS que se usan para la inundación, pero no entiendo bien cómo esto hace que los servidores se bloqueen o disminuyan la velocidad debido al uso excesivo de la CPU.

Por lo que sé, lo que se usa para ralentizar un servidor es el protocolo de enlace TCP SYN, pero eso requiere una cantidad trivial de CPU.

¿Cómo se bloquea un servidor usando (D) DoS?

    
pregunta DrDoom 21.12.2016 - 23:04
fuente

4 respuestas

39
  

¿Cómo se bloquea un servidor usando (D) DoS?

Para responder específicamente a su pregunta, para bloquear un servidor utilizando solo DDoS, debe apuntar a la capa de aplicación (explicación detallada a continuación). Estos tipos de ataques intentan utilizar la mayor cantidad posible de recursos de servidores de destino y reducirlos, en lugar de simplemente atacarlos con tráfico de red.

Sin embargo, para poner esto en contexto junto con otros tipos de ataques DDoS, exploremos sus principales categorías y sus usos.

Este artículo cubre los 3 tipos principales de ataques para DDoS. Del artículo:

  

Los ataques DDoS se pueden dividir en tres tipos:

     

Ataques basados en volumen

     

Incluye las inundaciones de UDP, las inundaciones de ICMP y otras inundaciones de paquetes falsificados. El objetivo del ataque es saturar el ancho de banda del sitio atacado, y la magnitud se mide en bits por segundo [sic] "(Bps)" [sic].

     

Ataques de protocolo

     

Incluye inundaciones SYN, ataques de paquetes fragmentados, Ping of Death, Smurf DDoS y más. Este tipo de ataque consume los recursos reales del servidor, o los de los equipos de comunicación intermedios, como los cortafuegos y los equilibradores de carga, y se mide en paquetes por segundo.

     

Ataques de la capa de aplicación

     

Incluye ataques de baja y lenta, inundaciones de GET / POST, ataques dirigidos a vulnerabilidades de Apache, Windows u OpenBSD y más. Compuesto por solicitudes aparentemente legítimas e inocentes, el objetivo de estos ataques es bloquear el servidor web, y la magnitud se mide en Solicitudes por segundo.

TL; DR : hay varios tipos de ataques DDoS según lo que el atacante quiera lograr. A veces, un atacante solo querrá ocupar todo el ancho de banda disponible, otras veces intentará abrumar a la CPU.

Vale la pena señalar que DDoS es solo un tipo distribuido del genérico ' Denegación de servicio '; no implica que se bloquee un servidor en absoluto, solo evita que el servidor haga lo que está destinado. ya sea para evitar que se realicen negocios reales utilizando todo el ancho de banda o no.

    
respondido por el R. Murray 21.12.2016 - 23:17
fuente
18

Una Inundación SYN no se trata de agotar la CPU, se trata de agotar la memoria.

Se establece una conexión TCP a través de lo que se conoce como un "protocolo de enlace de tres vías". Tradicionalmente, funciona de la siguiente manera:

  1. El cliente envía un paquete SYN . El servidor recibe el paquete y asigna recursos para rastrear la conexión.
  2. El servidor responde con un paquete SYN/ACK .
  3. El cliente responde con un paquete ACK , estableciendo la conexión.

En una inundación SYN, el atacante envía un flujo continuo de paquetes de SYN , mientras ignora las respuestas SYN/ACK . Esto deja al servidor con un gran número de conexiones medio abiertas que se mantendrán durante un tiempo; Si el atacante puede enviar paquetes lo suficientemente rápido, el servidor no podrá responder a las solicitudes genuinas. Un servidor mal escrito puede incluso quedarse sin memoria y fallar.

La defensa estándar contra la inundación SYN es Cookies SYN :

  1. El cliente envía un paquete SYN .
  2. El servidor responde con un paquete SYN/ACK con valores cuidadosamente seleccionados para algunos parámetros TCP que le permiten identificar el ACK que responde.
  3. El cliente responde con un paquete ACK basado en esos parámetros, estableciendo la conexión. El servidor ahora asigna recursos para rastrear la conexión.

Al retrasar la asignación de recursos hasta que la conexión esté completamente establecida, ya no existe la asimetría del esfuerzo que hace que el ataque de inundación sea práctico.

    
respondido por el Mark 21.12.2016 - 23:21
fuente
11

Por lo general, los ataques DDoS son lo que se denomina ataques de capa 4. Estos a menudo utilizan inundaciones SYN y tienen como objetivo agotar todo el ancho de banda disponible. Al igual que no puede descargar películas a una velocidad ilimitada desde la computadora de su hogar, un servidor no puede aceptar solicitudes entrantes y enviar respuestas salientes a una velocidad ilimitada. Claro, un servidor puede tener más ancho de banda que tú, ¡pero los ataques DDoS más grandes están usando cientos de gigabits por segundo!

Luego están los llamados ataques de capa 7. Estos son a menudo ataques no distribuidos dirigidos a algún recurso como la CPU o el espacio en disco. Mientras que un ataque de capa 4 es de talla única, un ataque de capa 7 debe dirigirse a una debilidad específica en la víctima. Por lo general, se utiliza como destino una gran cantidad de recursos (que no se almacena en caché) como la búsqueda de texto completo. Como usted dice, un apretón de manos SYN-ACK no requiere muchos recursos, por lo que sería una mala elección para un ataque de nivel 7.

Entonces, en conclusión:

  • Un ataque de capa 4 puede usar paquetes SYN, pero está dirigido al ancho de banda y no al uso de la CPU.
  • Un ataque de capa 7 podría estar dirigido al uso de la CPU, pero no usaría paquetes SYN.
respondido por el Anders 21.12.2016 - 23:31
fuente
10

Una DDoS generalmente no bloquea un servidor. Lo sobrecarga, por lo que no está disponible para el uso normal. La "mejor" forma de lograr esto depende de la función del servidor y de la forma en que está configurado. Hay muchas formas de hacer esto, por nombrar algunas:

  • sobrecargue la interfaz de red con el tráfico para que se llene de basura y el tráfico legítimo no llegue al servidor
  • agote el firewall creando una gran cantidad de sesiones, por lo que muchas no pueden realizar un seguimiento del estado de la sesión y no aceptarán nuevas sesiones
  • disparar rápidamente la solicitud (por ejemplo, abrir páginas web en un servidor web) que requiere muchos recursos para generar (por ejemplo, cálculos complejos o búsquedas en bases de datos). Esto reduce la disponibilidad del proceso del servidor y aumenta la carga en la CPU.
  • rellenar discos, por ejemplo creando muchas entradas de registro o cargando datos
respondido por el Teun Vink 21.12.2016 - 23:13
fuente

Lea otras preguntas en las etiquetas