martes, 2 de octubre de 2012

Ataques DoS: De la fuerza bruta a la sutileza


Se llama ataque de Denegación de Servicio (Denial of Service, o por sus iniciales en inglés DoS) aquel tipo de ataque por el cual el atacante intenta interrumpir el servicio. Aunque puede haber muchas formas de hacerlo, la más común de ellas bombardeando al servicio con un anormal número de peticiones.

El ataque DoS se aprovecha de ciertas debilidades de la arquitectura TCP/IP.  La  primera de ellas es la inexistencia de un mecanismo de autentificación de la dirección IP que permite falsificar las direcciones de origen lo que hace muy difícil tanto bloquearlas por cortafuegos como rastrearlas hasta su origen.

Un poco de historia.
Hay que remontarse a la segunda mitad de los años 90 para tener noticias de los primeros ataques de Denegación de Servicio (en adelante los llamaré DoS). Estos primeros ataque eran de un único origen y con la dirección sin modificar lo que hacía relativamente sencillo identificarlos y bloquearlos.
Los ataques DoS con un único origen tenían además el inconveniente para el atacante de que era necesario un gran ancho de banda para que el servicio de interrumpiera sobre todo en los grandes sistemas.
La falsificación de las direcciones IP (IP spoofing) y la  posibilidad de coordinar el ataque desde diversos sitios (Distributed DoS, o DDos) volvió a inclinar la balance del lado de  los agresores.

Cortesia de http://www.sott.netPara complicar más la cosa a los defensores a principios de este milenio entra en escena un nuevo blanco para estos ataques: los DNS. Ya no se atacaba un servidor más o menos importante, si no que se atacaba al propio corazón de internet.




Se han ido desarrollando diversas técnicas para luchar contra estos ataques aunque, como en otras ramas de la seguridad no existe proceso finalizado si no estados de seguridad.



 ¿Quien está detrás de los ataques?.

Hoy en día realizar de ataque de DoS simple no tiene ninguna posibilidad de prosperar pues la batalla del ancho de banda está definitivamente ganada del lado de los defensores. No se puede decir lo mismo de los ataques Distribuidos.
Los ataques distribuidos necesitan detrás una importante infraestructura que quedan fueran del alcance del hacker solitario y por tanto son realizados por grupos organizados.
Hay tres tipos de grupos principales:

Cibercrimen.  Extorsión a empresas exigiendo dinero a cambio de no interrumpir sus servicios. Juegos online, pornografía suelen ser los principales objetivos de estos ataque (nada diferente de los gansters de los años 30, solo que han cambiado la thompson por el ordenador).
Ciber Guerra. Son acciones prepetradas por grupos militares o terrorista sustituyendo las armas físicas por armas cibernéticas. Tienes fines políticos, sabotaje industrial.

  
Hacktivismo. Puede considerar esta actividad como una desobidiencia civil dentro de la red. Sus fines generalmente son políticos o sociales y aunque generalmente parece que hay cierta alineación entre causas "justas" y este tipo de activismo no necesariamente es así
Hay una frontera que separa claramente el hacktivismo de los otros tipos: la voluntariedad. Los sistemas que actuan en un ataque DDoS hacktivista lo hacen de forma voluntaria (aunque puedan usar las técnicas de IP Spoofing) mientras que las otras organizaciones se suelen valer de equipos zoombies que has sido previamente infectados.  Independientemente de lo justa que sea la causa no debería considerarse hacktivismo a los ataques DDoS en los que esten envueltos sistemas con desconocimiento de sus propietarios.


Tipos de ataque

Inundación de Ping. Se trata del ataque más simple y que puede verse como una contienda pura de ancho de banda. Así pues necesita para tener éxito disponer de un elevado número de equipos implicados en este ataque. Como su propio nombre indica, se traca de enviar gran cantidad de tramas ICMP como para colapsar el ancho de línea del recepto.

Inundación de SYN. Para entender este ataque es necesario saber como funciona el Three Way Hand-Shake (protocolo de establecimiento de una conexión TCP).
Cuando un servidor recibe una petición de conexión (SYN), responde con un paquete de acuse de recibo de esta petición (SYN+ACK). En este momento se establece lo que se llama half-session. Este estado queda así hasta que el cliente le devuelve otro acuse de recibo.
Si el cliente no responde o la dirección es falta el servidor quederá un tiempo con la media sesión abierta. Una media sesión requiere unos recursos internos del sistema. Todo consiste en mandar los suficientes paquetes SYN para agotar todos los recursos del servidor en medias sesiones abiertas.
Aunque este ataque necesita menos ancho de banda que el de inundación de Ping tiene pocas posibilidades de prosperar si no se usa IP spoofing pues los modernos servidores rechazan automática peticiones de conexión que vienen de un mismo origen mientras tengan medias sesiones abiertas con ese origen.

Three Way Handshake



Inundación de peticiones de aplicación. Es el mismo principio de la inundación de SYN pero en el nivel 7 de la capa OSI. Se trata de impedir que pueda completarse la petición mediante de envío incompleto de una. Al no poder darse por completada los recursos no son liberados y el sistema acaba colapsado.

Dentro de cada tipo de ataque se pueden usar  bien paquetes corrientes o confeccionar paquetes especiales que aprovechen debilidades específicas de los sistemas atacados (no todos los sistemas se comportan igual ante paquetes extraño):
Ping de la muerte: Consiste en mandar un paquete mayor que el máximo soportado.
Paquetes con la dirección de origen que sea la misma que la del servidor lo que hace que el mismo servidor se bloquee.

Defensa

La defensa, pues tan clásicas como si estuviéramos en una guerra tradicional

Aumento de potencia: sistemas escalables, balanceadores de carga (tener mas artillería que el enemigo)
Cortafuegos: tanto de red como de aplicación (usar búnkeres más robusto).
Monitores:  Analizar de tráfico para detectar anormalidades. (Sistemas de inteligencia).

Resumiendo: mas potentes, mas resistentes y más listos. (Nada nuevo bajo sol).

Cookie incrustada en SYN.
Hago especial mención de esta técnica por lo elegante y sofisticada que es.  Aunque solo vale para los ataques de Inundación de SYN. Consiste en lo siguiente. cuando se recibe una trama SYN el sistema toda la información de la media sesión en el contador de la respuesta (SYN+ACK) y libera los recursos que fuera necesario.
Si se trata de una SYN atacante no habrá respuesta pero tampoco quedaran recursos hipotecados en el servidor. Si, por el contrario es una petición legítima el servidor solo tiene que restar uno al contador de secuencia y con los datos del contador de secuencia y con esos datos acaba de construir la sesión. El cliente es ajeno a todo esto y no es necesario tomar ninguna accion especial en el lado cliente.



Coockie SYN


Conclusión

Los ataques DDoS forman un frente abierto todavía y que ha evolucionado desde los ataques de fuerza bruta a nivel de red hasta los modernos ataques en el nivel de aplicación mediante el envío de sofisticados paquetes.
La aparición de modernos toolkits que permiten cada vez organizar ataques de DDoS con menos recursos (y conocimientos) está causando que cada vez aumenten los ataque de este tipo.
Y frente a este lado oscuro tenemos los cada vez más potentes sistemas, balanceadores, sofisticados firewall todos ellos con la delicada tarea no solo de impedir estos ataques si no de permitir que las peticiones legítimas puedan llegar a su destino.
Un frente más de batalla.

No hay comentarios:

Publicar un comentario