10 Herramientas y Técnicas Gratuitas Para Protegerse del Ataque DDoS y Contraatacar

Un ataque de denegación distribuida de servicios (DDoS) es un método de hacking que tiene por objetivo enviar una inmensa cantidad de solicitudes fraudulentas a un sitio web. Como resultado de este ataque, los servidores afectados serán incapaces de procesar esta cantidad absurda de solicitudes, por lo que los usuarios no podrán acceder al sitio web atacado.

Muchas veces los atacantes lanzan estos ataques para deshacerse de la competencia en momentos determinados, por lo que los sitios comerciales y de información son víctimas frecuentes de este ataque. Otros grupos de hacking también suelen usar los ataques DDoS para extorsionar a sus víctimas y obtener dinero fácil.

MÉTODOS DE HACER CONTRAATAQUE DDOS

Acorde a los especialistas en pentesting del Instituto Internacional de Seguridad Cibernética (IICS), existen tres métodos principales para desplegar estos ataques:

  • Por ancho de banda: Se basa en el envío de una gran cantidad de solicitudes a un sitio web a través de los protocolos TCP, UDP e ICMP. Las solicitudes maliciosas consumen el ancho de banda y generan la condición de denegación de servicio
  • Basado en el protocolo del servidor: Este ataque se dirige a servicios específicos del servidor y puede ser desplegado mediante TCP, UDP e ICMP. Estos ataques son conocidos como inundaciones, debido a que el servidor debe responder con una solicitud ASK. Debido a la gran cantidad de solicitudes de este tipo, el servidor a menudo no puede hacer frente al ataque y se bloquea
  • Explotación de errores en sitios web específicos: Este ataque es difícil de desplegar, pues depende del análisis del sistema de la víctima. Dada su dificultad, este método está reservado solo para los hackers más habilidosos

HERRAMIENTAS DE APOYO PARA EL LANZAMIENTO DE ATAQUES DDOS

Linux

  • Descargar el marco de Metasploit
  • Miramos el contenido del directorio:

root @ slogin: ~ cd metasploit-framework/embedded/framework/modules/auxiliary/dos

Todas estas son herramientas útiles para comprobar por vulnerabilidades DDoS en un sistema objetivo. También hay muchos programas útiles en Exploit Database.

Windows – LOIC

Low Orbit Ion Cannon (LOIC) es quizás el programa DDoS más popular. Esta herramienta permite a los actores de amenazas enviar solicitudes masivas a través de protocolos ICMP, por lo que UDP obstruye el canal al servidor de la víctima. El ataque LOIC más famoso fue llevado a cabo por el famoso grupo hacktivista Anonymous en 2009, comprometiendo los sistemas de compañías como PayPal, Visa y MasterCard como respuesta a su decisión de cortar las campañas de recaudación fondos de WikiLeaks.  

LOIC está disponible en el siguiente enlace.

HOIC

HOIC fue desarrollado durante la Operación Payback por Praetox por el mismo equipo que desarrolló LOIC, mencionan los expertos en pentesting. No obstante, a diferencia de LOIC, HOIC usa el protocolo HTTP con el fin de enviar un flujo de solicitudes HTTP GET y POST de forma aleatoria.

Los desarrolladores afirman que esta herramienta puede atacar hasta 256 dominios diferentes. HOIC puede ser descargado desde SourceForge.

VERIFICACIÓN DDOS PARA PRINCIPIANTES

Los expertos en pentesting señalan que este ejemplo se realizará en el sistema operativo Linux, por lo que habrá que instalar este sistema para luego escribir un comando y descargar la aplicación.

  • Cargue la extensión de archivo .c, que se encuentra siguiendo la ruta Home> xerxes
  • Entraremos en el siguiente directorio
  • Ahora compílelo desde el formato “.c” a “.exe” con el comando gcc xerxes.c
  • Luego tomamos cualquier sitio y lo indicamos en el terminal con una mención del puerto 80 para ejecutarlo
  • Si el sitio es vulnerable a ataques DDoS, dejará de abrirse

¿CÓMO PROTEGERSE DE UN ATAQUE DDOS?

Deje de usar Windows Server

La mayoría de los sitios ejecutados con Windows Server son altamente vulnerables a ataques DDoS, por lo que es altamente recomendable buscar otras opciones para trabajar.

Apache también es muy deficiente

Si tiene Apache, al menos podría considerar colocar un proxy de almacenamiento en caché, pues esta solución es altamente sensible a los ataques contra sus servidores. Acorde a los especialistas en pentesting, es posible atacar un servidor Apache incluso usando un smartphone o tableta usando el método Slowloris.  

Si desea seguir usando Apache, puede prevenir estos ataques usando parches como Anti-slowloris.diff, mod_noloris, mod_antiloris, mod_limitipconn y mod_reqtimeout.

Use el módulo testcookie

El módulo testcookie-nginx puede ser la defensa ideal contra ataques DDoS. Este módulo solo puede proteger sus sistemas contra bots, aunque es posible configurar funciones avanzadas como el procesamiento de redireccionamientos.

Acorde a los expertos en pentesting, testcookie-nginx actúa como un eficaz filtro entre los bots y el backend en un ataque DDoS, lo que permite filtrar las soluciones maliciosas y evitar que el sitio web atacado colapse. Esta verificación ocurre para escenarios como:

  • ¿Sabe el cliente cómo realizar la redirección HTTP?
  • ¿Es compatible con JavaScript?
  • ¿Es el navegador que dice ser?

La verificación se implementa mediante cookies utilizando diferentes métodos:

  • “Set-Cookie” + redireccionamiento usando la ubicación HTTP 301
  • “Set-Cookie” + redireccionamiento mediante meta actualización HTML

