¿Por qué es mejor deshabilitar el protocolo IPv6 si no lo utilizamos?

Escrito por Dámaso de la Torre
Redes
0

IPv6 supone una gran cantidad de cambios y de mejoras en todos los ámbitos, velocidad, seguridad, etcétera. Desaparecen protocolos como ARP, aparecen otros nuevos como ICMPv6, DHCPv6, NDP y cambia la forma en la que trabajamos en la capa de red.

Anteriormente en RedesZone, hemos hablado sobre los principales cambios que se avecinan ante la implantación de IPv6 en todos los sistemas de información, los operadores ya tienen todo listo para el despliegue masivo, aunque habrá una convivencia con ambos protocolos.

Curiosamente la mayoría de los técnicos con los que he comentado este tema opinan que es algo de lo que no hay que preocuparse ya que afecta sobre todo a las IP’s públicas y por tanto a los dispositivos que están conectados a Internet, y no a las redes locales de las empresas para las cuales no hay problema por el agotamiento de las direcciones IP versión 4.

En realidad no es así, actualmente y debido a que se procura la rápida utilización de este nuevo protocolo, IPv6 viene implantado en muchos sistemas operativos actuales: Windows XP desde el Service Pack 2, (aunque hay que activarlo manualmente), Windows Vista y las versiones posteriores como Windows 7, 8 traen IPv6 activado por defecto, las versiones Server de Windows, también vienen con IPv6 activado por defecto. En Linux desde el kernel 2.6 viene con IPv6 activado por defecto, salvo algunas distribuciones especiales. Es decir, lo que realmente está funcionando en las conexiones SMB, DNS o incluso web de la Intranet, es protocolo IPv6. 

IPv6 en nuestro sistema operativo

Para comprobar que tenemos instalado IPv6 en nuestro ordenador basta con entrar en la ventana de propiedades de TCP/IP y veremos como aparece junto a propiedades de TCP/IP.

ipv6_win_1

Al que se accede desde el botón “Inicio / Panel de control / Centro de redes y recursos compartidos”.

ipv6_win_2

Y pinchando sobre “Conexión de área local” y pinchando después en el botón “Propiedades”. Otra forma sencilla de comprobarlo es abriendo una ventana del símbolo de sistema de MS-DOS y escribiendo el comando “ipconfig”.

ipv6_win_3

Esa dirección que aparece junto a “Vinculo: dirección IPv6 local” es nuestra dirección IP de Link-Local o enlace local que se auto asigna el interfaz para poder empezar a trabajar con el protocolo IPv6.

Pero no sólo en el ámbito de los sistemas operativos de escritorio, los demás dispositivos que se conectan a la red también contemplan la posibilidad de utilizar IPv6, por ejemplo los dispositivos de Cisco soportan IPv6 de manera completa desde la versión 15 de su iOS aunque anteriormente ya la soportaban en menor grado. Los firewall, los IDS, los sniffers, los terminales móviles, tabletas, y otros dispositivos también  soportan IPv6. El problema no viene de la falta de soporte, el problema viene del desconocimiento de los usuarios y peor aún, de los técnicos, de qué tipo de funcionalidad IPv6 soportan los dispositivos con los que trabajamos.

El que un dispositivo soporte IPv6 y que no se configure adecuadamente dicho soporte, es lo que genera una gran cantidad de vulnerabilidades que al ser desconocidas e ignoradas, dejan nuestra red expuesta a múltiples tipos de ataques de los que somos ignorantes.

IPv6 en el administrador de dispositivos

Si entramos en Administración de equipos, pinchando el botón Inicio, botón derecho sobre la opción “Equipo” y escogiendo la opción “Administrar” nos aparece el cuadro de dialogo de “Administración de equipos”.

Pinchando con el botón derecho del ratón sobre la opción “Administrador de dispositivos”que aparece en el marco de la derecha y escogiendo las opciones “Ver / Mostrar dispositivos ocultos” y desplegando la categoría “Adaptadores de red”, veremos lo siguiente:

ipv6_win_4

Adaptador 6to4, Adaptador ISATAP, Adaptador Teredo, los cuales nos permiten establecer túneles IPv6 sobre IPv4 sin que nos enteremos de ello. Esto implica que en este momento alguien podría tener establecido un túnel IPv6 contra nuestro equipo y no lo sabríamos.

IPv6 y la precedencia de protocolos

Además en la implantación de IPv6 se ha tenido en cuenta lo que se llama la “Precedencia de protocolos” lo cual puede hacer que nuestro equipo pase a funcionar en modo IPv6 en cualquier momento, sin avisarnos y por tanto escapando a nuestro control. Volvamos a nuestra ventana del símbolo del sistema de MS-DOS y tecleemos el siguiente comando:

C:\>netsh interface ipv6 show prefixpolicies

