Del tratamiento de los registros NXDOMAIN por parte de los DNS Caché

Una práctica que desde hace un tiempo está siendo utilizada por los DNS Caché para rentabilizar las respuestas NXDOMAIN obtenidas durante la navegación de los usuarios es la redirección hacia un Web, esta web puede contener publicidad o ser un “buscador” con sugerencias para la cadena que se ha intentado resolver.

Esta “redirección” la podemos encontrar en los DNS Caché proporcionados por OpenDNS  y ONO.

OpenDNS www.opendns.com

Si realizamos una petición sobre OpenDNS para www.iniqua.con obtenemos como respuesta una IP, que no corresponde con la IP de la URL que hemos intentado resolver, ya que esta URL es incorrecta.

$ dig @208.67.222.222 www.iniqua.con
; <<>> DiG 9.6.0-APPLE-P2 <<>> @208.67.222.222 www.iniqua.con
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3599
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;www.iniqua.con.            IN    A
;; ANSWER SECTION:
www.iniqua.con.        0    IN    A    67.215.65.132

;; Query time: 44 msec
;; SERVER: 208.67.222.222#53(208.67.222.222)
;; WHEN: Wed May  5 19:40:29 2010
;; MSG SIZE  rcvd: 48

Si realizamos el mismo proceso sobre los DNS que nos ofrece Google, obtenemos un NXDOMAIN. Google no realiza por tanto un procesamiento de este tipo de registros.

$ dig @8.8.8.8 www.iniqua.con
; <<>> DiG 9.6.0-APPLE-P2 <<>> @8.8.8.8 www.iniqua.con
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 40745
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;www.iniqua.con.            IN    A
;; AUTHORITY SECTION:
.           86400    IN    SOA    a.root-servers.net. nstld.verisign-grs.com. 2010050501 1800 900 604800 86400
;; Query time: 1080 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Wed May  5 21:57:29 2010
;; MSG SIZE  rcvd: 107

Ono, por su parte realiza la misma operación que OpenDNS con sus DNS Caché. Cuando realizamos una petición con una URL incorrecta, la IP que nos devuelve pertenece a la URL “dnssearch.ono.es”, que contiene un buscador basado en el motor de “YAHOO”

$ dig +short www.iniqua.com
67.205.34.173
$ dig +short www.iniqua.con
81.200.64.183 (dnssearch.ono.es)

Dnssearch.ono.es

dnssearch.ono.es - powered by YAHOO

Del tratamiento de la entrada de datos de usuario (XSS Reflected)

El usuario (de Ono) ha sido conducido a un portal Web como parte de un servicio considerado básico de Internet. (DNS). Por tanto, este servicio debería tener un mínimo de seguridad, como el que se presume de cualquier servicio.

La siguiente imagen muestra el resultado de intentar acceder a www.iniqua.con.

NXDomain redirect - dnssearch.ono.es

Hemos detectado un fallo de seguridad para la validación de entrada en el campo “Buscar” en este nuevo portal. La siguiente imagen muestra el resultado de realizar una búsqueda con una cadena de datos especialmente formada. El buscador realiza un correcto filtrado de la entrada introducida. La siguiente imagen muestra el resultado obtenido.

Filtrado correcto - dnssearch.ono.es

Analizando con detenimiento el resultado anterior, vemos cómo el buscador nos ha mostrado el mensaje “no ha sido encontrado” para nuestra cadena de datos. Unido a esto el buscador nos muestra una serie de resultados a modo de sugerencia.

En la siguiente imagen podemos ver el resultado de introducir una cadena de datos especialmente formada y con la cual el buscador no muestra sugerencias, sino que intenta mostrar una cadena de datos rectificada. Y es en este lugar ( la capa con id ‘spelling’) donde no se hace un tratamiento correcto de los datos introducidos, produciendose el “cross-site-scripting”.

XSS Reflected - dnssearch.ono.es

El Cross Site Scripting (XSS) es el primero en el Top 25 publicado por CWE/SANS en el año 2010. Y por otra parte OWASP publica en su wiki una guia para prevenir este tipo de ataques.