Si planea mantener testcookie de forma permanente, asegúrese de no desaparecer de los resultados de búsqueda; crea problemas para los usuarios con enlaces, navegadores w3m y similares; tenga en mente que este método no protege de bots equipados con un motor de navegador completo con JavaScript. En resumen, testcookie_module no es un método universal.

Red neural

Tomamos la red neuronal PyBrain, insertamos los registros y analizamos las solicitudes. En este caso, es muy útil tener access.log antes de que comience el DDoS, ya que describe casi el 100% de los clientes legítimos Además, los bots no son siempre visibles.

Análisis de errores

Analice el volumen de tráfico, el tiempo de respuesta del servidor y la la cantidad de errores. En nginx, el tiempo de respuesta del servidor se registra en el registro mediante dos variables: request_time y upstream_response_time. El primero es el tiempo total de ejecución de la solicitud, incluidos los retrasos de la red entre el usuario y el servidor; el segundo dice cuánto tiempo el backend completó la solicitud.

El valor upstream_response_time es extremadamente importante para sitios con mucho contenido dinámico y comunicación activa de front-end con la base de datos, y no debe descuidarse.

Seguimiento del número de solicitudes por segundo

En el caso de nginx, puede estimar aproximadamente este valor con el siguiente comando de shell. La variable ACCESS_LOG contiene la ruta al registro de solicitudes de nginx en el formato combinado:

echo $ (($ (fgrep -c “$ (env LC_ALL = C date – date = @ $ (($ (date \ +% s) -60)) +% d /% b /% Y:% H:% M) ”“ $ ACCESS_LOG ”) / 60))

En comparación con el nivel normal para esta hora del día, la cantidad de solicitudes por segundo puede disminuir o aumentar. Crecen si llega un bot grande, y caen si el bot colapsa el sitio, haciéndolo completamente inaccesible para los usuarios legítimos.

La caída en el número de solicitudes se observa precisamente debido a la estática. Pero, de una forma u otra, estamos hablando de cambios importantes en los indicadores.

Tcpdump

Esta es una herramienta de diagnóstico que permite descubrir errores en el kernel de Linux cuando se abre una conexión TCP, lo que puede resultar útil para prevenir ataques DDoS.

Tamaños de búferes en nginx

No es ningún secreto que cada recurso tiene un límite. En primer lugar, esto se aplica a la RAM, por lo que los tamaños de los encabezados y todos los búferes utilizados deben limitarse a valores adecuados por cliente y por servidor en su conjunto. Deben estar registrados en la configuración de nginx.

  • client_header_buffer_size__: Establece el tamaño del búfer para leer el encabezado de la solicitud del cliente. Si la cadena de solicitud o el campo de encabezado de solicitud no se ajusta completamente a este búfer, se asignan búferes más grandes, especificados por la directiva large_client_header_buffers
  • large_client_header_buffers: Especifica el número máximo y el tamaño de búferes para leer un encabezado de solicitud de cliente grande
  • client_body_buffer_size: Especifica el tamaño del búfer para leer el cuerpo de la solicitud del cliente. Si el cuerpo de la solicitud es más grande que el búfer especificado, entonces todo el cuerpo de la solicitud o solo una parte se escribe en un archivo temporal
  • client_max_body_size: Especifica el tamaño máximo permitido del cuerpo de la solicitud del cliente. Si el tamaño es mayor que el tamaño especificado, el error 413 se devuelve al cliente

Configurando tiempos de espera en nginx

El tiempo también es un recurso. Por lo tanto, el siguiente paso importante debe ser establecer todos los tiempos de espera:

  • reset_timedout_connection on: Ayuda a lidiar con los enchufes atascados en la fase FIN-WAIT
  • client_header_timeout: Especifica el tiempo de espera al leer el encabezado de la solicitud del cliente
  • client_body_timeout: Especifica el tiempo de espera al leer el cuerpo de la solicitud del cliente
  • keepalive_timeout: Especifica el tiempo de espera durante el cual el servidor no cerrará la conexión Keep-Alive con el cliente
  • send_timeout: Especifica el tiempo de espera al enviar una respuesta al cliente. Si pasado este tiempo el cliente no acepta nada, se cerrará la conexión

Limitar conexiones en nginx

Nginx también tiene la capacidad de limitar conexiones y solicitudes. Si no está seguro de cómo se comportará cierta parte de su sitio, lo ideal es que lo pruebe, comprenda cuántas solicitudes resistirá y escriba esto en la configuración de nginx. Supongamos que el sitio tiene secciones con nombres/descarga y /búsqueda que se explican por sí mismos. Al hacerlo, nosotros:

  • No queremos que los bots obstruyan la tabla de conexiones TCP con sus descargas
  • No queremos que los bots agoten los recursos informáticos del DBMS con muchas consultas de búsqueda

TENDENCIAS DDOS

  • El poder de los ataques a la red y las capas de transporte aumenta constantemente. Se ha alcanzado el potencial del ataque de inundación SYN promedio.
  • Los ataques al DNS han tenido una gran demanda últimamente. La inundación de UDP con solicitudes de DNS válidas con direcciones IP de origen falsificadas es una de las más fáciles de implementar y difíciles de contrarrestar los ataques. Muchas grandes empresas han experimentado problemas recientemente como resultado de ataques a sus servidores DNS
  • La proporción de bots equipados con un motor de navegador completo con JavaScript es todavía pequeña, pero está en constante crecimiento

RECURSOS CON LOS QUE ES MEJOR NO ENTROMETERSE

  • http: //viewdns.info/
  • https: //iphostinfo.com/

Y recuerde que todo lo anterior es para fines didácticos. Solo se puede usar en sus propios proyectos o con previa autorización de los operadores legítimos.