Si las películas de Hollywood nos enseñan algo, es que los hackers son inteligentes y tienen varios trucos para eludir nuestra seguridad. En el mundo real, un problema de seguridad a menudo se reduce a una oportunidad más que a una habilidad desarrollada. Un ataque de «envenenamiento de DNS» encaja en esta descripción y, de hecho, deberías tener las habilidades para evitar que tu dominio sea suplantado.
El concepto es simple: los visitantes ven cómo se ve tu web, pero es fraudulenta y dañina, mientras que esta web falsa luce similar. Por ello, debes emplear varias técnicas para garantizar que los usuarios estén seguros y que tu sitio permanezca libre de ataques.
En esta entrada, vamos a profundizar en el concepto de envenenamiento de DNS y suplantación de dominios. También vamos a hablar de algunos de los conceptos relacionados para ayudarte a entender por qué tu respuesta final es el mejor enfoque para comprender qué es el envenenamiento de DNS y cómo prevenirlo.
Introducción al sistema de nombres de dominio (DNS)
Antes de entrar en los detalles del envenenamiento de DNS, hablemos del sistema de nombres de dominio. Aunque navegar por una web parece una tarea sencilla, hay mucho ocurriendo bajo el capó del servidor.
Hay muchos elementos implicados para llevarte de la «A» a la «B»:
- Dirección IP. Es una cadena de números que es tu dirección web real. Considéralas las coordenadas de tu casa. Por ejemplo, 127.0.0.1:8080 es una dirección estándar de «localhost» (es decir, tu ordenador).
- Nombre de dominio. Si la dirección IP representa las coordenadas, el nombre de dominio es tu dirección tal como aparece en el sobre. Por supuesto, «Phluit.com» es uno de millones de ejemplos.
- Una petición DNS. Es un gran ejemplo de una tarea de frontend de alto nivel con un proceso complejo de bajo nivel. Por ahora, considera que una petición es tu navegador preguntando a un servidor dedicado cuál es la dirección para un conjunto de coordenadas.
- Un servidor DNS. Es diferente del servidor de tu web, que son cuatro servidores en uno. Su trabajo es procesar peticiones DNS. Hablaremos de esto con más detalle en secciones posteriores.
- Servidor recursivo. También verás estos servidores llamados «resolución de servidor de nombres». Es parte del proceso de búsqueda DNS y es responsable de consultar a los servidores el nombre de dominio relativo a una dirección IP.
En general, un DNS simplifica la obtención de un nombre de dominio para el usuario final. Es una parte fundamental de la web y, como tal, tiene muchas piezas móviles.
Veremos el proceso de búsqueda real más abajo, aunque ya puedes ver cómo el DNS tiene un trabajo vital que hacer.
El proceso de una búsqueda DNS
Ten paciencia con nosotros aquí mientras te ofrecemos lo que parece una analogía abstracta.
Las actividades que llevan a las personas a lugares remotos, como el montañismo o la navegación, comparten un peligro específico: perderse y no ser encontrado a tiempo. La forma tradicional de localizar a personas atrapadas ha sido usar coordenadas. Son explícitas y ofrecen una precisión milimétrica.
Sin embargo, este proceso tiene inconvenientes. Primero, necesitas saber cómo calcular tus coordenadas para cualquier ubicación, lo cual es complicado si estás en una parte remota del mundo. Segundo, debes articular esas coordenadas al equipo de rescate. Un número equivocado y las consecuencias son nefastas.
La aplicación what3words toma el complejo proceso de calcular y transmitir coordenadas y lo convierte en un resumen de tres palabras de tu ubicación general. Por ejemplo, toma la sede de Automattic:
Las coordenadas de la ubicación son 37.744159, -122.421555. Sin embargo, a menos que seas un explorador experto, probablemente no sepas esto. Incluso si lo supieras, poner esto en manos de alguien que pueda ayudarte es una propuesta poco probable.
En pocas palabras, what3words toma un conjunto abstracto de coordenadas y lo traduce en tres palabras memorables. Para las oficinas de Automattic, es decent.Transfers.sleeps:
Esto pone el posicionamiento global complejo en manos de casi cualquiera con acceso a la aplicación. Ya ha salvado muchas vidas de civiles.
Esto está relacionado con una búsqueda DNS porque el proceso es similar. En el caso de what3words, el rescatador pide a la app las coordenadas de una cadena de palabras. La petición se envía a través de los servidores para buscar las coordenadas y regresa al usuario final cuando se encuentran.
Una búsqueda DNS tiene un flujo similar:
- Tu navegador solicita la dirección IP de un nombre de dominio.
- Tu sistema operativo (SO) pide al servidor recursivo que encuentre el nombre de dominio e inicia un recorrido a través de tu colección de servidores.
- Cuando encuentra el nombre de dominio, este se devuelve al navegador.
Uno de los inconvenientes de what3words es que una cadena de palabras no es tan precisa como un conjunto de coordenadas. Esto significa que puedes localizar rápidamente una ubicación general, pero puedes pasar más tiempo buscando a la persona atrapada.
Una búsqueda DNS también tiene inconvenientes y puede ser explotada por atacantes malintencionados. Sin embargo, antes de ver esto, tomemos un breve desvío para hablar sobre el almacenamiento en caché y cómo puede acelerar una búsqueda.
Caché de DNS
Al igual que la caché web, la caché de DNS puede ayudarte a recordar las consultas habituales al servidor. Esto hará que el proceso de obtención de una dirección IP sea más rápido en cada nueva visita.
En resumen, la caché está dentro del sistema del servidor DNS y elimina el viaje adicional al servidor recursivo. Esto significa que un navegador puede obtener una dirección IP directamente del servidor DNS y completar la petición GET en un tiempo más rápido.
Encontrarás cachés de DNS por todo tu sistema. Por ejemplo, tu ordenador tendrá una caché de DNS, al igual que tu router y tu proveedor de servicios de internet (ISP). A menudo no te das cuenta de cuánto depende tu experiencia de navegación de la caché de DNS, hasta que eres víctima del envenenamiento de DNS.
Qué es el envenenamiento de DNS
Ahora que entiendes el concepto de búsqueda DNS y todo el proceso de obtención de una dirección IP, podemos ver cómo puede aprovecharse.
También verás a menudo el envenenamiento de DNS como «suplantación» (spoofing) porque tener una web fraudulenta «similar» en la cadena es parte del ataque.
Vamos a hablar con más detalle sobre todos estos aspectos, pero debes saber que el envenenamiento o la suplantación de DNS es un ataque dañino que puede causar problemas mentales, monetarios y relacionados con los recursos para los usuarios e internet.
Pero primero, entremos en el proceso de envenenamiento de caché.
Cómo funciona la suplantación de DNS y el envenenamiento de caché
Debido a que todo el proceso de suplantación es complejo, los atacantes han ideado muchas formas diferentes de lograr su objetivo:
- Máquina en el medio. Es cuando un atacante se sitúa entre el navegador y el servidor DNS, envenena ambos y redirige al usuario a un sitio fraudulento en su propio servidor.
- Secuestro de servidor. Si un atacante irrumpe en el servidor DNS, puede reconfigurarlo para enviar todas las peticiones a su propio sitio.
- Envenenamiento por spam. A diferencia de un secuestro de servidor, este enfoque envenena el lado del cliente (es decir, el navegador). El acceso a menudo se concede a través de enlaces de spam, correos electrónicos y anuncios fraudulentos.
- «Ataques de cumpleaños». Este es un ataque criptográfico complejo que requiere una explicación más detallada.
Un ataque de cumpleaños se basa en el «problema del cumpleaños». Este es un escenario de probabilidad que dice (en pocas palabras) que si hay 23 personas en una habitación, hay un 50 % de probabilidad de que dos compartan el mismo cumpleaños. Si hay más personas en la habitación, las probabilidades aumentan.
Esto resulta en un envenenamiento de DNS basado en el identificador que conecta la petición de búsqueda DNS con la respuesta GET. Si el atacante envía un cierto número de peticiones y respuestas aleatorias, hay una alta probabilidad de que una coincidencia resulte en un intento de envenenamiento exitoso. En alrededor de 450 peticiones, la probabilidad es de aproximadamente el 75 %, y en 700 peticiones, un atacante casi con certeza vulnerará el servidor.
En resumen, los ataques a servidores DNS ocurren en la mayoría de los casos porque esto da a un usuario malintencionado más flexibilidad para manipular tu sitio y los datos del usuario. Tampoco hay verificación de los datos DNS porque las peticiones y respuestas no usan el protocolo de control de transmisión (TCP).
El eslabón débil de la cadena es la caché de DNS porque actúa como un repositorio de entradas DNS. Si un atacante puede inyectar entradas suplantadas en la caché, todos los usuarios que accedan a la caché se encontrarán en un sitio fraudulento hasta que la caché caduque.
Los atacantes a menudo buscarán algunas señales, puntos débiles y puntos de datos para atacar. Trabajan para detectar consultas DNS que aún no se han almacenado en caché porque el servidor recursivo tendrá que realizar la consulta en algún momento. Por extensión, un atacante también buscará el servidor de nombres al que irá una consulta. Una vez que lo tienen, el puerto que usa el resolver y el número de identificación de la petición son vitales.
Aunque no es necesario cumplir todos estos requisitos (después de todo, un atacante puede acceder a los servidores a través de numerosos métodos), marcar estas casillas facilita su trabajo.
Ejemplos del mundo real de envenenamiento de DNS
Ha habido algunos ejemplos de alto perfil a lo largo de los años de envenenamiento de DNS. En algunos casos, es un acto intencionado. Por ejemplo, China opera un cortafuegos a gran escala (el llamado «Gran Cortafuegos de China») para controlar la información que reciben los usuarios de internet.
En pocas palabras, envenenan sus propios servidores redirigiendo a los visitantes lejos de sitios no autorizados por el estado como Twitter y Facebook. En un caso, las restricciones chinas incluso llegaron al ecosistema del mundo occidental.
Un error de red de un ISP sueco proporcionó información de DNS raíz de servidores chinos. Esto significó que los usuarios en Chile y EE. UU. fueron redirigidos a otro lugar al acceder a algunos sitios de redes sociales.
En otro ejemplo, hackers bangladesíes que protestaban por el maltrato en Malasia envenenaron muchos dominios relacionados con Microsoft, Google, YouTube y otros sitios de alto perfil. Esto parece haber sido un caso de secuestro de servidor más que un problema del lado del cliente o de spam.
Incluso WikiLeaks no es inmune a los ataques de envenenamiento de DNS. Un posible secuestro de servidor hace unos años provocó que los visitantes de la web fueran redirigidos a una página dedicada a los hackers.
El envenenamiento de DNS no tiene por qué ser un proceso complicado. Los llamados «hackers éticos», es decir, aquellos que buscan exponer fallos de seguridad en lugar de infligir daño, tienen métodos simples para probar la suplantación en sus propios ordenadores.
Sin embargo, aparte de ser redirigido, puede que no parezca haber ningún efecto a largo plazo del envenenamiento de DNS a primera vista. De hecho, los hay, y hablaremos de ellos a continuación.
Por qué el envenenamiento y la suplantación de DNS son tan dañinos
Hay tres objetivos principales de un atacante que espera realizar un envenenamiento de DNS en un servidor:
- Difundir malware.
- Redirigirte a otra web que les beneficie de algún modo.
- Robar información, ya sea de ti o de otra entidad.
Por supuesto, entender por qué el envenenamiento o la suplantación de DNS es un problema para los ISP, los operadores de servidores y los usuarios finales no requiere un gran esfuerzo de imaginación.
Como señalamos, la suplantación es un enorme problema para los ISP, hasta el punto de que hay herramientas como CAIDA Spoofer disponibles para ayudar.
Hace unos años, las estadísticas mostraban que había alrededor de 30.000 ataques por día. Es casi seguro que este número habrá aumentado desde que se publicó el informe. Además, como fue el caso del ejemplo de la sección anterior, entregar sitios suplantados a través de una red pone en primer plano los problemas de confianza del usuario, junto con los problemas de privacidad.
Independientemente de quién seas, hay algunos riesgos involucrados cuando eres víctima de envenenamiento y suplantación:
- Como con el Gran Cortafuegos de China, podrías estar sujeto a censura. Esto significa que la información que obtengas no será precisa, lo que tiene un efecto dominó en muchos ámbitos sociales y políticos.
- El robo de datos es una preocupación importante y una empresa lucrativa para quienes desean obtener la información bancaria de los usuarios y otros datos sensibles.
- Podrías ser susceptible a malware y otros virus troyanos en tu sistema. Por ejemplo, un atacante podría inyectar un keylogger u otras formas de spyware en tu sistema a través de un sitio suplantado.
También hay otros efectos relacionados con el envenenamiento de DNS. Por ejemplo, es posible que no puedas aplicar ninguna actualización de seguridad a tu sistema mientras el proceso de recuperación está en pleno apogeo. Esto deja tu ordenador vulnerable durante más tiempo.
Además, considera el coste y la complejidad de este proceso de limpieza, ya que afectará a todos a lo largo de la cadena. Precios más altos para todos los servicios conectados es solo uno de los aspectos negativos.
El esfuerzo para eliminar el envenenamiento de DNS es inmenso. Dado que la suplantación afecta a las configuraciones tanto del lado del cliente como del lado del servidor, eliminarla de uno no significa que haya desaparecido de todos.
Cómo prevenir el envenenamiento de DNS
Hay dos áreas afectadas por el envenenamiento de DNS: el lado del cliente y el lado del servidor. Echemos un vistazo a lo que puedes hacer para prevenir este dañino ataque en ambas caras de la moneda.
Empecemos con lo que internet en su conjunto está haciendo en el lado del servidor.
Cómo internet intenta prevenir el envenenamiento y la suplantación de DNS del lado del servidor
Aunque hemos hablado mucho sobre el DNS a lo largo de este artículo, no nos hemos dado cuenta de lo desactualizada que está la tecnología. En resumen, el DNS no es la mejor opción para una experiencia de navegación web moderna debido a algunos factores. Para empezar, no está cifrado, y sin algunas consideraciones de validación vitales, que evitarían que muchos ataques de envenenamiento de DNS continuaran.
Una forma rápida de evitar que los ataques se fortalezcan es con una simple estrategia de registro. Esto realiza una comparación simple entre la petición y la respuesta para ver si coinciden.
Sin embargo, la respuesta a largo plazo (según los expertos) es usar las extensiones de seguridad del sistema de nombres de dominio (DNSSEC). Esta es una tecnología diseñada para combatir el envenenamiento de DNS y, en términos simples, establece diferentes niveles de verificación.
Profundizando, DNSSEC usa «criptografía de clave pública» como verificación. Esta es una forma de aprobar los datos como genuinos y fiables. Se almacena junto con tu otra información DNS, y el servidor recursivo la usa para verificar que ninguna de la información que recibe ha sido manipulada.
Comparado con otros protocolos y tecnologías de internet, DNSSEC es relativamente un bebé, pero es lo bastante maduro como para implementarse en el nivel raíz de internet, aunque aún no está generalizado. Google Public DNS es un servicio que admite plenamente DNSSEC, y cada vez aparecen más.
Aun así, todavía hay algunos inconvenientes con DNSSEC que vale la pena señalar:
- El protocolo no codifica las respuestas. Esto significa que los atacantes todavía pueden «espiar» el tráfico, aunque los ataques tendrán que ser más sofisticados para eludir DNSSEC.
- Debido a que DNSSEC usa registros adicionales para recopilar datos DNS, hay otra vulnerabilidad llamada «enumeración de zona». Esta usa un registro para «recorrer» y recopilar todos los registros DNS dentro de una «zona» específica. Algunas versiones de este registro cifran los datos, pero otras aún no.
- DNSSEC es un protocolo complejo y, dado que también es nuevo, a veces puede estar mal configurado. Por supuesto, esto puede erosionar los beneficios de usarlo y presentar más problemas en el futuro.
Aun así, DNSSEC es el futuro en el lado del servidor, al menos. En cuanto a ti, como usuario final, también hay algunas medidas preventivas que puedes tomar.
Cómo puedes prevenir el envenenamiento de DNS del lado del cliente
Hay más formas de prevenir el envenenamiento de DNS del lado del cliente, aunque ninguna por sí sola será tan robusta como un DNSSEC del lado del servidor implementado por expertos. Aun así, hay algunas casillas simples que puedes marcar como propietario de un sitio:
- Usa cifrado de extremo a extremo para todas las peticiones y respuestas. Los certificados de capa de sockets seguros (SSL) hacen un buen trabajo aquí.
- Usa herramientas de detección de suplantación como Xarp. Estas escanean los paquetes de datos recibidos antes de enviarlos. Esto mitiga cualquier transferencia de datos maliciosa.
- Aumentar los valores de tiempo de vida (TTL) de tu caché de DNS ayudará a eliminar las entradas maliciosas antes de que puedan llegar a los usuarios finales.
- Debes tener una buena estrategia de DNS, DHCP e IPAM (DDI). Consiste en tu estrategia de DNS, el protocolo de configuración dinámica de host y la gestión de direcciones IP. Es un proceso complejo pero necesario que gestionan los administradores de sistemas y los expertos en seguridad de servidores.
Como usuario final, hay algunas cosas más que puedes hacer para ayudar a prevenir el envenenamiento y la suplantación:
- Usa una red privada virtual (VPN), ya que tus datos se cifrarán de extremo a extremo. También podrás usar servidores DNS privados, de nuevo con cifrado de extremo a extremo.
- Toma precauciones simples, como no hacer clic en enlaces no reconocidos y realizar escaneos de seguridad regulares.
- Vaciar tu caché de DNS regularmente también elimina los datos maliciosos de tu sistema. Es algo que lleva unos segundos y es fácil de hacer.
Aunque no puedes eliminar el envenenamiento de DNS por completo, puedes evitar que ocurra lo peor. Como usuario final, no tienes mucho control sobre cómo el servidor maneja los ataques. De igual modo, los administradores de sistemas no pueden controlar lo que ocurre en el navegador. Por ello, es un esfuerzo de equipo evitar que este ataque tan dañino afecte a toda la cadena.
Resumen
Los ataques a internet son comunes. El envenenamiento de DNS (o suplantación) es un ataque común que puede afectar a millones de usuarios si no se controla. Esto se debe a que el protocolo DNS es antiguo y no es adecuado para la navegación web moderna, aunque hay tecnologías más nuevas en el horizonte.
En resumen, el envenenamiento de DNS redirige a un usuario final a una versión fraudulenta de una web existente. Es una forma de robar datos e infectar sistemas con software malicioso. No hay una forma infalible de prevenirlo por completo, pero puedes contenerlo mediante algunas medidas simples.
¿Has sido alguna vez víctima de envenenamiento o suplantación de DNS y, de ser así, qué lo causó? ¡Comparte tu experiencia con nosotros en la sección de comentarios de abajo!
