Posts Tagged ‘IPv6’

SLAAC attack: el “hombre en el medio” de IPv6

07/04/2011

Investigadores de InfoSec Institute han descubierto una nueva forma de robar el tráfico de una red interna gracias a la configuración por defecto de IPv6 en Windows y MacOS X. Se trata de una especie de hombre en el medio, pero mucho más sencillo que las técnicas habituales en IPv4 (por ejemplo arp-spoofing). Al ataque se le ha llamado SLAAC, pero no se trata de un 0 day, como proclaman.

Obtener y redirigir el tráfico de una red interna hacia una máquina controlada por un atacante es una técnica conocida en el mundo de IPv4. Envenenar la caché ARP de los sistemas, es uno de los métodos más empleados. Ahora, el ataque SLAAC consigue el un efecto parecido pero de forma más "limpia".

En qué consiste

El atacante debe introducir un router (o algún dispositivo que actúe como tal, puede ser su propio ordenador) en la red interna con dos interfaces (virtuales o no): una de cara a la red interna, que soporte solamente IPv6 y otra con la conexión a Internet (solamente IPv4). En esos momentos existirá una red adicional IPv6, pero el atacante no controlará el tráfico. El intruso comenzará a enviar RA (router advertisements, anuncios de rutas), que es una especie de DHCP para IPv6. El objetivo es que el tráfico pase a través de la interfaz IPv6 sin que los clientes noten nada y esto se consigue gracias a una especificación obsoleta.

NAT-PT es un mecanismo que permite traducir de IPv4 a IPv6 y viceversa para que dispositivos que soporten una u otra versión puedan comunicarse. Un protocolo ideado para facilitar la migración entre redes que fue abandonado en 2007 porque resultaba demasiado complejo, contenía demasiados errores. El método es definir en el router un prefijo IPv6 e incrustar en los últimos 32 bits una dirección IP versión 4, que según el ataque previsto, debe coincidir con un servidor DNS del propio atacante, situado en la interfaz IPv4 del router (en Internet). Si se configura adecuadamente ese router del atacante para que se encargue de traducir (a través de NAT-PT) las direcciones IPv6 de las víctimas a IPv4, se consuma el ataque, engañando al usuario para que crea que su servidor DNS es el del atacante.

El siguiente paso es hacer que los sistemas operativos usen la red IPv6 (y sus DNS) creada paralelamente… y que lo hagan rápido (si no responde a tiempo, se usaría el DNS legítimo). Esto se consigue de forma muy sencilla por dos razones: La primera es el uso de Application Layer Gateways (ALGs), que es necesario en NAT-PT para hacer NAT en protocolos "especiales" como FTP. La segunda es que los sistemas operativos modernos prefieren siempre utilizar IPv6 (se han diseñado así para, presumiblemente, facilitar la migración tan deseada que parece que nunca llega).

En resumen, la víctima utiliza sin darse cuenta el DNS del atacante para resolver direcciones y, por tanto, puede ser redirigido a cualquier página (que no use certificados) de forma transparente.

Por qué ocurre

Gracias a Stateless address autoconfiguration (SLAAC) los sistemas operativos como Windows y Mac OS X, preferirán usar IPv6 en una red siempre que sea posible. IPv6 está ideado para autoconfigurarse al máximo. Por tanto, obtendrán automáticamente información del router fraudulento introducido por el atacante sin que se note, y comenzarán a usar su servidor DNS fraudulento. Además, es poco probable que en una red exista algún router IPv6, por tanto el atacante no tendrá "interferencias".

Aunque en InfoSec proclamen que se trata de un 0 day, está lejos de la definición formal de ese concepto. Según ellos, se han puesto en contacto con Microsoft y comentan que valorarán el problema.

Ventajas e inconvenientes del ataque

Estos problemas con routers "rogue" ya son más que conocidos en entornos IPv4, e incluso en entornos IPv6 existe software para simularlo. Pero hasta ahora se tomaban más como una molestia que como un ataque. Esta prueba de concepto confirma un escenario y un método de "aprovechamiento" viable.

El ataque SLAAC tiene además una serie de ventajas. Por ejemplo, no es necesario alterar la red IPv4 de la víctima (ni la caché ARP de los equipos…), ni siquiera utilizar una dirección IP de esa red. Se aprovecha de forma limpia una funcionalidad (no un fallo) de los sistemas modernos: preferir IPv6 sobre IPv4.

El ataque también tiende a ser silencioso: la red IPv4 y por tanto, sus sistemas de defensa y monitorización "tradicionales", no son alterados.

Recomendaciones

Simplemente, como siempre, deshabilitar lo que no se utilice. En este caso, el soporte IPv6 desde las propiedades de red.

Fuente

=-=-=-=-=
Powered by Blogilo

Resumiendo un poco sobre IPv6

27/09/2010

Es un protocolo de red que substituye el viejo IPv4, y tiene varias ventajas:

* Direcciones

Las direcciones en lugar de medir 4 octetos miden 16 octetos (128 bits), por eso se representan con:

XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX

donde las X son dígitos en hexadecimal, ‘0’ a ‘9’ y ‘A’ a ‘F’, lo cual como te imaginarás simplifica el trabajar con máscaras.

Cuando hay muchos ceros juntos se abrevia con ::

Ejemplo, la dirección de fideo es: 2001:470:d870::1, aunque en realidad al no abreviar queda: 2001:0470:d870:0000:0000:0000:0000:0001

Las máscaras se expresan con /n y no con 255 y ceros. Por ejemplo la red de mi casa es 2001:470:d870::/48

Los 64 bits de la derecha se suelen dejar para el host, por lo cual es importante que nuestro ISP nos dé una red con máscara menor o igual a 64.

* Rendimiento

En IPv6 todos los campos están alineados a su tamaño, esto es especialmente importante en arquitecturas RISC, dado que al cargar un puntero desalineado

suelen generar una excepción, que el kernel tiene que resolver demorando la cosa bastante más.

Por otro lado está el tema de que finalmente en IPv6 desaparece el concepto de broadcast, y se simplifica bastante al usar multicast ff::/8, ya no se utiliza ARP para resolver las direcciones, sino ICMP, y debido a su funcionamiento, disminuye significativamente el tiempo de procesador necesario, y por tanto aumenta el ahorro de batería en dispositivos móviles, dado que solo es necesario interpretar una mínima parte de estos paquetes ICMP.

También disminuye carga de procesador sobre los routers al no poder fragmentar los paquetes, además al estar casi que obligados los hosts a realizar MTU discovery, se logra que los hosts maximicen el rendimiento de las redes.

* Facilidades

Con IPv6 se hace prescindible DHCP, al poder utilizar autoconfiguración sin estado, esta autoconfiguración la realiza el kernel automáticamente y ya no es necesario ningún daemon en el cliente, ni nada parecido.

Al tener más direcciones disponibles ya no es necesario NAT, esto hace mucho más fácil configurar los routers, los firewalls, etc… Al no tener NAT, se vuelven más fáciles de usar y configurar los protocolos basados en UDP sobre internet, o protocolos raros como SIP.

Se hace bastante más fácil implementar IPSec en IPv6.

* Desventajas:

IPv6 está "normalizado" por demasiados RFC, y hacer algo estándar implica andar siguiendo montones de RFC.

Es necesario "volver a aprender el nuevo protocolo", y hay mucha gente vaga.

Todavía, aún hoy, hay programas que lamentablemente no soportan IPv6.

=-=-=-=-=
Powered by Blogilo