DoS: patrones de ataque y contramedidas

La falta de disponibilidad de un servicio en informática se denomina “Denial of Service” (DoS). Este tipo de bloqueos en el servicio están acompañados por una sobrecarga de los componentes individuales de la infraestructura informática. Si esta condición es causada intencionalmente por agentes externos, se habla de un ataque de denegación de servicio o DoS. Aquí, el atacante dirige al sistema más solicitudes de las que este puede contestar. De esta forma, los dispositivos de red, sistemas operativos y servidores individuales no pueden responder a las solicitudes o lo hacen con retraso. Este ataque resulta especialmente efectivo cuando un sistema se enfrenta a las solicitudes de varios ordenadores. A diferencia de un ataques DoS, los DDoS se basan en extensas redes de bots.

¿Qué es DDoS?

Una forma común de DoS se conoce como "Distributed Denial of Service" (DDoS). En esta variante, los delincuentes cibernéticos no atacan directamente al equipo, sino que cargan los sistemas de destino con peticiones simultáneas de numerosos ordenadores, que se combinan para formar botnets gigantes. Este tipo de red permite generar más tráfico del que se genera con un simple ataque DoS. Por lo tanto, un ataque DDoS tiene consecuencias drásticas para los sistemas afectados, que, por lo general, tienen pocas oportunidades para identificar la fuente real del ataque. Esto se debe principalmente a que cuando los atacantes construyen redes de este tipo, entran en operación agentes especiales de software que, a través de Internet y sin el consentimiento del operador, se colocan y son controlados en los equipos que no cuenten con el sistema de protección adecuado. Es común que este tipo de "infección" tenga lugar algunos meses antes del ataque DDoS en sí.

Blanco de los ataques DoS y DDoS

A diferencia de otro tipo de ataques cibernéticos, los ataques DoS y DDoS no tratan de infiltrarse en el sistema. Sin embargo, sí pueden ser parte de un ataque de hacking para, por ejemplo, distraer la atención mientras se paraliza un sistema. Si la capacidad de respuesta de un servidor se ve afectada como consecuencia de un ataque DDoS o DoS, los hackers también tienen la opción de utilizar respuestas falsas para manipular las solicitudes de un sistema sobrecargado. Las estrategias basadas en este tipo de ataques se pueden dividir en tres categorías: la sobrecarga del ancho de banda, la congestión de los recursos del sistema y la explotación de los defectos del software y de los fallos de seguridad.

Sobrecarga del ancho de banda

Un ataque que congestione el ancho de banda tiene como objetivo limitar la disponibilidad de un equipo. En este caso, los ataques DoS y DDoS se dirigen directamente a la red y a sus respectivos dispositivos de conexión. Así, por ejemplo, un router solo puede procesar una cierta cantidad de datos de forma simultánea, sobrecargando sus capacidades y evitando, así, que los servicios prestados por el router no estén disponibles para ningún usuario. Un ataque DDoS clásico de este tipo es el ataque pitufo.

  • Ataque pitufo: Este ataque DDoS aprovecha el “Internet Control Message Protocol” (ICMP), utilizado para el intercambio de información y de mensajes de error en una red de ordenadores. El atacante envía paquetes ICMP falsos del Typs Echo Request (ping) a la dirección de difusión de una red (al broadcast) y utiliza la IP atacada como remitente. Así, la solicitud broadcast es enviada a todos los dispositivos conectados en red desde el router, provocando que cada equipo envíe una respuesta a la dirección del remitente (pong). Una gran red con muchos dispositivos conectados puede afectar masivamente a la disponibilidad del ancho de banda.  

Congestión de los recursos del sistema

