jueves, 28 de marzo de 2013

Cloud DDoS Services Parte 1

A partir de 2007 se ha visto una masificación de ataques  DDoS como consecuencia de la proliferación de servicios del mercado negro que ofrecen a sus clientes dejar cierto tiempo por fuera un website (DDoS as service), incluso muchos de estos servicios ofrecen de 5 a 30 minutos gratis, después de los cuales se deberá realizar el pago correspondiente.
Una de las mayores motivaciones para llevar a cabo este tipo de ataques son arruinar la imagen de la competencia asi como acciones tomadas por grupos hacktivistas como Annonymus o LulzSec utilizan herramientas como LOIC para generar denegacion de servicio distribuida en vos de "protesta", existen otros fines un poco más oscuros como lo sucedido esta semana a Spamhaus.

Estos ataques son llevados a cabo por botnets las cuales tienen miles o incluso millones de bots a su mando y que se encuentran en capacidad de agotar el ancho de banda de un determinado portal web, la cantidad de trafico total generada por toda la botnet es tan significativa que supera el ancho de banda contratado generando lentitud en los usuarios e indisponibilidad del servicio, otra modalidad de DDoS es provocar en el servidor ausencia de recursos ya sea a través de múltiples peticiones (http request) o pocas peticiones pero degradantes de tipo low and slow (Slowloris). Incluso existen ataques que buscan saturar al punto máximo las sesiones que soporta un Firewall  provocando drop de paquetes legítimos.

Bueno el fin de este post es comentar un poco sobre las soluciones que hay actualmente para mitigar este tipo de ataques:




Así que por un lado tenemos a Cloudflare por un lado y en el otro a  Imperva (Incapsula) dos de los servicios más populares en el mercado, los cuales ofrecen tanto versiones gratuitas como versiones pagas, la diferencia radica en las funcionalidades que ofrecen, desde estadísticas de trafico hasta WAF (Web application Firewall) ,asi como GeoIP block, igualmente en los planes ofrecidos varia el ancho de banda que puede soportar una página bajo ataque, bueno en otro post evaluaremos las distintas funcionalidades, por ahora explicaremos ¿como funcionan estas soluciones ?



Tanto Cloudflare como Incapsula  re direccionan todo el trafico del website hacia sus servidores, ¿como lo hacen? Simplemente se realiza un cambio en los DNS donde tengas registrada tu pagina, supongamos que una página www.example.com tiene un registro tipo A apuntando a la dirección  IP 192.0.43.10, tanto Cloudflare como Incapsula te solicitaran cambiar este registro A para que apunte ya no a la 192.0.43.10 sino a 199.83.129.18 para el ejemplo (direcciones IP de Incapsula o Cloudflare), de igual forma debes realizar un regstro CNAME para los "www" que apuntaran a un dominio de tipo yolal.xincapdns,net en el ejemplo, los cambios en los registros serán suministrados después del registro .Es de aclarar que cualquier registro CNAME que tengas de un subdominio del portal a proteger, para el ejemplo  ftp.example.com lo deberás cambiar, ya que si no lo haces puedes afectar el acceso a estos subdominios. Acá podemos encontrar mayor información sobre cómo realizar la configuracion para GoDaddy para Incapsula.




Con este truco garantizamos que estamos enviando todo el tráfico hacia los servidores de Imperva o  Cloudflare de manera similar funcionan los servicios Antispam en la nube como el que ofrece Microsoft, estos realizaran el filtrado  e inspección y reenviaran el tráfico "limpio" a la IP donde está registrada el servicio en el ejemplo la IP 192.0.43.10.

Hasta aquí todo correcto; sin embargo hay algo que me he dado cuenta que muchos proveedores que ofrecen esta solución o muchos que la tienen imprentada omiten una configuración muy importante, la cual es filtrar las IPs Proxy de Cloudflare o Imperva en el Firewall desde donde envían el trafico limpio a nuestro website, es decir crear una regla permita solamente el acceso desde estas IPs, esto nos garantiza de que el sitio va ser accedido solamente a través de la solución y no va a ser saltado (bypass) accediendo a el website a través de la IP pública (ejm http://192.0.43.10/index.php).
 

permit tcp ip_pool_proxy_incapsula  host 192.0.43.10 eq http
deny any any

Bueno esta fue una breve descripción de cómo funciona el servicio, en las siguientes entradas abarcaremos las soluciones con mayor profundidad.