ipv6_win_5

Como vemos, el sistema operativo da precedencia a IPv6 sobre IPv4 si es posible utilizar este protocolo, lo cual ya supone una pérdida de tiempo, recursos, ancho de banda en intentar comprobar si puede establecer la comunicación mediante IPv6 antes de pasar a IPv4.

Cuando tecleamos una URL en el navegador, primero intenta resolver dicha URL a una IP de IPv6 mediante consulta a servidores DNS de IPv6 que utilizan registros AAAA;  si no es posible, la intenta resolver consultando a los servidores DNS de IPv4.

Más detalles a tener en cuenta…

IPv6 permite que una interfaz tenga más de una dirección IP, algunas como las de enlace local FE80:: tienen un ámbito de red local, otras tienen ámbito global como 2001::/64, de este último tipo, un interfaz puede tener todas las que quiera. Las IP’s de ámbito global son las que nos permiten comunicarnos a través de internet a nivel mundial y son públicas por definición, es decir son visibles desde cualquier punto de Internet.

Para facilitar la utilización de las nuevas IP’s del protocolo IPv6, tenemos varios mecanismos de autoconfiguración:

  • Stateful, este método necesita que haya un servidor DHCPv6 disponible en la red, para ello el dispositivo que tiene habilitado IPv6 al ser conectado a una red envía mensajes de solicitud de configuración de su interfaz para IPv6 igual que hace con IPv4.
  • Stateless, SLAAC (Stateless Address Automatic Configuration) es un protocolo de configuración de direcciones IPv6 mediante mensajes enviados desde el router de conexión, y no desde un servidor DHCPv6. Un equipo con una dirección IPv6 de vínculo local Link-Local, es decir FE80::, no puede enrutar su tráfico si no tiene una dirección IPv6 de sitio o global, y es por eso que los routers envían mensajes RA (Router Advertisement) diciéndole a los equipos cómo configurase para tener conectividad a través de ellos.

En SLAAC, cuando un dispositivo recibe un mensaje de tipo Router Advertisement anunciándole que se autoconfigure una IP para la red indicada, lo hace inmediatamente, sin comprobar la veracidad de la información. Un equipo al recibir mediante un RA la dirección de red 2001:2000:a:b::/64, se configura automáticamente una IP de IPv6 utilizando el método EUI-64 o EUI-64 modificado que toma como modelo la dirección física MAC del equipo, añadiendo al interfaz una nueva dirección IP de IPv6 de ámbito global, algo similar a esto: 2001:2000:a:b:baac:6fff:fea1:ffb3.

La mayoría de sistemas operativos no cogen la dirección MAC como modelo, sino que se autoasignan una dirección IPv6 de host de manera aleatoria, de hecho, se podrían tener dos IPv6 públicas:

  • La primera IPv6, que es con la que se navega por Internet generada aleatoriamente
  • La segunda IPv6, que es para acceder por ejemplo a nuestro servidor desde fuera, sin necesidad de usar No-IP ya que simplemente debemos saber el rango de red /64 que nos asigna nuestro operador, y saber la MAC de nuestra tarjeta de red para hacer el EUI-64.

No hay número límite como tal para el número de direcciones IP añadidas mediante RA (solo limitaría el prefijo de red), por lo que mediante el programa adecuado, se puede saturar el equipo atacado y quedar fuera de uso, un ataque de denegación de servicio fácil y efectivo.

La primera vez que son conectados a una red, el nodo envía una solicitud de router de link-local usando multicast (router solicitation) pidiendo los parámetros de configuración; y si los routers están configurados para esto, responderán este requerimiento con un “anuncio de router” (router advertisement) que contiene los parámetros de configuración de capa de red. El dispositivo del usuario al ser conectado a una red también está configurado de forma que envía mensajes multicast del tipo FE02::2 RS, (Router Solicitation), que son procesados por todos los routers conectados a la red, pidiéndoles que le envíen la configuración de la red que tienen que utilizar para conectarse a internet. Si el router tiene configurado algún interfaz con IPv6, responderá inmediatamente enviando al dispositivo un mensaje RA, conteniendo la dirección de red para que el dispositivo pueda enrutar sus paquetes.

Como podemos ver, es fácil mediante el envío de un paquete RA a una red local, cambiar el enrutamiento IPv6 de todos los dispositivos de una red. Podemos deshabilitar este comportamiento mediante la siguiente orden en sistemas Windows:

netsh interface ipv6 set interface "Local Area Connection" routerdiscovery=disabled

¿Pero realmente hay tantos equipos con IPv6 habilitado en mi red? Veamos, comprobemos nuestros vecinos con el siguiente comando de MS-DOS.

Netsh interface ipv6 show neighbors

