Esta semana ha visto la luz lo que se ha venido a llamar DNSpooq, todo un conjunto de vulnerabilidades afectando a Dnsmasq, un redireccionador de DNS open-source muy presente en muchisimos dispositivos como routers o dispositivos Android y que permitiría a un atacante poder lanzar ataques de envenenamiento de DNS y ejecutar código remoto.
Investigadores de la firma israelí JSOF, han desvelado la existencia de hasta 7 vulnerabilidades en Dnsmasq (DNS masquerade). Este software entre otras funciones proporciona y se utiliza para almacenar un cache de entradas DNS y de esta manera mejorar el rendimiento de red reduciendo estas llamadas a nameservers externos. Para hacernos una idea de su nivel de distribución, cuando los investigadores descubrieron estas vulnerabilidades, detectaron cerca de 1 millón de instancias vulnerables de Dnsmasq.
Este software esta incluido por ejemplo en dispositivos Android y routers de empresas como Cisco, Aruba o Ubiquiti..
Como decíamos, las vulnerabilidades permiten un ataque de envenenamiento de DNS, esto es que un atacante, aprovechando que en un DNS solo puede haber un máximo de 65.536 posibles ids de transacción (TXIDs) puede inundar al servidor DNS con un número igual de paquetes UDP modificados.
Si se está produciendo una consulta por parte de un servidor DNS contra un servidor autoritativo DNS por ejemplo para el dominio ciberseguridad.net y antes de que llegue la respuesta de este, al servidor DNS le llega un paquete modificado por el atacante con el mismo número de TXID, este guardará en cache la IP fraudulenta y el cliente accederá a la misma.
Para prevenir este ataque, se introdujo el mecanismo de SPR (Source Port Randomization) que en vez de que el servidor esperara siempre la respuesta en el puerto 53 (1 puerto x 65.536 TXIDs) esta espera fuera en un puerto aleatorio (Y puertos x 65.536 TXIDs) lo cual aumentaba exponencialmente la dificultad de envenenar el cache de esta manera. Pero como se suele decir hecha la ley hecha la trampa, surgiendo el ataque de canal-lateral. Este, del que ya hablaremos en un post de la serie de ataques informáticos, comprueba paralelamente que puertos del servidor están abiertos, lo cual ayuda de nuevo a aumentar las probabilidades de éxito.
Es algo similar a esto último en lo que se basan tres de las vulnerabilidades publicadas para Dnsmasq, (CVE-2020-25684, CVE-2020-25685 y CVE-2020-25686) todas ellas pudiendo ser aprovechadas para reducir la entropia de combinaciones de puerto + TXIDs. Las versiones de Dnsmasq desde la 2.78 a la 2.82 son vulnerables a estos ataques. Las otras cuatro vulnerabilidades, son desbordamientos de bufer heap que obviamente pueden permitir a un atacante una ejecución de código en el dispositivo.
Los investigadores de JSOF, han demostrado cómo se pueden combinar ambos ataques o incluso hacerlos parte de otros más complejos, con lo que cualquier versión afectada Dnsmasq se convertía en un punto de entrada a la red o base para lanzar otro tipo de ataques como DDoS.
Actualizar a versión 2.83 o superior
Desde el descubrimiento de las vulnerabilidades los distintos fabricantes han sido advertidos de actualizar sus dispositivos a versiones no afectadas por estas vulnerabilidades. Por lo que como siempre revisad nuevos firmwares disponibles o potenciales actualizaciones del software para tener vuestros equipos lo más seguros posible. Además y como viene y será tendencia se recomienda el uso de DoH (DNS-over-HTTPS) o de DoT (DNS-over-TLS) siempre que sea posible.