martes, 22 de julio de 2008

Kaminsky y el Sistema de Nombres de Dominio


Probablemente todos sabréis ya que hace poco un tipo llamado Dan Kaminsky ha descubierto un agujero de seguridad en el Sistema de Nombres de Dominio (DNS) de Internet. Los detalles del agujero no han sido publicados todavía (se podrá ver online la conferencia que Kaminsky dará en blackhat.com el día 24 de julio), porque aunque se ha desarrollado un parche para los servidores DNS es probable que no se haya aplicado todavía, de hecho, muchos proveedores de servicio tardarán en hacerlo en todos y cada uno de sus servidores. El descubrimiento del que, como a mi, seguro que os hubiera gustado ser protagonista, hizo a Dan reunir en la sede de Microsoft a los 16 grandes de Internet (Ms, Cisco, google…) y avisar al Gobierno americano a través del Equipo de Emergencia y Respuesta Informática del Departamento de Seguridad Interior.

El agujero es -o debe ser- de tal magnitud que pone en peligro todo el sistema de traducción de nombres de Internet y en conocimiento de algún cracker podría permitirle secuestrarlo y redireccionar todos los clientes del servidor DNS atacado a las páginas que él quisiera. Esto es una herramienta muy poderosa para el phishing, que se ha vuelto muy popular como método de estafa y que precisamente consiste en dirigir al usuario a una página falsa del banco donde pretenden entrar para recoger allí usuarios y contraseñas. En el phishing habitual el engaño suele ser mediante un link de correo electrónico que pretende dirigir al usuario a la falsa web, utilizando un nombre de dominio parecido al real. Aunque en un ataque a gran escala el fallo de seguridad podría provocar una pérdida de confianza tal en Internet que en mi opinión podría hacer remover los cimientos de nuestra nueva economía…


Hasta ahora, la forma más tradicional de redirigir el navegador de una máquina cliente a una página distinta de la intencionada era a través del envenenamiento DNS (o DNS poisoning) que consitía generalmente en envenenar la caché DNS del cliente en lugar de atacar al propio servidor DNS.


Puedes comprobar si a los servidores DNS a los que se dirige tu máquina les han instalado el parche en http://doxpara.com (busca el botón check my DNS). Si lo prefieres, puedes configurar tu máquina para que utilice los siguientes DNS: 208.67.222.222 y 208.67.220.220, que forman parte del proyecto OpenDNS (http://www.opendns.com/). Son gratuitos y seguros.


Para quien no sepa cómo funciona el sistema de nombres de dominio DNS, baste decir que es una relación entre nombres (más entendible para el ser humano) y direcciones IP. Todas las páginas web que visitamos están alojadas en un servidor web al cual accedemos a través de su dirección IP. Lo primero que hace nuestro navegador cuando introducimos por ejemplo http://mindsandmachines.org es resolver ese nombre a la dirección IP del servidor que aloja esa página. ¿Cómo lo resuelve? Bien, la práctica de usar una abstracción de las direcciones IP para hacerla más intuitiva para las personas es anterior a Internet y se remonta a la era de ARPAnet, por aquel entonces y antes de que existieran los servidores DNS (fueron introducidos hacia 1983) cada ordenador de la red debía descargar un archivo llamado HOSTS.TXT de una máquina del SRI (una institución de la Universidad de Stanford); de hecho en la actualidad todos los sistemas operativos permiten editar este archivo con entradas estáticas para la traducción de nombres de dominio, pero hoy en día sería inabarcable la práctica de almacenar todos los nombres de dominio de Internet y su traducción a IP en un archivo dentro de cada máquina que se conecta a Internet.


Los servidores DNS dentro de una corporación o en la misma Internet utilizan un sistema de notificaciones para actualizarse sobre los cambios y añadidos en el “listín” y un sistema jerárquico para las búsquedas de dominios, ya que hay dominios dentro de dominios y estos a su vez dentro de otros dominios. Por ejemplo, los dominios de primer nivel:. com, .es, etc. Contienen dominios de 2º nivel (lo que antecede al .com o al .es) y así sucesivamente, de tal manera que las búsquedas de IPs dentro de un determinado dominio son jerarquizadas y no es necesario que un servidor contenga todas las traducciones posibles.

No hay comentarios: