Si hay algo que nos enseñan las películas de Hollywood es que los hackers son inteligentes y tienen varios trucos para burlar nuestra seguridad. En el mundo real, un problema de seguridad a menudo se reduce a la oportunidad más que a la habilidad desarrollada. Un ataque de «envenenamiento de DNS» se ajusta a esta descripción y, de hecho, necesitas tener las habilidades necesarias para evitar que tu dominio sea suplantado.

El concepto es simple: los visitantes ven lo que parece ser tu sitio web, pero es fraudulento y dañino, mientras que este sitio web falso parece similar. Por lo tanto, debes emplear varias técnicas para asegurarte de que los usuarios están a salvo y tu sitio permanece libre de ataques.

En este post, vamos a sumergirnos en el concepto de envenenamiento de DNS y suplantación de dominio. También vamos a hablar de algunos de los conceptos circundantes para ayudarte a entender por qué tu eventual respuesta es el mejor enfoque.

Una Introducción al Sistema de Nombres de Dominio (DNS)

Antes de entrar en los detalles del envenenamiento del DNS, hablemos del Sistema de Nombres de Dominio. Aunque navegar por un sitio web parece una tarea sencilla, hay muchas cosas que suceden bajo el capó del servidor.

Hay muchos elementos que intervienen para ir de «A» a «B»:

  • Dirección IP. Es una cadena de números que es tu dirección web real. Considéralos como las coordenadas de tu casa. Por ejemplo, 127.0.0.1:8080 es una dirección «localhost» estándar (es decir, tu ordenador).
  • Nombre de dominio. Si la dirección IP representa coordenadas, el nombre de dominio es tu dirección tal y como aparece en el sobre. Por supuesto, «kinsta.com» es uno de los millones de ejemplos.
  • Una solicitud de DNS. Es un excelente ejemplo de una tarea de alto nivel del frontend con un proceso complejo de bajo nivel. Por ahora, considera que una solicitud es tu navegador preguntando a un servidor dedicado cuál es la dirección de un conjunto de coordenadas.
  • Un servidor DNS. Se diferencia del servidor de tu sitio web en que son cuatro servidores en uno. Su trabajo es procesar las peticiones DNS. Hablaremos de esto con más detalle en secciones posteriores.
  • Servidor recursivo. También verás que estos servidores se llaman «servidores de nombres de resolución». Forma parte del proceso de búsqueda del DNS y se encarga de consultar a los servidores el nombre de dominio relacionado con una dirección IP.

En general, un DNS hace que la búsqueda de un nombre de dominio sea sencilla para el usuario final. Es una parte fundamental de la web y, como tal, tiene muchas partes móviles.

A continuación veremos el proceso de búsqueda propiamente dicho, aunque ya puedes ver cómo el DNS tiene una labor vital que cumplir.

El Proceso de Búsqueda de DNS

Sé paciente mientras 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 las personas extraviadas ha sido el uso de coordenadas. Son explícitas y ofrecen una precisión milimétrica.

Sin embargo, este proceso tiene inconvenientes. En primer lugar, tienes que saber calcular las coordenadas de cualquier lugar, lo que resulta complicado si se trata de una parte remota del mundo. En segundo lugar, hay que articular esas coordenadas al equipo de rescate. Un número equivocado y las consecuencias son nefastas.

La aplicación what3words convierte el complejo proceso de cálculo y transmisión de coordenadas en un resumen de tres palabras sobre tu ubicación general. Por ejemplo, sede de Automattic:

Las oficinas de Automattic en Apple Maps.
Las oficinas de Automattic en Apple Maps.

Las coordenadas del lugar son 37.744159, -122.421555. Sin embargo, a menos que seas un experto navegante, no es probable que sepas esto. Incluso si lo supieras, conseguir que esto llegue a manos de alguien que pueda ayudarte es una propuesta escasa.

En pocas palabras, what3words toma un conjunto abstracto de coordenadas y lo traduce en tres palabras memorables. En el caso de las oficinas de Automattic, se trata de decent.transfers.sleeps:

El sitio web de what3words, que muestra las oficinas de Automattic.
El sitio web de what3words, que muestra las oficinas de Automattic.

Esto pone el complejo posicionamiento global en manos de casi cualquier persona con acceso a la aplicación. Ya ha salvado muchas vidas de civiles.

Esto se relaciona con una búsqueda de DNS porque el proceso es similar. En el caso de what3words, el rescatador pide a la aplicación las coordenadas de una cadena de palabras. La solicitud se envía a través de los servidores para buscar las coordenadas y volver al usuario final cuando se encuentran.

