De sobra conocidos, los ataques de denegación de servicio causan todos los años pérdidas millonarias a empresas, y muchos problemas a los administradores de sistemas. Y es que no hace falta mucho para llevarlos a cabo como vimos hace unos días.

Esta facilidad de uso hace que muchos sin tener los conocimientos necesarios sobre un protocolo determinado o acerca de cómo se componen los paquetes de los que hablamos a continuación, sigan cualquier ‘step by step’ que se encuentren en su navegación, llegando a causar grandes daños a los servidores que tengan como objetivos. Para que todos conozcamos un poco mejor de qué formas pueden llegar a atacarnos mediante DoS, os traigo este ‘top ten’.

Ya visteis en la publicación anterior que existen muchos tipos de ataques, y a continuación os traigo hoy un resumen de cómo funcionan los ataques DoS (Denegación de Servicio) más usados/sufridos:

*Nota: Por lo repetido de la palabra “flood”, su significado literal es “inundar”, pero en el caso que nos ocupa sería saturar u ofuscar.

1. UDP Flood (Saturación UDP).

Este ataque DDoS aprovecha el protocolo UDP (User Datagram Protocol), un protocolo de red que no necesita una sesión iniciada en el equipo remoto. Este tipo de ataque inunda puertos aleatorios dicho host remoto con numerosos paquetes UDP , causando que el equipo víctima compruebe ante cada petición a cada puerto, si hay alguna aplicación escuchando en destino; y en caso de no haberla responde con un paquete ICMP (Internet Control Message Protocol) de error de destino. Al ser el número de paquetes enviado enormemente exagerado, este proceso agota los recursos del servidor o equipo, y en última instancia puede conducir a la inaccesibilidad.

2. ICMP Flood (Saturación por Ping).

Similar en principio al ataque de inundación UDP, este en particular satura el recurso de destino con solicitud de paquetes “eco” ICMP (más conocido como ping), básicamente se trata de enviar paquetes de solicitud sin esperar los paquetes de respuesta. Este tipo de ataque puede consumir tanto ancho de banda saliente y entrante , ya que las solicitudes intentarán ser respondidas con paquetes ICMP mientras no paran de llegar nuevos paquetes, dando como resultado una significativa desaceleración general del sistema, hasta lograr la caída del servicio o el reinicio de la máquina. Los ataques mediante ICMP flood pueden ser detenidos gracias a la configuración de Listas de Control de Acceso (ACL’s) en routers y switches.



¿Te está gustando esté artículo? Puedes aprender mucho más si está suscrito a nuestra lista de correo. Recibirás noticias, tutoriales, nuestros nuevos lanzamientos y mucho más.

3. Service Port Flood (Ataque sobre Puertos de Servicio).

Así como en los ataques UDP Flood se atacaban puertos aleatoriamente, en este tipo de ataques las peticiones irán dirigidas hacia los puertos estándar en los que se conoce que habrá más volumen de tráfico (el puerto TCP 80, por ejemplo) tanto entrante como saliente. Estamos ante un tipo de ataque considerado de los más complejos para evitarlos o detenerlos. Por lo que deberemos implementar herramientas específicas para esta tarea o derivar todas nuestras comunicaciones por un mitigador o analizador de tráfico que detecte estos ataques.

4. HTTP Flood (Saturación HTTP).

En los ataques por HTTP DoS, como atacantes haremos uso de peticiones GET o POST en apariencia válidas para atacar servidores o aplicaciones web . Aquí no usaremos paquetes con tamaños abusivos ni nada por el estilo. Este ataque hace uso de muchísimo menos ancho de banda para inhabilitar a nuestra víctima, o incluso tomar el control. Uno de los usos más habituales de este ataque, es el de usar la máquina que acabamos de atacar para usar sus recursos y atacar a otros servidores o aplicaciones web; o dicho de otra forma para comenzar a crear una botnet o seguir ampliando la que ya tenemos.

5. SYN Flood.

Así funciona la secuencia de conexión de tres pasos del protocolo SYN. Nosotros enviamos una petición SYN para iniciar la conexión TCP que el host al que conectamos debe responder con un paquete SYN-ACK para nosotros confirmarlo con una respuesta ACK. El ataque comienza cuando ignoramos la petición ACK por parte de nuestro objetivo, este mantiene las conexiones abiertas a la espera de respuesta y nosotros continuamos enviando paquetes SYN, lo que provoca que dicha máquina siga enviando peticiones SYN-ACK; saturando así el tráfico saliente y entrante del host . Los ataques SYN flood puede ser detenido fácilmente con la implementación de firewalls, tanto de tipo hardware como software.

6. Slowloris

En el resto de tipos de ataques enviamos paquetes o solicitudes completas. Pero en esta ocasión, lo que hacemos es enviar únicamente las cabeceras de las peticiones (HTTP en este caso) , sin llegar a completar nunca una de estas al completo, con lo que cada “media-petición” que enviamos queda abierta, a la espera de que terminemos de enviar la información restante para completarla, lo que en poco tiempo acabará consumiendo los recursos del servidor víctima y denegando el servicio al resto de peticiones legítimas.

