13 septiembre, 2011
La herramienta se llama LOIC y se ha hecho muy popular en los últimos tiempos por ser protagonista de muchos ataques. Ahora vamos a hacer un análisis acerca de esta herramienta, cómo funciona y qué peligros pueden tener.
Inicialmente esta herramienta fue escrita en C#, y su nombre hace referencia a “Low Orbit Ion Cannon”, un arma ficticia que aparece en el juego “Command & Conquer”. Ahora podemos encontrar ports a otros lenguajes, como Python, Java, Perl, C y C++
Funcionamiento:
El funcionamiento de esta herramienta se basa en realizar muchas conexiones (a razón de varios miles por segundo), tanto TCP como UDP, hacia un objetivo, con el fin de agotar todos sus recursos, ya sea de procesamiento, memoria o ancho de banda. Esta es una técnica de los más común cuando se busca tirar un servidor por agotamiento de recursos, pero veremos que esta herramienta tiene algunas particularidades interesantes.
Ataques distribuidos:
Una de las características más llamatias de LOIC es la capacidad para coordinar ataques. Como una sola PC no suele poder agotar todos los recursos de un servidor, se ha creado un modo de ataque distribuído, en el cual cada PC que tenga esta herramienta instalada cede el control de su máquina a un operador central, que administra cómo, cuándo y hacia dónde se harán los ataques.
Esta administración remota se realiza utilizando el protocolo IRC, que es un protocolo simple de envío y recepción de texto, utilizado habitualmente como plataforma de chat.
El funcionamiento de esto es muy similar a las redes zombies, pero con una gran diferencia: Nosotros debemos aceptar que la herramienta ataque, porque LOIC no funciona como un malware. Ataca solamente si nosotros descargamos el software.
Peligros asociados:
En el caso de los ataques de DoS a equipos ajenos a nosotros, está de más aclarar que son ilegales. Además de ser fácilmente rastreable por los registros de conexión de los servidores y los proveedores de internet.
Pero existe un peligro que muchas veces no vemos, y es el de instalar una herramienta que está desarrollada para hacer daño y permite que otra persona controle nuestra PC. Básicamente, si una persona puede controlar a quién yo ataco, no solamente estoy atacando, si no que estoy dándole el control a otra persona de mis ataques. Como si esto fuera poco, este tipo de herramientas son complejas y sólo las personas con un buen entendimiento de los lenguajes de programación van a poder comprender exactamente qué es lo que hacen. Así que no se puede tener la certeza de que controlen otros parámetros de nuestras PC.
Por otro lado, varias de las versiones que se pueden descargar de Internet ya vienen compiladas, así que no podemos analizar el código fuente. Y, si bien se entrega un código fuente adjunto a las versiones compiladas, no podremos comprobar que sea el código correspondiente. Por lo tanto, la única forma que tenemos de estar seguros de qué hace esta herramienta es analizar línea por línea todo el código fuente y compilarlo nosotros mismos.
Si tienen muchas ganas de hacer esto, para entender cómo funciona la herramienta, tengan extremo cuidado y no la utilicen para atacar servidores públicos. Por supuesto, no permitan que otro controle lo que su PC hace, porque pueden terminar pagando las consecuencias de los actos delictivos de otras personas. Y verifiquen en todo momento hacia dónde se está conectando su PC, para comprobar que realmente la herramienta hace lo que ustedes quieren que haga. También recomiendo, de ser posible, utilizar una máquina virtual para instalar, ya sea para probar ésta o cualquier herramienta de hacking. Esto nos va a permitir poder eliminar la máquina virtual sin mayores inconvenientes en caso de necesitar hacerlo.
Contramedidas:
Algo muy importante a tener en cuenta es cómo defender nuestros servidores de este tipo de ataques. Principalmente, debemos saber que este tipo de ataques es fácilmente detectable si utilizamos un firewall o un sistema de prevención de instrusos.
Para analizar un ejemplo práctico con Linux vamos a crear reglas de iptables que descarten este tipo de conexiones para que nuestro servidor no las procese.
iptables -F
iptables -X
iptables -A INPUT -p TCP -m state –state NEW –dport 80 -m recent –set
iptables -A INPUT -p TCP -m state –state NEW –dport 80 -m recent –update –seconds 60 –hitcount 5 -j DROP
iptables -A INPUT -p TCP -m state –state NEW –dport 80 -j ACCEPT
Las primeras 2 líneas borran las reglas anteriores de iptables. Esto nos sirve para saber que siempre aplicamos reglas sobre una configuración limpia.
La 3ra línea deja un registro de la dirección IP origen por cada conexión nueva al puerto 80
La 4ta línea verifica que no se hayan registrado más de 4 conexiones desde una misma dirección IP en los últimos 60 segundos. De ser así, empieza a descartar las conexiones de esa dirección.
La 5a línea acepta la conexión (si es que la 4ta línea no la rechazó)
Con esto vamos a poder controlar un poco este tipo de ataques. Y digo un poco porque debemos tener en cuenta que iptables también consume recursos, aunque muchos menos que un servidor web. Es una excelente práctica de seguridad aplicar esta configuración en un equipo que se encuentre antes del servidor web, y que actúe como un firewall, dedicado exclusivamente a filtrar conexiones.
Esta solución es rápida y eficaz, pero si queremos algo más avanzado, podemos utilizar un sistema de detección de intrusos, que pueda bloquear las direcciones IP por más tiempo (iptables volvería a permitir conexiones cada 1 minuto) y realizar otras acciones más complejas.
Una excelente opción puede ser snort, que es un sistema de detección de intrusos de código abierto.
Si son usuarios de otras soluciones de seguridad, como Checkpoint, Fortinet, Cisco, Juniper, etc, todos cuentan con sus propias herramientas para bloquear y dejar registro de este tipo de ataques.
Para más información:
LOIC: http://es.wikipedia.org/wiki/Low_Orbit_Ion_Cannon
IRC: http://es.wikipedia.org/wiki/Internet_Relay_Chat
IPTABLES (tutorial): http://www.frozentux.net/iptables-tutorial
SNORT: http://www.snort.org/
Aprovecho estas líneas para agradecer a nuestros fieles lectores y comentarles que, debido a la gran cantidad de consultas al respecto, hemos firmado un acuerdo con un importante instituto de capacitación junto con el cual creamos una carrera de seguridad informática, con el fin de capacitar tanto a profesionales como a cualquier persona que esté interesada en aprender acerca de la seguridad de los sistemas de información.
Para más datos: www.portantier.com/educacion
Nos vemos en la próxima entrega, saludos!
Fabian Portantier
www.portantier.com
En twitter: @portantier