[APORTE] ¿Que es un ataque DOS/DDOS?

Iniciado por Bartz, Mayo 06, 2018, 10:04:37 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Hola gente !

En este post explicare que son y como funcionan los ataques de Denegación de Servicio (DOS y DDOS).
Me gustaria que si tienen alguna mejora o notan algun error lo dijeran en los comentarios y asi poder mejorar el post  ;D



Denial of Service (DoS)


Es un ataque que causa que un servicio sea inaccesible a los usuarios para los que esta implementado.

Este ataque provoca la perdida de conectividad por el consumo de ancho de banda o sobrecargando los recursos del sistema mediante una determinada cantidad de solicitudes al mismo.

Cuando uno escribe la URL de un sitio, se esta enviando un pedido de conexión al servidor para ver la pagina. El servidor puede procesar un determinado numero de solicitudes al mismo tiempo. Si un atacante sobrecarga el servidor con solicitudes, no puede procesar la nuestra, por eso es que se llama "denegación de servicio", porque un usuario legitimo no puede acceder al sitio.

Una variante de este es el ataque "Distributed Denial of Service" (DDoS), en cambio al ataque DoS donde el atacante es solo uno, en este los ataques o solicitudes de conexión se originan desde muchos nodos (Ej desde una 'botnet') haciendo imposible frenarlo mediante banear a un solo solicitante, de ahi la palabra 'distribuido' del nombre.
Hace poco se vio lo que dice haber sido el ataque DDOS mas grande de la historia alcanzando 1.35Tbps los cuales fueron enviados a través de 126.9 millones de paquetes por segundo.
Aquí la noticia en genbeta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Hoy en dia las botnets llegan a ser inmensas, estas se consiguen infectando terminales vulnerables con determinado tipo de malware, utilizando diversas tecnicas desde el "phishing" o por ejemplo codigo malicioso JS al visitar algun sitio web.
Ejemplo del trafico que puede generar una botnet:
"3000 hosts * 128 KiB/s (upstream) = 384000 KiB/s = 375,00 MiB/s"

El crecimiento de estas se ve incrementado el ultimo tiempo gracias a la gran cantidad de dispositivos (Ej. moviles vulnerables) y ademas por el constante incremento del IoT (internet of things) en el cual la seguridad de los dispositivos claramente no es prioridad para los desarrolladores ni una cuestion de interes para los usuarios.


Ejemplo de ataque DDOS mediante una BOTNET



ALGUNAS TECNICAS DE ATAQUES DOS Y DDOS



IP FLOODING

Consiste en la generación de tráfico con el objetivo de conseguir la degradación del servicio de red. De esta forma, el atacante consigue un gran consumo del ancho de banda disponible ralentizando las comunicaciones existentes en toda la red.
Se da principalmente en redes locales dónde el control de acceso al medio es nulo y cualquier máquina puede enviar/recibir sin ningún tipo de limitación en el ancho de banda consumido



BROADCAST

En este tipo de ataque se utiliza la dirección de identificación de la red IP (broadcast address) como dirección de destino del paquete IP. De esta forma, el router se ve obligado a enviar el paquete a todos los ordenadores pertenecientes a la red, consumiendo ancho de banda y degradando el rendimiento del servicio.


SMURF

Este tipo de ataque se basa en falsear las direcciones de origen y destino de una petición ICMP de ECHO (ping)
Como dirección de origen colocamos la dirección IP de la máquina que va a ser atacada. En el campo de la dirección de destino situamos la dirección broadcast de la red local o red que utilizaremos como atacante para colapsar al sistema elegido (incluso se utilizan direcciones propias del ISP)




EJEMPLO PRACTICO


Caso de un DoS "Ping of Death"
Se trata de un ataque muy basico pero se logra entender el concepto.


En este caso se utiliza el ping como metodo de ataque, enviandolo repetidas veces

Hacemos ping a la web deseada para saber el IP de la misma y luego con el comando "-t" lo podemos enviar de forma repetida y con el comando "-l" se elije el peso del paquete en cuestion



Ya teniendo la IP de la victima procedemos a escribir el comando que en este caso seria  "ping 173.194.41.223 -t -l 15000"  como se muestra a continuacion



En el caso de que el ping nos de una respuesta con un mensaje "Tiempo de espera agotado" significa que la cantidad de bytes es muy alta, se debe regular hasta saber la capacidad maxima soportada por ping.
Para que el ataque resulte exitoso nuestro ancho de banda debera ser mayor que el de la victima para poder enviar mas paquetes de los que puede responder.


SYN Flood Attack

Este tipo de ataque consiste en el envio de paquetes manipulados a la maquina objetivo, en el protocolo TCP/IP las banderas (flags) tienen diferentes funciones como marcar el inicio y final de una conexion, SYN, SYN-ACK, ACK, en este ultimo esla clave de este ataque o tecnica.

El SYN flood procede activando el SYN en la conexion TCP y alterando la IP objetivo (spoofing), la victima responde con un SYN/ACK considerando que se trata de una conexion legitima y espera po un ACK por parte del cliente.