Una búsqueda de 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 busque el nombre de dominio y comienza a recorrer su colección de servidores.
  • Cuando encuentra el nombre de dominio, lo 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 una ubicación general rápidamente, pero puedes tardar más en encontrar a la persona varada.

Una búsqueda de DNS también tiene inconvenientes, y los atacantes maliciosos pueden explotarlos. Sin embargo, antes de ver esto, vamos a hacer un breve desvío para hablar sobre el almacenamiento en caché y cómo esto puede acelerar una búsqueda.

Almacenamiento en Caché de DNS

Al igual que el almacenamiento en caché de la web, el almacenamiento en caché del DNS puede ayudarte a recordar las consultas regulares 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é se encuentra dentro del sistema del servidor DNS y evita el viaje extra al servidor recursivo. Esto significa que un navegador puede obtener una dirección IP directamente del servidor DNS y completar la solicitud GET en un tiempo más rápido.

Encontrarás cachés de DNS en 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 lo mucho que tu experiencia de navegación depende de la caché de DNS, hasta que eres víctima de un envenenamiento de DNS, es decir.

Qué es el Envenenamiento por DNS

Ahora que entiendes el concepto de búsqueda de DNS y todo el proceso de obtención de una dirección IP, podemos ver cómo se puede explotar.

A menudo verás que el envenenamiento de DNS también se denomina «spoofing» porque tener un sitio web fraudulento «parecido» en la cadena es parte del ataque.

Vamos a hablar con más detalle de todos estos aspectos, pero debes saber que el envenenamiento de DNS o spoofing es un ataque dañino que puede causar problemas mentales, monetarios y de recursos a los usuarios y a Internet.

Sin embargo, primero vamos a entrar en el proceso de envenenamiento de la caché.

Cómo Funciona el DNS Spoofing y el Cache Poisoning

Dado que todo el proceso de suplantación de identidad es complejo, los atacantes han creado muchas formas diferentes de lograr su objetivo:

  • Máquina en el medio. En este caso, un atacante se interpone entre el navegador y el servidor DNS, envenena ambos y redirige al usuario a un sitio fraudulento en su propio servidor.
  • Secuestro del servidor. Si un atacante entra en el servidor DNS, puede reconfigurarlo para enviar todas las peticiones a su propio sitio.
  • Envenenamiento mediante spam. A diferencia del secuestro del servidor, este enfoque envenena el lado del cliente (es decir, el navegador). El acceso suele realizarse a través de enlaces de spam, correos electrónicos y anuncios fraudulentos.
  • «Ataques de cumpleaños». Se trata de un complejo ataque criptográfico que requiere alguna explicación más.

Un ataque de cumpleaños se basa en el «problema del cumpleaños«. Se trata de una hipótesis de probabilidad que dice (en pocas palabras) que si hay 23 personas en una habitación, hay un 50% de posibilidades de que dos compartan el mismo cumpleaños. Si hay más personas en la habitación, las probabilidades aumentan.

Un gráfico que muestra el Problema del Cumpleaños. (Fuente de la imagen: Wikipedia)
Un gráfico que muestra el Problema del Cumpleaños. (Fuente de la imagen: Wikipedia)

Esto se traduce en un envenenamiento del DNS basado en el identificador que conecta la solicitud de búsqueda del 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. A partir de unas 450 peticiones, la probabilidad es de aproximadamente el 75%, y a partir de 700 peticiones, un atacante tiene casi garantizado el envenenamiento del servidor.

En resumen, los ataques al servidor DNS se producen en la mayoría de los casos porque esto da a un usuario malicioso una mayor flexibilidad para manipular tu sitio y los datos de los usuarios. Tampoco hay verificación para los datos DNS porque las peticiones y respuestas no utilizan el Protocolo de Control de Transmisión (TCP).

El punto débil de la cadena es la caché DNS, ya que esta actúa como repositorio de entradas DNS. Si un atacante puede inyectar entradas falsificadas en la caché, cada usuario que acceda a ella se encontrará en un sitio fraudulento hasta que la caché expire.

Los atacantes suelen buscar algunas señales, puntos débiles y puntos de datos para atacar. Trabajan para detectar las consultas DNS que aún no han sido almacenadas en la 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 tienen esto, el puerto que utiliza el resolutor y el número de identificación de la solicitud 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 Reales de Envenenamiento del DNS

A lo largo de los años ha habido algunos ejemplos de alto perfil de envenenamiento de DNS. En algunos casos, se trata de 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 que se dirigen a sitios no autorizados por el Estado, como Twitter y Facebook. En un caso, las restricciones chinas llegaron incluso al ecosistema del mundo occidental.

