El presente documento tiene como objetivo explicar y ayudar a mitigar ataques tipo LOIC (Low Orbit Ion Cannon), que actualmente se encuentran de moda debido a su facilidad de uso.
Antecedentes
LOIC es una aplicaci贸n Open Source dise帽ada espec铆ficamente para atacar redes, esta escrita en C# y fue desarrollada inicialmente por Praetox Technologies, despu茅s fue liberada al dominio publico.
Dicha herramienta realiza ataques de DoS (Denial-of-Service) y DDoS (Distributed DoS) en un sitio destino mediante saturaci贸n de paquetes TCP, UDP o peticiones HTTP; con la intenci贸n de interrumpir el servicio.
La popularidad de dicha herramienta radica en su simplicidad de uso, cualquier persona a煤n sin conocimientos inform谩ticos, puede realizar dichos ataques o contribuir a ataques de gran volumen simplemente descargando un programa, o ejecutando la versi贸n web. Un claro ejemplo es el caso de MVS, un ataque coordinado mediante twitter que afecto considerablemente el servicio dejandolo inaccesible por periodos de tiempo.
Medidas preventivas
Como medida principal lo importante es contar con reglas de firewall correctamente configuradas y con limites bien definidos para limitar la cantidad de peticiones realizadas al servidor por un cliente.
A modo de ejemplo, en el firewall se podr铆a definir un limite de 100 conexiones por cliente, con un ratio de 80 conexiones en un periodo de 5 segundos para el servicio Web, y asumir que s铆 se tiene una cantidad mayor de conexiones, es un intento de ataque.
Es necesario realizar los c谩lculos correspondientes para definir un limite adecuado y no filtrar peticiones legitimas.
Como ejemplo se muestras las reglas de firewall (PF de OpenBSD sobre FreeBSD), que utiliza uno de nuestros servidores:
tablepersist file "/etc/pf/abuse.hosts" pass in on $host_pub_if proto tcp \ from any \ to $vps_addr port $vps_in_tcp_ports flags S/SA keep state \ (max-src-conn 100, max-src-conn-rate 90/6, overload flush) block in log on $host_pub_if from to any
Como se puede apreciar, el limite m谩ximo son 100 conexiones por cliente con una velocidad de 90 en un periodo de 6 segundos, en el evento de recibir mas de esas conexiones, est谩s se agregan a una tabla de hosts que son filtrados durante un periodo de tiempo.
En caso de no poder realizar modificaciones al firewall o no tener dicha funcionalidad, lo ideal es proteger el servicio web con herramientas adicionales; un proxy, balanceadores, o m贸dulos adicionales que realicen funciones similares a las del firewall son buenas alternativas.
En el caso del servidor Web Apache existen varios m贸dulos que puede ayudar a mitigar el ataque, algunos de ellos son los siguientes:
mod_bandwidth (Apache 1.3)
mod_bw (Apache 2.x)
mod_cband (Apache 2.x)
mod_limitipconn (Apache 1.3)
mod_limitipconn2 (Apache 2.x)
mod_bandwidth y mod_bw sirven para limitar el ancho de banda que consume un cliente as铆 como el n煤mero total de conexiones por vhost.
mod_cband es similar a los anteriores pero con un control mas preciso sobre la cantidad de conexiones por cliente y vhost.
mod_limitipconn y mod_limitipconn2 permiten limitar el n煤mero de conexiones simultaneas que puede hacer un cliente.
Conclusi贸n
Este tipo de ataques es dif铆cil de limitar, pero no imposible, lo mas importante de todo es estar al tanto de los servicios para detectar oportunamente cuando alguno comienza a fallar y solucionar el problema de inmediato. Herramientas como nagios, zabbix, centreon, etc; nos ayudar谩n a esta tarea, pero eso queda pendiente para un articulo posterior.
Autor
Angel Gabriel Le贸n Rodr铆guez