El objetivo seria que este ultimo ACK nunca llegue logrando que la secuencia no se complete y asi ocasionar que la maquina objetivo se sature de conexiones sin dejar lugar a conexiones legitimas.


Eleji esta tecnica porque es la mas utilizada por el grupo hacktivista "Anonymous" y la aplican mediante sus dos conocidas herramientas llamadas "LOIC" (Low orbit ion cannon) y HOIC (High orbit ion cannon).
Estas pueden ser manejadas por el usuario directamente o utilizando un canal de IRC en un ataque distribuido enviando por ese medio ordenes a los demas puntos de ataque.

A continuacion sigo exponiendo este ataque mediante la herramienta HPING3, una herramienta de pruebas a reglas de firewall, stress testing, manipulacion de paquetes, etc.



En la herramienta se pueden saber todas las opciones utilizando el comando  "hping3 -h"
En este caso se utilizaran los siguientes parametros desde cada una de las maquinas atacantes:

-S         setea el flag SYN
–flood   Envia paquetes lo mas rápido posible. No se muestran respuestas.
–rand-source Simula diferentes orígenes aleatoriamente al enviar los paquetes.
-d    Establece el tamaño del cuerpo del paquete (expresado en bytes). Este valor puede variar.
-p     Indica el puerto de destino

Es necesario contar con privilegios de superusuario para poder utilizar el comando "SUDO"

Teniendo en cuenta que el target es 192.168.1.109, que se utiliza el flag SYN y que se hara de tipo "flooding" con cada request y al puerto HTTP el comando quedaria de la siguiente manera

Código: php
 sudo hping3 -S 192.168.1.109 --flood --rand-source -d 5000 -p 80 
 

Se podrian utilizar diferentes valores pero con estos parametros es suficiente para lanzar un DDOS contra el puerto HTTP de la victima desde todas las maquinas simultaneamente

Al analizar el trafico en la maquina objetivo se veria algo asi:



El sitio se volvio inaccesible por la cantidad de requests que tiene que procesar el servidor


El ataque puede durar unos pocos minutos asi como el tiempo que uno desee.
En este caso el ataque se dio en un entorno de prueba dejando de lado intermediarios que podrian llegar a ayudar a tener una defensa, routers, proxies, firewalls, hardware/software dedicado a la defensa contra este ataque, etc.



Digame, ¿Como puedo defenderme? :-[



No es tarea fácil mitigar este tipo de ataques, en cuanto a los  ataques  DOS/DDOS  indirectos, que son en los que se falsea la dirección  de origen,  pueden  solucionarse mediante técnicas de filtrado de entrada y salida.
En cambio los ataques directos siguen siendo inevitables debido a que no se los puede distinguir del trafico normal de la red.

Actualmente la detección de estos ataques esta bastante desarrollada principalmente por los sistemas de detección de intrusos (IDS) para los cuales existen tipos de filtros específicos, lo cual brinda una ayuda destacable pero no suficiente.
Organismos como CISCO recomiendan soluciones sencillas como modificar el tamaño de la pila de TCP o disminuir el tiempo de espera de establecimiento de las conexiones e incluso han desarrollado hardware especifico para la tarea de prevención de este tipo de ataques.

Algunas consideraciones a tener en cuenta por ejemplo seria limitar las conexiones entrantes, por ejemplo si una empresa solo hace negocios en argentina, permitir solo conexiones entrantes desde dicho país, es decir que si alguien intenta conectarse desde china, europa, EEUU, etc. las peticiones de conexión sean rechazadas.

En una empresa hay que tener contemplado el costo de estar offline determinada cantidad de tiempo e incluir este tipo de ataques y el costo que esto indica dentro de la política de recuperación de desastres.
Existen empresas que se dedican a la defensa contra ataques DDOS que llegan a ofrecer lo que se le dice "ingestión de trafico" que se consigue  redirigiendo el trafico por sus servidores, analizándolo y solo dejando pasar lo que parezca legitimo.

Asimismo existen soluciones como scripts que si detectan mas de "x" conexiones de cierta IP la banea automáticamente.
Al aplicar este tipo de medidas hay que tener muy en cuenta los falsos positivos ya que no queremos banear la ip de nuestros usuarios, por lo que debemos conocer y estudiar nuestro trafico habitual.

Podemos decir que nadie esta a salvo de este tipos de ataques por lo tanto lo mejor que se puede hacer es prevenir, analizar el trafico buscando irregularidades y en el peor de los casos estar preparados para responder antes de que sea "demasiado tarde"



Espero haya sido claro y les sea de ayuda !
Saludos ! ;D




Con la fuerza del mar, con la paz del rio


Oye men y si ejemplo se maneja va un tipo de software ej un juego o una aplicación con conexión a Internet   sin conocer la pag web como obtenemos la ip de la aplicación como tal ? para dar un DoS o un DDoS ?
Gracias por tu post es bastante bueno y muy completo