Un error de red de un ISP sueco sirvió información de DNS raíz de servidores chinos. Esto significaba que los usuarios de Chile y Estados Unidos eran redirigidos a otro lugar cuando accedían a algunos sitios de redes sociales.

En otro ejemplo, piratas informáticos de Bangladesh que protestaban por el maltrato en Malasia envenenaron muchos dominios relacionados con Microsoft, Google, YouTube y otros sitios de alto perfil. Este parece haber sido un caso de secuestro del servidor más que un problema del lado del cliente o de spam.

Ni siquiera WikiLeaks es inmune a los ataques de envenenamiento de DNS. Un posible secuestro del servidor hace unos años hizo que los visitantes del sitio 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 los fallos de seguridad en lugar de infligir daños- tienen métodos sencillos para probar la suplantación de identidad en sus propios ordenadores.

Sin embargo, aparte de ser redirigido, puede parecer que no hay efectos a largo plazo del envenenamiento de DNS en la superficie. De hecho, los hay, y hablaremos de ellos a continuación.

Por Qué el Envenenamiento de DNS y la Suplantación de Identidad son tan Perjudiciales

Hay tres objetivos principales de un atacante que espera realizar un envenenamiento de DNS en un servidor:

  • Para propagar el malware.
  • Redirigirte a otro sitio web que les beneficie de alguna manera.
  • Robar información, ya sea tuya o de otra entidad.

Por supuesto, no hace falta dar un salto en la imaginación para entender por qué el envenenamiento de DNS o la suplantación de identidad es un problema para los ISP, los operadores de servidores y los usuarios finales.

Como hemos señalado, la suplantación de identidad es un gran problema para los ISP, hasta el punto de que existen herramientas como CAIDA Spoofer para ayudar.

El sitio web del CAIDA.
El sitio web del CAIDA.

Hace unos años, las estadísticas mostraban que había unos 30.000 ataques diarios. Esta cifra habrá aumentado con toda seguridad desde la publicación del informe. Además, como en el caso del ejemplo de la sección anterior, la distribución de sitios falsos a través de una red plantea problemas de confianza a los usuarios, así como problemas de privacidad.

Independientemente de quién seas, existen algunos riesgos cuando eres víctima de envenenamiento y suplantación de identidad:

  • Al igual que con el Gran Corta fuegos de China, podrías ser objeto de censura. Esto significa que la información que obtengas no será precisa, lo que tiene un efecto en muchos ámbitos sociales y políticos.
  • El robo de datos es una de las principales preocupaciones, y es un negocio lucrativo para aquellos que quieren obtener la información bancaria de los usuarios y otros datos sensibles.
  • Puedes estar expuesto a diferentes tipos de 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 falso.

También hay otros efectos relacionados con el envenenamiento del 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 desarrollo. Esto deja a tu ordenador vulnerable durante más tiempo.

También hay que tener en cuenta el coste y la complejidad de este proceso de limpieza, ya que afectará a todos los integrantes de la cadena. El aumento de los precios de todos los servicios conectados es solo uno de los aspectos negativos.

El esfuerzo de eliminar el envenenamiento del DNS es inmenso. Dado que el spoofing afecta tanto a las configuraciones del lado del cliente como del lado del servidor, librarlo de uno no significa que haya desaparecido de todos.

Cómo Prevenir el Envenenamiento por DNS

Hay dos áreas afectadas por el envenenamiento de DNS: del lado del cliente y del lado del servidor. Vamos a echar un vistazo a lo que puedes hacer para prevenir este ataque perjudicial en ambos lados de la moneda.

Empecemos por lo que hace Internet en su conjunto en el lado del servidor.

Cómo Internet Trata de Evitar el Envenenamiento del DNS y la Suplantación de Identidad del Lado del Servidor

Aunque hemos hablado mucho sobre el DNS a lo largo de este artículo, no hemos señalado lo anticuada que es esta tecnología. En resumen, el DNS no es el más adecuado para una experiencia de navegación web moderna debido a unos cuantos factores. Para empezar, no está encriptado, y sin algunas consideraciones vitales de validación, eso impediría que muchos ataques de envenenamiento de DNS continuaran.

Una forma rápida de evitar que los ataques se hagan más fuertes es mediante una simple estrategia de registro. Esto lleva a cabo una comparación directa entre la solicitud y la respuesta para ver si coinciden.