Podemos ver que tenemos decenas de equipos a los que podemos atacar fácilmente. O veamos esta captura de Wireshark del tráfico que pasa por nuestra interfaz:

ipv6_win_6

Mensajes de petición DHCPv6, mensajes LLMNR, ICMPv6, paquetes circulando por nuestra red de forma innecesaria.

Concretando un poco más, el problema está en que los sistemas operativos y todos los dispositivos que conectamos a nuestra red posiblemente ya soporten IPv6, pero se deja sin configurar y sin controlar todo lo referente a este nuevo protocolo.

Por ejemplo, sería posible instalar un servidor de DHCPv6 en una red local para que configure la interfaz de los dispositivos con una IP de IPv6 además de la IP de IPv4 que legítimamente le asigna el servidor DHCP de la red corporativa, de esta forma podríamos configurar un equipo agresor como puerta de enlace de la máquina interceptada a la que le hemos dado una configuración incorrecta de IPv6 de forma que todo el tráfico dirigido al exterior de la red local, pasaría por la máquina atacante.

En la mayoría de los casos no se controla el tráfico IPv6, por lo que se podría fácilmente establecer un Man In The Middle (MITM) que reenviaría todo el tráfico sin enterarnos, ya que por IPv4 todo se mostraría como normal.

En la situación actual, los sistemas operativos permiten configurar una interfaz de red con varias configuraciones IPv6, además de la configuración IPv4 legítima.

Si todavía no estás convencido, otra vulnerabilidad más, las máscaras de red: en IPv4 la máscara de red nos permite segmentar una red de forma que los dispositivos sólo se puedan comunicar con aquellos otros que coinciden en la parte de la dirección IP que les indica la máscara de red.

Por ejemplo, dos equipos A y B

Equipo IPv4 MASCARA RED
A 192.168.1.10 255.255.255.0 192.168.1.0
B 192.168.1.254 255.255.255.0 192.168.1.0

Los equipos se pueden comunicar ya que la parte de la dirección IP indicada por la máscara, (24 bits por la izquierda), 192.168.1, coinciden, por lo que decimos que están en la misma red y los equipos se ven.

Equipo IPv4 MASCARA RED
A 192.168.1.10 255.255.255.0 192.168.1.0
B 192.168.66.254 255.255.255.0 192.168.66.0

Los equipos no se ven, es decir, no se pueden comunicar, ya que la parte de la dirección IP indicada por la máscara, (24 bits por la izquierda), 192.168.1 y 192.168.66, no coinciden, por lo que decimos que no están en la misma red y los equipos no se pueden ver.

Pero si los equipos tienen habilitado IP versión 6, esto cambia. Supongamos los dos equipos del ejemplo anterior, si tienen habilitado IP versión 6, podemos hacer ping desde la dirección de link-local de uno al otro, es decir, que IP versión 6 ignora las restricciones de las máscaras de red de IPv6. Con las subredes de IPv6 pasa lo mismo supongamos el siguiente ejemplo:

Equipo IP version 6 PREFIJO MASCARA + IP
Último grupo en binario
  BINARIO HEX.
A 2001:A:B:C:D:E:F:1234/126 126 2001:A:B:C:D:E:F:123 01 00 4
B 2001:A:B:C:D:E:F:1235/126 126 2001:A:B:C:D:E:F:123 01 01 5

En el ejemplo anterior, los dos equipos están en la misma subred ya que los 126 bits empezando por la izquierda coinciden.

Equipo IP version 6
PREFIJO MASCARA + IP
Último grupo en binario
  BINARIO HEX.
A 2001:A:B:C:D:E:F:1234/126 126 2001:A:B:C:D:E:F:123 01 00 4
B 2001:A:B:C:D:E:F:1238/126 126 2001:A:B:C:D:E:F:123 10 00 8

En este segundo caso los bits 125 y 126 no coinciden por lo que las dos máquinas están en distintas redes /126, por lo que no se ven. Pero si hacemos ping de una máquina a otra por su IP de link-local, (FE80::) las máquinas se ven.

Entonces ¿cómo deshabilitar IPv6 en el sistema operativo Microsoft Windows?

Accedemos a las propiedades de TCP/IP, de cualquiera de las maneras que conocemos, (ver el principio del artículo), y desmarcamos la casilla de IPv6.

ipv6_win_7

IPv6 es un protocolo que viene implantado en la mayoría de productos y dispositivos que utilizamos en informática pero que, o bien por desconocimiento, o por otros motivos, no se configura adecuadamente y crea una situación de vulnerabilidad que no podemos descuidar.


Continúa leyendo

Últimos análisis

Valoración RZ
10
Valoración RZ
7
Valoración RZ
9
Valoración RZ
10
Valoración RZ
8
Valoración RZ
10
Valoración RZ
9
Valoración RZ
9
Valoración RZ
10