Sobre la vulnerabilidad Kaminsky y tutorial para cambiar los DNS

Hace unos días que los blogs y webs de tecnología están que arden. El motivo es que hace relativamente poco se ha descubierto un problema muy grave en los DNS (servidor de nombres de dominio). Estos, simplificando mucho, son un listado que se encarga de transformar un nombre de dominio en una dirección IP (por ejemplo  www.chefuri.com por la IP 208.113.191.168 ). Para comunicarte con otra máquina (o la tuya propia) necesitas la dirección IP, el dominio sería como un alias.

Si os fijáis cuando configurais la conexión a Internet , normalmente vuestro proveedor os hace introducir unas IP como DNS primario y secundario (si no lo habéis configurado probablemente el proveedor os haya asignado unas de forma automática).

Siempre se ha pensado que las DNS eran relativamente seguras, tu escribías por ejemplo una dirección en el navegador y accedías a la web correcta. Pues a partir de ahora no consideres esta afirmación como un axioma. El motivo es el ataque Kaminsky.

No explicaré el ataque de forma detallada, pero a grandes rasgos se basa en lo siguiente. Un servidor de DNS cuando recibe una petición de resolver un dominio, mira en su lista a ver si alguien previamente ha realizado esta solicitud. Si encuentra la correspondencia dominio-IP pues devuelve la respuesta, sino la encuentra realiza un peticiones en cadena a otros servidores de DNS de mayor nivel. Se ha descubierto que las respuestas de los DNS pueden ser previstas estadísticamente (es necesario prever el puerto y nº de transacción). Y si se consigue inyectar una respuesta falsa, a partir de ese momento el servidor de DNS responderá de forma alterada.

Un símil sería una persona que se llama Juan y vive en la calle A bloque B. El cartero tiene una carta para Juan, mira su listado y no encuentra a Juan. Pues pregunta a otro cartero, el segundo cartero le responde que Juan vive en la calle A, pero no sabe el bloque. Entonces preguntamos a un tercer cartero legítimo, este responde que Juan vive en el bloque B. En este momento sabemos que Juan vive en la calle A y bloque B, le enviamos la carta y le llega o no, pero la dirección es correcta. Como no queremos molestar a los otros carteros pues nos guardamos la respuesta en nuestro listado.

El problema viene cuando se puede poner carteros falsos que respondan de forma alterada. Pongamos que el cartero 3 dice que Juan vive en el bloque C. A partir de ese momento enviaremos las cartas a una dirección falsa aunque existente. Si en lugar de mandar cartas normales le mandamos cartas con información personal pues ya hay alguien que accede a estos datos de forma fraudulenta.

Hasta ahora el ataque ha estado oculto para que los fabricantes y proveedores pudiesen solucionarlo. Pero lamentablemente se ha filtrado por error, por el propio Dan Kaminsky, la forma de proceder. No han tardado mucho en explotar esta vulnerabilidad de los DNS, algunos con buenas intenciones y otros con no tantas. Supongo que si me he sabido explicar bien, veréis que realmente es un problema importante porque tu podrías acceder a la web de tu banco por ejemplo y que la web que vieras no fuera la auténtica (phising).

Actualmente la solución es doble, la primera no está en nuestra manos y es que los proveedores actualizen sus DNS para solventar estos problemas. Según vemos en el analisis actualizado de bandaancha.eu, más del 50 % de DNS aun son vulnerables una semana después. Esta web incluso ha conseguido modificar los DNS para realizar las pruebas, por lo tanto se demuestra que el ataque es posible.

Ahora vamos  a la parte práctica. Vamos a comprobar si nuestras DNS son vulnerables. Para ello accedemos a este test de DNS y pulsamos donde pone “Check My DNS“. Si nos sale un resultado como este, estamos a salvo :

pero si nos aparece un resultado parecido a este (DNS cache poisoning), pues ya sabemos que somos potencialmente víctimas de este ataque.

Entonces la segunda solución es cambiar nuestras DNS por otras de seguras. La mayoría de webs recomiendan usar las DNS que proporciona OPENDNS (que son 208.67.222.222 y 208.67.220.220).

Tutorial para cambiar las DNS en Windows (vista)

1) Ir a Inicio -> Configuración –> Conexiones de Red

2) Seleccionar la conexión que useis para conectaros y pulsar botón derecho y propiedades

3) Si te sale el mensaje de aviso del UAL dale a continuar. En la pestaña de funciones de red, selecciona “Protocolo de internet TCP/IP versión 4” y dale a propiedades

4) Por último selecciona:”Usar las siguientes direccions de servidor DNS” y rellena con estos datos:

DNS preferido : 208.67.222.222

DNS alternativo: 208.67.220.220

5) Aceptar todo y reiniciar la conexión.

Si queréis usar otras direcciones IP de DNS no hay problema siempre y cuando al hacer el test os salga que no son vulnerables.

Otros enlaces recomendables:

  • Kriptopolis <– esta web está muy actualizada sobre este problema de seguridad. Hay mucha información al respecto.
  • Test alternativo <– este test es mucho más detallado y visual. Muestra un gráfico de dispersión, datos y valoración del DNS. Si pone “Great” todo correcto, si el resultado es “POOR” mejor cambiar las DNS
  • Como cambiar las DNS <– Se explica como cambiar las DNS en linux y windows
  • Configurar los DNS del router o servidor de DNS <– Instrucciones para otros casos

Si tenéis dudas ponerlos en los comentarios. Hasta la próxima!

Puedes dejar un comentario.

1 comentario to “Sobre la vulnerabilidad Kaminsky y tutorial para cambiar los DNS”

  1. chefwww dice:

    Un link interesante que explica el parche aplicado solo sirve para dificultar el proceso de ataque, pero en ningun caso lo resuelve.

    http://elblogdepablot.wordpress.com/2008/08/10/dns-en-terapia-intensiva/

Deja un comentario