7. Ping of Death (Ping ‘de la Muerte’).

Por norma general una petición ping tiene un tamaño de 32 bytes (incluida la cabecera) y los servidores no tienen ningún problema para gestionar las peticiones y enviar la respuesta correspondiente legítimas.

Con el conocido como “Ping de la muerte” (Ping of Death o PoD), lo que hacemos es enviar paquetes mediante ping, pero con un tamaño mucho mayor y a mayor frecuencia de lo normal.

El esquema de este ataque es el siguiente:

ping DIRECCIÓN.IP.DEL.OBJETIVO -l 65535 -n 10000000 -w 0.00001

Donde:

  • –l: Indica el tamaño del paquete en Bytes. Como vimos antes, el tamaño por defecto es de 32bytes y nosotros estaremos enviando 65535bytes, que es el tamaño máximo permitido por el comando.
  • -w: Estipula el tiempo de espera para la respuesta antes de enviar otro paquete. Como no nos interesa recibir respuestas, si no saturar de paquetes peticionarios al objetivo, lo establecemos a una espera ridículamente pequeña para que el envío de paquetes sea continuo.
  • -n : Establece una cuenta con el número de paquetes que enviaremos. Por defecto enviará 4 peticiones, y como se ve en el ejemplo, para nosotros eso no era bastante, por lo que subimos hasta los 10 millones de peticiones (y porque no nos hemos querido poner “chulos”) ;).

Este comando debe ejecutarse como usuario root para poder cambiar los tamaños de paquetes, intervalos de envío, etc… Además, es de los más “flojitos” que podemos encontrar en esta lista, debido a que es uno de los ataques contra los que primero se protegen los servidores. Por lo que para realizar una denegación de servicio como tal necesitaríamos una red de bots (botnet o red de equipos bajo nuestro control) que atacasen al objetivo de forma simultánea.

8. NTP Amplification (Amplificación NTP).

Este tipo de ataque es muy curioso a la par que también es bastante difícil de detener, explico el por qué. Nosotros como atacantes realizaremos una petición a un servidor NTP (Network Time Protocol o Protocolo en Red de Tiempo, servicio dedicado a sincronizar el reloj del sistema con diversos servidores). Una petición realizada devolverá un paquete que contendrá las 100 últimas direcciones IP’s que se hayan conectado a ese servidor, con un tamaño en proporción a la petición enviada de entre 1:60 a 1:200. Lo “gracioso” del ataque es que para realizar esta petición, “spoofearemos” (robaremos la ip de nuestra víctima y la usaremos como nuestra) la ip de la máquina a la que queremos atacar, llegando a ésta los enormes paquetes devueltos.

Si este proceso lo repetimos al estilo PoD, o bien usando una botnet, el resultado será la saturación del servicio de la ip de nuestra víctima hasta hacer inaccesible , bien por la propia saturación del servicio, bien porque resulte en un ‘crasheo’ del sistema.

Decía que es bastante difícil de detener porque los paquetes “atacantes” provienen de servidores lícitos y verificados, por lo que lo único que podremos hacer es mantener el servicio ntpd lo más actualizado posible, o si no nos es posible, restringir el proceso asociado ‘moonlist’ mediante la edición del archivo ntp.conf, añadiendo la directiva ‘noquery’ a las líneas de “restricción por defecto”, quedando algo como esto:


restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery

9. Blended Flood (Ataque combinado).

Esto se da cuando múltiples tipos de ataques s e combinan en el servidor, lo cual al final termina confundiendo al equipo . Debido a su complejidad, no pueden ser detenidos por firewalls, switches, routers, ni dispositivos IPS (Intrusion Prevention System), a menos que lo configuremos a conciencia, pero al ser ataques que mezclan las diferentes técnicas aquí descritas es una tarea tremendamente compleja.

10. Zero-day DDoS Attack (Ataques ‘Día Cero’).

Los ataques “Zero-day” o “Día-Cero” no son más que ataques novedosos o desconocidos que explotan vulnerabilidades de las cuales aún no se han publicado correcciones o parches (este término se aplica a cualquier vulnerabilidad, pero al existir tal cantidad de ataques DoS o DDoS, lo incluyo para que se tenga presente).

Por lo que no es nada fácil defenderse de algo de lo que prácticamente no se sabe nada . Un claro ejemplo de ataque Zero-day pueden ser aquellos relacionados con la vulnerabilidad Stagefright de la que ya hablamos hace unos meses ya que se trata de una vulnerabilidad conocida recientemente para la que aún no ha salido corrección o parche oficial, pero como vimos en aquella publicación hay un par de trucos que nos pueden ayudar a evitar que seamos afectados por un ataque.