Vulnerabilidad en los servidores DNS y cómo evitarla

Technorati Tags: ,

La noticia no es nueva ni mucho menos, pero la vulnerabilidad de los servidores DNS sigue sin terminar de solucionarse en los ISP españoles. De hecho, en Bandaancha han hecho una prueba de concepto envenenando los DNS de Telefónica.

¿Qué significa todo esto?

Pues muy sencillo, significa que alguien que quiera hacer phishing lo tiene «chupao». ¿Cómo? Si consigue envenenar los DNS de los proveedores que usamos todos y hace que las peticiones de nombres de bancos como www.bbva.com, www.ibanesto.com, www.ingdirect.es, etc., apunten al servidor que quiera, podrán hacer un auténtico estropicio a la gente que le redireccionen a la web del atacante.

¿Cómo saber si me afecta?

Para comprobar si nuestros DNS son vulnerables, una opción es pinchar en «Check My DNS» en la web DoxPara. La respuesta que obtengo con mis DNS actuales es:

Your name server, at 208.69.34.10, appears to be safe, but make sure the ports listed below aren’t following an obvious pattern.

Es decir, que en principio yo no debería tener problemas.

Otra opción, si queremos comprobar unos DNS concretos sin tener que configurarlos, en Windows, abrimos una ventana de comandos (Inicio -> Ejecutar -> «cmd» y «Enter») y escribimos:

nslookup -type=txt -timeout=30 porttest.dns-oarc.net [servidor]

Donde [servidor] es opcional (si está en blanco tomará el que tengamos configurado por defecto) y podemos probar con 195.235.113.3 o 195.235.96.90 (DNS de Terra). Lo que hace la petición de nombre de porttest.dns-oarc.net es decirnos si el DNS que ha pedido su nombre es vulnerable o no. Por ejemplo:

C:\>nslookup -type=txt -timeout=30 porttest.dns-oarc.net 195.235.113.3
Servidor: dns.terra.es
Address: 195.235.113.3

DNS request timed out.
timeout was 30 seconds.
Respuesta no autoritativa:
porttest.dns-oarc.net canonical name = z.y.x.w.v.u.t.s.r.q.p.o.n.m.l.k.j.i.h.g.f.e.d.c.b.a.pt.dns-oarc.net
z.y.x.w.v.u.t.s.r.q.p.o.n.m.l.k.j.i.h.g.f.e.d.c.b.a.pt.dns-oarc.net text =
«213.4.130.1 is GOOD: 26 queries in 4.8 seconds from 26 ports with std dev 17465.47»

z.y.x.w.v.u.t.s.r.q.p.o.n.m.l.k.j.i.h.g.f.e.d.c.b.a.pt.dns-oarc.net nameserver = ns.z.y.x.w.v.u.t.s.r.q.p.o.n.m.l.k.j.i.h.g.f.e.d.c.b.a.pt.dns-oarc.net

C:\>nslookup -type=txt -timeout=30 porttest.dns-oarc.net 195.235.96.90
Servidor: tpdns2.terra.es
Address: 195.235.96.90

DNS request timed out.
timeout was 30 seconds.
Respuesta no autoritativa:
porttest.dns-oarc.net canonical name = z.y.x.w.v.u.t.s.r.q.p.o.n.m.l.k.j.i.h.g.f.e.d.c.b.a.pt.dns-oarc.net
z.y.x.w.v.u.t.s.r.q.p.o.n.m.l.k.j.i.h.g.f.e.d.c.b.a.pt.dns-oarc.net text =

«213.4.132.60 is POOR: 26 queries in 4.9 seconds from 1 ports with std dev 0.00»

z.y.x.w.v.u.t.s.r.q.p.o.n.m.l.k.j.i.h.g.f.e.d.c.b.a.pt.dns-oarc.net nameserver = ns.z.y.x.w.v.u.t.s.r.q.p.o.n.m.l.k.j.i.h.g.f.e.d.c.b.a.pt.dns-oarc.net

Esto nos dice que el servidor 195.235.113.3 es seguro, mientras que 195.235.96.90 (el secundario de Terra) no lo es.

En Linux, se haría de forma similar, con el comando dig (hay que instalar el paquete bind-utils):

dig +short [@servidor] porttest.dns-oarc.net txt

Un resultado tendría este aspecto:

carlos@weisman:~$ dig +short @195.235.96.90 porttest.dns-oarc.net txt
z.y.x.w.v.u.t.s.r.q.p.o.n.m.l.k.j.i.h.g.f.e.d.c.b.a.pt.dns-oarc.net.
«213.4.132.60 is POOR: 26 queries in 4.9 seconds from 1 ports with std dev 0.00»

Lo que queremos es usar unos servidores DNS cuya respuesta sea «GOOD».

¿Qué puedo hacer yo?

Habida cuenta de que los proveedores españoles no parecen ponerse las pilas, bien podemos usar el primario de Terra (195.235.113.3) o podemos usar los DNS de OpenDNS, que son:

Primario: 208.67.222.222
Secundario: 208.67.220.220

Yo ya me los he aprendido de memoria por si las moscas 🙂

Me he perdido, ¿cómo cambio los DNS?

Para cambiarlas en Windows, como se explica en el Wiki de Bandaancha, cómo elegir las DNS:

  1. Ve a Panel de control > Conexiones de red
  2. Abre la conexión de red que quieras modificar (inalámbrica o cable de red)
  3. Botón Propiedades
  4. En el cuadro «Esta conexión utiliza los siguientes elementos:» hay varias opciones. Abajo del todo, está «Internet Protocol (TCP/IP)». Haz doble clic sobre ella.
  5. Selecciona ‘Usar las siguientes DNS’ e introduce las que he puesto más arriba.
  6. Aceptar

Debería quedar algo parecido a lo que aparece en la siguiente captura de pantalla (clic para verla en grande):

Cambiar las DNS en Windows

En Linux, hay que editar el archivo /etc/resolv.conf. Pero cuidado, porque puede ocurrir que nuestra distribución los cambie cada vez que habilite la interfaz de red. Casi lo mejor es cambiarlos en el router, y usar por defecto el router como servidor DNS. En OpenDNS > Get Started tienen una guía para hacerlo.

Me ha quedado bastante largo, pero espero que esté todo claro 🙂

Share