Asegurar el DNS: Prioridad 1
El sistema de nombres de dominio (DNS) es básicamente un directorio de direcciones para Internet. Su navegador utiliza el DNS para encontrar la IP de un servicio específico. Por ejemplo, cuando entras en esecurityplanet.com, el navegador consulta un servicio DNS para llegar a los servidores correspondientes, pero también se utiliza cuando envías un correo electrónico.
Es práctico para los usuarios, ya que no tienen que recordar la dirección IP de cada servicio, pero no está exento de riesgos y vulnerabilidades de seguridad. Los atacantes probablemente enumerarán el DNS para intentar ataques comunes.
A menudo es el primer paso para llevar a cabo acciones posteriores como robos de datos, desfiguración o incluso ataques de ransomware que han causado graves daños a muchas organizaciones en los últimos años. Además, los hackers adoran este tipo de ataques, ya que suelen ser difíciles de detectar por las herramientas de seguridad, y permiten dirigirse a miles de víctimas en una sola operación.
DNS: Cinco conceptos críticos
Para entender los ataques de DNS y cómo pueden afectarle, primero debe entender qué es el DNS y cómo funciona:
- Cada dispositivo conectado tiene una IP única para que otras máquinas puedan encontrarlos y reconocerlos.
- El DNS elimina la molestia de memorizar direcciones apenas legibles para cada dispositivo y servicio.
- Cada vez que se navega por una página web, se llama a varios servidores DNS antes de poder ver el contenido.
- La operación que consiste en traducir los nombres de dominio en direcciones IP se denomina búsqueda DNS y es gestionada por los resolutores DNS.
- La caché DNS, también conocida como caché de resolución DNS, es una base de datos llena de búsquedas DNS recientes. Debido a que hay múltiples cachés en diferentes niveles, a menudo hay que esperar a la propagación del DNS cuando se crean o actualizan las entradas DNS.
Explicación de los ataques DNS más comunes
No es una lista exhaustiva, pero las siguientes técnicas son los ataques más comunes utilizados por los actores de amenazas para comprometer el DNS.
Spoofing o envenenamiento de DNS
El término spoofing significa que el atacante intenta hacerse pasar por un servicio legítimo, por ejemplo, falsificando la IP asociada a un dominio.
Aunque el DNS spoofing es un método bastante popular, es un término genérico que cubre varias situaciones. El envenenamiento de la caché de DNS es probablemente más preciso para describir el escenario más común: en esta situación, el atacante consigue llenar la caché de DNS con información falsa, de modo que la consulta de DNS redirigirá a los usuarios a una IP falsa.
Técnicamente no es posible que los resolutores de DNS comprueben los datos de la caché. Por eso, la información falsa permanece en la caché hasta la expiración, también conocida como TTL o tiempo de vida. Aunque este ataque es sólo temporal por definición, a menudo es suficiente para inyectar malware con éxito.
La mayoría de las veces, los hackers redirigen a los usuarios a una copia del sitio web legítimo para robar credenciales o datos bancarios. Aunque hay algunas pruebas de sitios web falsificados que los usuarios pueden detectar, a veces es bastante difícil de detectar, por ejemplo, cuando se trata de un clon exacto de la aplicación original.
Túnel DNS
Este ataque se basa en una arquitectura cliente-servidor y consiste en utilizar otros protocolos como TCP o SSH para tunelizar el malware a través de las peticiones DNS. El atacante suele registrar un nombre de dominio y dirigirlo a su servidor que aloja el malware.
Los hackers llevan mucho tiempo utilizando esta técnica, ya que es especialmente eficaz para conectar un servidor de mando y control a una máquina infectada. No hay ningún cortafuegos que pueda bloquear estas peticiones DNS.
Secuestro de DNS
En este caso, el atacante redirige todas las consultas a otro servidor de nombres de dominio, por ejemplo, después de obtener acceso no autorizado para modificar los registros DNS. A diferencia de los ataques de envenenamiento de DNS, la caché de DNS no está involucrada.
Existen diferentes enfoques y técnicas para el secuestro de DNS. Por ejemplo, el hacker puede modificar la configuración local del DNS o comprometer el router.
Amplificación de DNS
La idea es amplificar el tráfico de los servidores DNS vulnerables para ocultar el origen exacto de un ataque. El atacante falsifica el destino para que sean las direcciones de la víctima, lo que puede hacer caer toda una infraestructura con un mínimo de recursos.
Inundación de DNS
Los ataques de inundación se aprovechan de los dispositivos que trabajan con un gran ancho de banda para bombardear los servidores DNS. Los servidores objetivo no pueden manejar el gigantesco volumen de consultas. Este tipo de ataques suelen estar asociados a redes de bots supercargados (por ejemplo, Mirai), que pueden derribar incluso las organizaciones más grandes.
Cifrado de DNS: DoH vs. DoT
Para combatir los ataques a los DNS, las principales empresas, como Google, han impulsado el cifrado de DNS sobre TLS (DoT) o HTTPS (DoH). Esto se debe a que la mayoría de las solicitudes de DNS han estado sin cifrar durante años, lo que significa que el DNS es propenso a los ataques MITM (man-in-the-middle attacks). Por ejemplo, cualquiera que consiga entrar en una red Wi-Fi o en una red corporativa puede manipular las consultas y respuestas de DNS.
Utilizando software gratuito como Wireshark, es relativamente fácil capturar datos, incluyendo operaciones sensibles y todo el tráfico de Internet.
El gran problema es la confianza ciega entre los dispositivos y los resolutores de DNS. Afortunadamente, el cifrado puede endurecer el acceso a los mensajes DNS. Aunque no es exactamente el mismo concepto, es un poco como la migración de HTTP a HTTPS para un sitio web.
La encriptación de DNS sobre TLS se ha introducido para incluir los mensajes en canales seguros. El cliente y el servidor intercambian mensajes de enlace TLS antes de enviar los mensajes DNS cifrados.
Se basa en un nuevo puerto (por ejemplo, el puerto 53) que puede ser bloqueado por algunos cortafuegos y entra en conflicto con las arquitecturas existentes, lo que en última instancia podría obligar a los usuarios a volver a las peticiones DNS sin cifrar. Por eso se ha creado DoH para solucionar el problema y permitir que las aplicaciones web utilicen las API existentes.
DoH permite ejecutar consultas DNS a través del protocolo HTTPS. Sin la autorización adecuada, es teóricamente imposible acceder a las consultas y respuestas.
Proteger el DNS con DNSCrypt
DNSCrypt es un protocolo que cifra, autentifica y, opcionalmente, anonimiza las comunicaciones entre un cliente DNS y un resolver DNS.
En otras palabras, DNSCrypt cifra todo el tráfico DNS. La criptografía utilizada se denomina criptografía de curva elíptica.
Permite filtrar el tráfico que pasa por UDP y TCP, por ejemplo, en el navegador, lo cual es una medida de seguridad eficaz en las redes corporativas. Puede evitar la falsificación de DNS con autenticación.
DNSCrypt puede instalarse como cliente en la mayoría de los sistemas operativos como Windows, macOS y Linux, así como en Android, iOS y firmwares de routers abiertos. El cliente más popular es dnscrypt-proxy.
Pros
- Permite revisar el tráfico generado desde la red
- Puede bloquear anuncios, malware y spam
- Utiliza el puerto 443
- Puede reducir la latencia (por ejemplo, en redes sólo IPv4)
- Puede desplegarse en servidores en la nube
Contras
La seguridad prevalece sobre la disponibilidad, lo que suele ser positivo pero puede ser un inconveniente
Puede convertirse en un punto único de fallo si otras capas no son seguras
Cómo asegurar el DNS con DNSSEC
La extensión de seguridad del DNS (DNSSEC) utiliza firmas digitales basadas en claves públicas para reforzar el DNS. En lugar de cifrar las consultas y respuestas del DNS, asegura los datos del DNS con pares de claves públicas y privadas.
La clave privada se utiliza para firmar los datos del DNS en una zona específica y generar una firma digital. Y la clave pública se publica en la zona. Cualquier resolvedor que busque datos en la zona puede recuperar la clave pública para validar la autenticidad de los datos DNS antes de devolverlos al usuario.
Si la firma es incorrecta o falta, el resolvedor lo considerará como un ataque y cancelará la transferencia de datos.
Además, DNSSEC suele añadir nuevos registros DNS como RRSIG (firma criptográfica) y DNSKEY.
Pros
- Eficaz para mitigar el envenenamiento del DNS
- Fácil de desplegar y activar
- Gran apoyo del sector
Contras
- Utiliza la validación en lugar del cifrado
- Ir más allá: Pentesting de DNS
Los pentests DNS regulares (pruebas de penetración) son probablemente una de las mejores medidas de seguridad que puede tomar para asegurar el DNS de su organización, ya que emulará los ataques del mundo real.
Los pentesters probablemente comenzarán por enumerar los servicios con Nmap, y luego, podrían utilizar dig para explorar su DNS. Por ejemplo, puedes realizar una búsqueda autorizada de mozilla.org con lo siguiente en Kali Linux:
dig authority mozilla.org
El objetivo final de los comandos dig es recuperar información como la lista de servidores DNS autoritativos, servidores de correo o servidores de nombres. Además, existen módulos específicos en Metasploit para enumerar DNS como auxiliary/gather/enum_dns.
Ver: Docenas de aplicaciones web vulnerables al envenenamiento de caché de DNS a través de la función «Olvidé mi contraseña»
Fuente: eSecurity Planet