banner

DDoS: Técnicas de Defensa

En los últimos meses se ha visto como los ataques de DoS (Denegación del Servicio) han aumentado considerablemente contra empresas, organismo públicos o institucionales como método de protesta por decisiones políticas, la situación financiera, etc

La eficacia de estos ataques DoS reside en el carácter distribuido de los mismos, estos son realizados desde múltiples lugares del mundo, gracias a la propagación y distribución de las herramientas de ataque a través de las redes sociales e Internet.

Referencia a la Web (URL) que proporciona los medios para atacar a un determinado objetivo en este ejemplo: www.casareal.es

Por ejemplo, una de las técnicas de propagación de este tipo de ataques DDoS (Denegación de Servicio Distribuido) es el que pone en práctica el grupo Anonymous, éste consisten en transmitir un tweet con un mensaje reivindicativo, normalmente con fines políticos  (hacktivismo), acompañado de una dirección URL. 

Esta dirección URL proporciona la herramienta necesaria para realizar el ataque de DoS por inundación (TCP Flood), es decir mientras tengas abierta (visualizando) la página web a la que te lleva dicha URL, se estará produciendo un ataque desde tu dirección IP al objetivo particular elegido para ese momento.

Aspecto de la página WEB desde donde se realizan los ataques DoS que Anonymous pone a disposición de todo el mundo.
Además, desde la propia página WEB te enseñan a ocultar tu IP para evitar "males" mayores.

¿Cómo se puede proteger una aplicación WEB ante ataques de Denegación de Servicio (DoS)?

La denegación de servicio consiste en intentar consumir los recursos del servicio evitando el funcionamiento normal del mismo. El ataque más común y ampliamente utilizado es el que se conoce con el nombre de inundación (Flood), es un ataque que consiste en solicitar la información a una página web (HTTP Request) de manera masiva y sin esperar a la respuesta (HTTP_Response).

Una manera efectiva es bloquear la IP origen desde la que se esta produciendo un comportamiento anómalo en cuanto al número de peticiones por segundo que se realizan a la página WEB, sin embargo esta práctica tan simple que resulta muy efectiva contra ataques DoS puntuales y centralizados, no surge efecto en el momento que se utilizan técnicas de ataque distribuidas (DDoS), pues el número de peticiones que se reciben masivamente provienen desde múltiples direcciones IP.

¿No podemos bloquear todos una por una? Si el volumen de equipo (atacando al mismo tiempo es excesivo podría ahogar los recursos hardware (CPU / Memoria) del dispositivo cortafuegos que se encuentra bloqueando miles de direcciones IP. Pero sin embargo, suponiendo que se dispone de la capacidad suficiente para ello, ¿Quién nos asegura que no estamos bloqueando peticiones legitimas de usuarios del portal Web?

Se recomienda, llevar a cabo otro tipo de prácticas adicionales, como por ejemplo:

 - Utilizar balanceadores de carga e incrementar los recursos activando servidores WEB auxiliares para hacer frente a la demanda de tráfico, así como el caudal de ancho de banda necesario.
 - Si con ello no es suficiente, se puede realizar un ajuste en la configuración TCP (Hardening TCP/IP Stack) del Sistema Operativo que soporta al servicio WEB para aumentar los tiempos de respuesta a un valor lo suficientemente largo, como para minimizar (ralentizar el funcionamiento del servicio) los efectos sobre el servicio que se ofrece a sus usuarios mientras dure el ataque.

Las técnicas más efectivas son aquellas que disponen de un modelo combinado en cuanto a las medidas de protección, es decir, disponen de sistema de protección automático para bloquear direcciones IP en los sistema de seguridad perimetral (FW), activación de recursos latentes y ajustes de configuración para controlar algunos parámetros en particular del protocolo TCP, como por ejemplo: 

En Sistemas Windows:

Para hacer frente a los ataques de DoS (TCP Flood, mediante SYN Attack) Microsoft proporciona una sería de recomendaciones (guía) de seguridad para configurar adecuadamente los parametros de la torre de protocolos TCP/IP.

Esta configuración se lleva a cabo mediante el acceso al registro de windows, concretamente bajo la clave de registro: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TcpIp\Parameters

Lo primero es activar la protección frente ataques TCP-SYN (Peticiones incompletas del protocolo TCP) para ello se dispone de un parametro especifico para activar la medidas de proteccion: SynAttackProtect con valor 2.

Este parámetro realiza un reajuste en el valor de "tiempo de espera", es decir, realiza una reducción del tiempo (timeout) para responder más rápidamente a este tipo de eventos / peticiones. La activación de este reajuste se controla mediante los umbrales definidos en los parámetros: TcpMaxHalfOpen y TcpMaxHalfOpenRetried. Los valores recomendados para esos parámetros son 500 y 400 respectivamente. Si se exceden los valores umbrales se activará la protección SYN-Attack y reajustará automáticamente los valores para tratar de hacer frente a este tipo de ataques.

Además se puede configurar otros parámetros que ayudan a proteger el sistema y evitar el consumo excesivo de recursos (CPU, Ancho de banda, Memoria RAM)  ante este tipo de ataques:
  • TcpMaxConnectResponseRetransmissions (2) : 2 significa el número de reintentos de envio SYN-ACK antes de cancelar la respuesta SYN-Request.
  • TcpMaxDataRetransmissions (2):  2 significa el número de reintentos antes de abortar la conexión.
  • EnablePMTUDiscovery (0)
  • KeepAliveTime (300000)
Más información al respecto en: How To: Harden the TCP/IP Stack

Otras soluciones

Vía: Twitter de Alejandro Ramos he encontrado un modulo PHP que actua como modulo de protección frente a los ataques más comunes de denegación de servicio (DoS) sobre las aplicaciones WEB, estoy hablando de HTTP-Flood y Brute Force Attacks for PHP.

Se trata de HTTP Anti Flood Security Gateway Module, un modulo PHP que proporciona protección frente a crawling/scanning tools, HTTP flood tools siendo capaz de detectar este tipo de ataques y bloquear la dirección IP del atacante mediante IPtables, htaccess, etc.

El modo de uso es muy sencillo, tan solo se tiene que incluir el módulo (iosec.php) en todos los ficheros PHP que se quieran proteger frente a este tipo de ataques y/o herramientas. Además existe una versión especial para Wordpress (IOSEC Wordpress Plugin @ Downloads (v.1.4))

Para probar como funciona podéis acceder a la página WEB: http://www.iosec.org/test.php y presionar F5 más de una vez, os aparecerá un mensaje de advertencia indicando que se encuentra activa una protección.

Funcionamiento del modulo PHP Anti HTTP Flood.
Este tipo de módulo, puede ser una solución rápida y efectiva, aunque muy intrusiva para el usuario, que puede propiciar pérdida de usuarios / clientes, si no se configura adecuadamente puesto que se producen bloqueos de conexiones totalmente legitimas.

Lo ideal es ajustar la torre de protocolos TCP/IP, y combinar esta configuración con técnicas de balanceo de carga, protección perimetral y flexibilidad en el uso de herramientas que bloquean la dirección IP.

Hasta aquí el artículo de hoy, un Saludo.

No hay comentarios :

Publicar un comentario en la entrada