Sin embargo, la respuesta a largo plazo (según los expertos) es el uso de las extensiones de seguridad del sistema de nombres de dominio (DNSSEC). Se trata de una tecnología diseñada para combatir el envenenamiento del DNS y, en términos sencillos, pone en marcha diferentes niveles de verificación.

En profundidad, DNSSEC utiliza la «criptografía de clave pública» como verificación. Se trata de una forma de certificar que los datos son auténticos y fiables. Se almacena junto con el resto de la información del DNS y el servidor recursivo la utiliza para comprobar que ninguna de las informaciones que recibe ha sido alterada.

Comparado con otros protocolos y tecnologías de Internet, el DNSSEC es un bebé, pero está lo suficientemente maduro como para que se implemente en el nivel raíz del Internet, aunque todavía no es la corriente principal. El DNS público de Google es uno de los servicios que soporta DNSSEC en su totalidad, y cada vez aparecen más.

Aun así, hay algunos inconvenientes con DNSSEC que vale la pena señalar:

  • El protocolo no codifica las respuestas. Esto significa que los atacantes pueden seguir «escuchando» el tráfico, aunque los ataques tendrán que ser más sofisticados para eludir DNSSEC.
  • Dado que DNSSEC utiliza registros adicionales para recopilar datos DNS, existe otra vulnerabilidad denominada «enumeración de zonas». Esto utiliza un registro para «recorrer» y recoger todos los registros DNS dentro de una «zona» específica. Algunas versiones de este registro encriptan los datos, pero otras aún no lo hacen.
  • DNSSEC es un protocolo complejo, y como también es nuevo, a veces puede estar mal configurado. Por supuesto, esto puede erosionar los beneficios de su uso y presentar más problemas en el futuro.

Aun así, DNSSEC es el futuro en el lado del servidor, en todo caso. En cuanto a ti, como usuario final, también hay algunas medidas preventivas que puedes tomar.

Cómo Prevenir el Envenenamiento de DNS en el Lado del Cliente

Hay más formas de prevenir el envenenamiento de DNS en el lado del cliente, aunque ninguna por sí sola será tan robusta como la DNSSEC del lado del servidor implementada por un experto. Aun así, hay algunas casillas sencillas que puedes marcar como propietario de un sitio:

  • Utilizar el cifrado de extremo a extremo para cualquier solicitud y respuesta. Los certificados Secure Sockets Layers (SSL) hacen un buen trabajo aquí.
  • Utiliza herramientas de detección de spoofing. Estas pueden escanear los paquetes de datos recibidos antes de enviarlos. 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é 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). Esto consiste en tu estrategia de DNS, el Protocolo de Configuración Dinámica de Host y la Gestión de Direcciones IP. Se trata de un proceso complejo pero necesario, gestionado por administradores de sistemas y 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 de identidad:

  • Utiliza una red privada virtual (VPN), ya que tus datos estarán encriptados de extremo a extremo. También podrás utilizar servidores DNS privados, también con encriptación de extremo a extremo.
  • Toma sencillas precauciones, como no hacer clic en enlaces no reconocidos y realizar análisis de seguridad periódicos.
  • Limpiar la caché de DNS con regularidad también elimina los datos maliciosos de tu sistema. Es algo que lleva unos segundos y es sencillo de llevar a cabo.

Aunque no te puedes librar del envenenamiento del DNS en su totalidad, puedes evitar que ocurra lo peor. Como usuario final, no tienes mucho control sobre cómo el servidor maneja los ataques. Del mismo modo, los administradores de sistemas no pueden controlar lo que ocurre en el navegador. Por lo tanto, es un esfuerzo de equipo para evitar que este ataque tan dañino afecte a toda la cadena.

Resumen

Los ataques en Internet son habituales. El envenenamiento de DNS (o spoofing) 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 está adaptado a la navegación web moderna, aunque hay nuevas tecnologías en el horizonte.

En resumen, el envenenamiento de DNS redirige al usuario final a una versión fraudulenta de un sitio web existente. Es una forma de robar datos e infectar los sistemas con malware. No hay una forma infalible de evitarlo por completo, pero puedes contenerlo con algunas medidas sencillas.

¿Has sido alguna vez víctima de un envenenamiento de DNS o de una suplantación de identidad, y si es así, cuál fue la causa? Comparte tu experiencia con nosotros en la sección de comentarios.

Jeremy Holcombe Kinsta

Editor de Contenidos y Marketing en Kinsta, Desarrollador Web de WordPress y Redactor de Contenidos. Aparte de todo lo relacionado con WordPress, me gusta la playa, el golf y el cine. También tengo problemas con la gente alta ;).