El pasado miércoles investigadores de las Universidades de California y Tsinghua publicaron una serie de fallos de seguridad que reviven un ataque de envenamiento de caché DNS similar al de Kaminsky: el bautizado como SAD DNS o Side-channel AttackeD DNS. El nombre de side-channel o canal lateral es porque se identifica el puerto UDP abierto por el cliente para resolver un nombre determinado ya que con eso y el ID de la transacción (TxID) se le puede enviar una respuesta falsificada. Y, ¿cómo puede identificar un atacante el puerto UDP abierto por su víctima? Veamos...
Si escaneamos un puerto UDP que está abierto no recibiremos respuesta pero si el puerto está cerrado el servidor responderá por ICMP con el mensaje de que el puerto es inalcanzable. Sin embargo, para evitar ser saturado los sistemas limitan las respuestas a 1000 por segundo en Linux o 200 por segundo en Windows. Precisamente, con esa lógica y esos límites juega este ataque: si después de una verificación de un rango de 1000 puertos (se escanean 50 puertos cada 20 ms realmente) volvemos a lanzar otra petición, esta vez con la IP no spoofeada, y nos devuelve un paquete ICMP entonces ya sabemos que uno de ellos estaba abierto. Entonces para obtener el puerto abierto evidentemente sólo necesitaremos unos 65 segundos (65536 puertos / 1000 límite x 1 segundo). voilá!
Con el puerto de origen identificado todo lo que un atacante tiene que hacer es insertar una dirección IP maliciosa para redirigir el tráfico del sitio web y realizar con éxito un ataque de envenenamiento de caché DNS.
Este nuevo fallo afecta a los sistemas operativos Linux (kernel 3.18-5.10), Windows Server 2019 (versión 1809) y posteriores, macOS 10.15 y posteriores, y FreeBSD 12.1.0 y posteriores. Se estima que el 34% de los resolvers abiertos en Internet son vulnerables, 85% de los cuales forman parte de servicios DNS tan populares como los de Google y Cloudflare.
Para mitigar este ataque se recomienda deshabilitar las respuestas ICMP salientes y configurar el tiempo de espera de las consultas de DNS de manera más agresiva. Por otro lado, el parche del kernel lo que hace es que no haya un valor fijo de 1000 respuestas por segundo, sino de un valor aleatorio de entre 500 y 2000.
Fuentes:
Comentarios
Publicar un comentario