En un ataque DoS o DDoS a los recursos de un sistema, el atacante se beneficia del hecho de que los servidores web solo pueden producir un número limitado de conexiones. Como consecuencia, cuando estos son saturados con peticiones inválidas o sin sentido, las solicitudes normales realizadas por cualquier tipo de usuario son bloqueadas de manera efectiva. En estos casos se habla entonces de flooding (inundaciones), siendo las más clásicas Ping Flood, SYN Flood y UDP Flood.

  • Ping Flood: en este tipo de ataques los cibercriminales también se valen de los paquetes ICMP del Typs Echo Request. Estos suelen ser enviados en masa utilizando botnets para atacar a sus blancos. Debido a que cada una de estas solicitudes (ping) deben ser respondidas por el sistema de destino con un paquete de datos (pong), una ping flood puede ralentizar aún más sistemas lentos.
  • SYN Flood: este patrón de ataque constituye un abuso del TCP Threeway Handshake. El TCP ("Transmission Control Protocol") es un protocolo de red que, junto a la IP, asegura un tráfico de datos sin pérdidas a través de Internet. El establecimiento de una conexión TCP siempre se lleva a cabo en una autenticación completa de tres pasos. Para este propósito, el cliente envía un paquete de sincronización (SYN) al servidor. Este es recibido por el servidor, quien responde, a su vez, con un paquete de sincronización (SYN) y una confirmación (ACK). La conexión se finaliza con la confirmación de recibido (ACK) por parte del cliente. En caso de que esta no se produzca, se pueden paralizar los sistemas muy eficientemente, ya que el servidor no cuenta en su memoria con suficientes conexiones confirmadas conclusivas. Si como consecuencia del SYN flooding se reúnen un gran número de conexiones incompletas, los recursos disponibles del servidor serán consumidos rápidamente.
  • UDP Flood: en este ataque, los ciberdelincuentes se aprovechan de la conexión "User Datagram Protocol" (UDP). A diferencia de una transferencia a través de TCP, UDP permite realizar una transferencia de datos sin establecer una conexión. Los ataques DoS y DDoS envían una gran cantidad de paquetes UDP a puertos del sistema de destino seleccionados, generalmente, al azar. El sistema de destino tratará de determinar, sin éxito, qué aplicación está a la espera de los datos transmitidos enviando al remitente un paquete ICMP con el mensaje "Dirección de destino no disponible". Así, cuando un sistema se sobrecarga con numerosas peticiones de este tipo, limitará en gran medida la disponibilidad de acceso a usuarios regulares.

Explotación de fallos en el software y la seguridad

Si un atacante reconoce las vulnerabilidades de un sistema operativo o de un programa podrá diseñar ataques DoS y DDoS en los cuales cualquier solicitud pueda generar errores en el funcionamiento del software o fallos en el sistema.

  • Ping de la muerte: este patrón de ataque tiene el objetivo de colapsar el sistema. Los atacantes se aprovechan de los errores de implementación del protocolo de internet (IP). Por lo general, los paquetes IP se envían fragmentados. Si durante el proceso se transmite información incorrecta, algunos sistemas operativos podrán ser engañados para que generen paquetes IP que excedan su tamaño máximo de 64 KB. Así, y como consecuencia de un intento de volver a montar el paquete, se produce un “buffer overflow” (desbordamiento de la memoria).
  • Ataque LAND: en este tipo de ataque el cibercriminal envía un paquete SYN como parte del protocolo TCP Threeway Handshakes (ver arriba), que contiene el destino y la dirección de origen del servidor que será víctima del ataque. Como consecuencia, el servidor se responde a sí mismo con un paquete SYN/ACK. Esto puede ser interpretado como una nueva solicitud de conexión, que a su vez, debe ser respondida con un paquete SYN/ACK. De esta forma, el sistema puede llegar a encontrarse respondiendo a sus propias solicitudes, lo que conduce a una carga excesiva que puede hacer colapsar al sistema.

Contramedidas

Se han desarrollado diferentes medidas para contrarrestar la sobrecarga causada por ataques DoS y DDoS. Es fundamental identificar las direcciones IP críticas, así como posibles vulnerabilidades del sistema. También es necesario disponer de recursos de hardware y software que permitan compensar pequeños ataques.

  • Lista de IP bloqueadas: las listas negras permiten la identificación de las direcciones IP críticas y la eliminación directa de paquetes. Esta medida de seguridad puede ser implementada de forma manual o automatizada a través de las listas de bloqueo del cortafuegos.
  • Filtros: es posible definir límites en la cantidad de datos procesados simultáneamente para filtrar, así, todo tipo de paquetes anormales. En este punto es importante considerar que, muchas veces, los proxys permiten que muchos clientes se conecten desde una misma dirección IP del servidor, lo que puede generar su bloqueo sin razón aparente.
  • SYN cookies: si se utiliza esta medida de seguridad, la información sobre los paquetes SYN ya no es almacenada directamente en el servidor, sino que se envía como una cookie encriptada al cliente. De esta forma, un ataque de SYN flood compromete la capacidad del equipo pero no la memoria del sistema de destino.
  • Balanceo de carga: una contramedida eficaz contra la sobrecarga es la distribución de la carga en diferentes sistemas. La utilización de balanceadores de carga permite extender los servicios a múltiples máquinas físicas. De esta forma, y hasta cierto punto, se pueden controlar los ataques DoS y DDoS.