La suplantación de DNS es un ataque que dirige a los usuarios a un sitio falso en lugar del sitio web al que intentan acceder. Aprovecha una vulnerabilidad en el protocolo UDP y requiere medidas de seguridad como DNSSEC (extensión de seguridad del sistema de nombres de dominio) para evitarlo.
La suplantación de un sistema de nombres de dominio (DNS) es la práctica de dirigir a los usuarios de Internet a un sitio falsificado cuando intentan acceder a un sitio. Esto se logra traduciendo los nombres de dominio a direcciones IP.
Para que los ordenadores conectados a Internet se identifiquen y se comuniquen entre sí, cada uno de ellos debe tener una dirección IP única, que se crea de acuerdo con el Protocolo de Internet (IP). Los protocolos son convenciones de comunicación que utilizan los ordenadores para conectarse y enviarse datos entre sí y se implementan en software o hardware. Las direcciones IP más utilizadas en la actualidad se representan mediante números en cuatro campos delimitados por puntos, como “***.126.63.1”. Esta dirección no debe duplicarse ni aleatorizarse, y se le debe asignar una dirección IP pública.
Existen dos tipos de direcciones IP públicas: las direcciones IP estáticas, que utilizan siempre el mismo número, y las direcciones IP dinámicas, que pueden renumerarse. Las direcciones IP dinámicas se conceden mediante un protocolo llamado DHCP. DHCP acepta peticiones de ordenadores que necesitan una dirección IP y se la asigna, y cuando el ordenador deja de utilizar la dirección IP, la devuelve para que otro ordenador pueda utilizarla. Por otro lado, también existen las direcciones IP privadas, que no son directamente accesibles a Internet y solo se identifican entre sí en redes internas.
Internet funciona sobre la base de direcciones IP públicas, pero cuando utilizamos Internet, utilizamos nombres de dominio en lugar de direcciones IP, que se componen de caracteres como "www.." para facilitar su uso. Necesitamos DNS para traducir los nombres de dominio en direcciones IP, y los dispositivos que ejecutan DNS se denominan servidores de nombres. Su computadora necesita tener registrada la dirección IP del servidor de nombres, y mientras que una computadora con una dirección IP dinámica tendrá la dirección IP del servidor de nombres registrada automáticamente cuando reciba una dirección IP, una computadora con una dirección IP estática necesitará que el usuario registre manualmente la dirección IP del servidor de nombres. Los proveedores de servicios de Internet operan servidores de nombres que son compartidos por sus suscriptores.
El DNS es un componente esencial de las comunicaciones por Internet, y la traducción rápida y precisa de nombres de dominio tiene un impacto significativo en la experiencia del usuario de Internet. El rendimiento y la seguridad del DNS son especialmente importantes para los sitios y las empresas que manejan grandes cantidades de tráfico. Si un servidor DNS deja de funcionar o es atacado por piratas informáticos, puede provocar una interrupción masiva del servicio. Por ejemplo, el ataque al DNS de Dyn en 2016 causó estragos y derribó muchos sitios web importantes.
Veamos cómo se conecta normalmente un usuario a un sitio. La computadora que intenta acceder al sitio web se denomina cliente. Cuando un usuario escribe el nombre de dominio del sitio que desea visitar en la barra de direcciones (o lo busca en un sitio de portal y hace clic en él), el cliente envía un paquete de consulta a los servidores de nombres registrados, solicitando la dirección IP correspondiente al nombre de dominio. Si la dirección IP está en su lista, el servidor de nombres envía un paquete de respuesta que le indica al cliente la dirección IP. El paquete de respuesta indica a qué paquete de consulta está respondiendo. Si la dirección IP no está en la lista, el servidor de nombres envía un paquete de respuesta que le indica al cliente la dirección IP de otro servidor de nombres, y el cliente vuelve a enviar un paquete de consulta a ese servidor de nombres y repite el proceso. El cliente utiliza la dirección IP para encontrar el sitio. Los servidores de nombres y los clientes envían paquetes de ida y vuelta mediante un protocolo llamado UDP. Para garantizar que los paquetes se envíen rápidamente, UDP solo envía paquetes a la otra parte y no verifica la llegada; Confía en el primer paquete de respuesta que llega para un paquete de consulta en particular y descarta el siguiente paquete sin verificarlo. La suplantación de DNS aprovecha estos agujeros en UDP.
Veamos cómo funciona la suplantación de DNS. Un equipo infectado con un código malicioso que realiza una suplantación de DNS se denomina atacante. Cuando un cliente envía un paquete de consulta a un servidor de nombres solicitando una dirección IP específica, el paquete se reenvía al atacante, quien envía un paquete de respuesta al cliente con la dirección IP de un sitio falso. El paquete de respuesta del atacante llega al cliente antes que el paquete de respuesta del servidor de nombres, y el cliente reconoce el paquete de respuesta del atacante como el paquete correcto y se dirige al sitio falso.
Por lo tanto, es importante tomar medidas de seguridad como la Extensión de Seguridad del Sistema de Nombres de Dominio (DNSSEC) para evitar ataques de suplantación de DNS. DNSSEC verifica la integridad y el origen de los datos DNS, lo que permite a los clientes verificar que los datos que reciben son confiables. Los administradores de red también deben monitorear regularmente los servidores DNS y detectar actividad anómala para poder responder de inmediato. También es importante que los usuarios finales sigan prácticas de seguridad básicas, como usar software de seguridad confiable y no visitar sitios web sospechosos.