ICM / conectividad / El envenenamiento de la caché DNS

El envenenamiento de la caché DNS

22 marzo 2021 | Lluis Pons

Para poder hablar del envenenamiento de la caché DNS (cache poisoning attack) debemos primero explicar que son estos conceptos.

¿Qué es el DNS?

DNS (Domain Name Service o servicio de nombres de dominio) es uno de los servicios más importantes de cualquier red. Nos permite, a través de un nombre la dirección IP, usar el servicio al cual queremos acceder.

En Internet los DNS funcionan de forma jerárquica, donde hay unos servidores llamados Root Servers que van redirigiendo las peticiones a otros servidores autorizados, para servir los diferentes dominios. Estas consultas las realizan los servidores DNS de nuestros proveedores o organizaciones en nombre nuestro cuando realizamos una consulta. Por ejemplo, desde nuestro navegador.

Para optimizar los recursos de computación y de la red, estos servidores tienen una memoria donde almacenan, por tiempo determinado, las diferentes consultas que realizan los usuarios. Así, se mejora la rapidez de respuesta y optimización de recursos.

Por ejemplo, si dos usuarios acceden a https://www.icm.es, el servidor de nombres que utilizamos hará la consulta una sola vez. Y en la segunda consulta, cogerá el resultado obtenido anteriormente que tiene guardado en la memoria. Esta memoria se le llama memoria cache.

caché dns envenenamiento

Envenenamiento de la caché de DNS

Una vez tenemos claro como funcionan los DNS, nos centraremos en explicar de qué se trata el envenenamiento de la cache de DNS.

El objetivo principal de este ransomware es falsificar la dirección IP que obtenemos de la consulta y dirigirnos a un servidor controlado por los atacantes para obtener información o realizar acción ilícita. Pudiendo incluso falsificar páginas web para recolección de datos (bancos etc…). A esta técnica se le llama Pharming u otras actividades del mal. De este modo, el atacante aprovecha vulnerabilidades del servicio DNS para poder inyectar la información falsa.

Para proteger de este tipo de ataques, como siempre, es básico tener actualizados los componentes de software del desarrollador del servicio DNS. Además, en enero de 2010 entró en producción la primera zona raí firmada con DNSSEC.

Qué es DNSSEC y cómo evita el envenenamiento de la caché DNS

DNSSEC (Domain Name System Security Extensions) es una forma de verificar la respuesta de la consulta obtenida del servidor DNS mediante la verificación, a través de la criptografía de clave pública. Para ello, los dominios deberán generar parejas de clave pública/privada e incorporarlas a la zona del dominio.

Existen las Claves de firma de Zona (ZSK) y las Claves de firma de clave (KSK). También se han añadido nuevos registros DNS para poder utilizar DNSSEC:

  • DNSKEY: Contiene la firma pública
  • RRSIG: Existe para cada RR y contiene la firma digital de un registro
  • DS: Sirver para verificar la autenticidad del registro DNSKEY en los servidores TLD.
  • NSEC y NSEC3: Sirven para negar explícitamente la existencia de un registro DNS.

Para utilizarlo deberemos:

  • Crear una clave ZSK y una clave KSK donde obtendremos 4 claves.
  • Incorporaremos a la zona de nuestro dominio las claves públicas que contienen el registro DNSKEY.
  • El siguiente proceso seria firmar la zona he incorporar el fichero de zona, firmado al servidor DNS que contendrá los registros RRSIG para cada registro de DNS.

Durante este proceso también se generarán los ficheros que contienen los registros DS, los cuáles deben darse de alta en nuestro registrador DNS. Estos cambios requieren de un tiempo de propagación.

Para ver si que esté todo correcto, podemos ayudarnos  de la página siguiente: DNSSEC Analyzer (verisignlabs.com)

El proceso es algo complicado lo que dificulta aún hoy un despliegue masivo. Por ello, si necesitas ayuda desde ICM te podemos aconsejar.