Dado que el DNS generalmente se ejecuta sobre UDP, los paquetes de respuesta se pueden falsificar fácilmente. Los paquetes UDP se identifican por la combinación de la dirección IP de origen y destino y los números de puerto de origen y destino.
El ataque de envenenamiento de DNS clásico es enviar a un servidor DNS una consulta que cree que hará que el servidor realice una búsqueda recursiva, y luego destruir el servidor con paquetes de respuesta falsificados para la solicitud secundaria que espera que el servidor realice. . Si obtiene la combinación de IP / puerto y el ID de transacción correctos y su respuesta llega primero, su respuesta falsa podría aceptarse e insertarse en el caché.
Bueno, sabemos con anticipación la dirección IP de origen y destino, y sabemos que el DNS se ejecuta en el puerto 53, por lo que es uno de los números de puerto. Suponiendo que las consultas de DNS se envíen DESDE el puerto 53 y que se envíen al puerto 53, tenemos todos los 4. Entonces, solo debemos preocuparnos por el ID de transacción, que es un número de 16 bits. Eso significa que cada paquete que enviamos tiene una probabilidad de 1 en 65K de encontrar oro. Fácilmente podríamos enviar varios miles de paquetes en tan solo un segundo, lo que nos da una buena oportunidad de envenenar la memoria caché del servidor. Si eliminamos los paquetes de respuesta 10K antes de que llegue la respuesta "real", eso nos da una posibilidad de éxito de 1 en 6 en general. Y si falla, solo esperamos el vencimiento y lo intentamos de nuevo.
Pero, si el servidor utiliza un número de puerto de salida aleatorio en las consultas de búsqueda recursiva, eso agrega otros 16 bits de material que tenemos que adivinar para que nuestra respuesta sea aceptada. Así que eso es un total de 32 bits, o alrededor de 4 mil millones de posibilidades. Eso significa que nuestras probabilidades para cada paquete van de 1 en 65,536 a 1 en 4,294,967,296, lo que se vuelve un poco prohibitivo.
Entonces, si bien no puede estar 100% seguro de que una respuesta no sea falsificada, las probabilidades se ponderan mucho más en favor del defensor si aleatoriza sus puertos de origen para sus búsquedas secundarias; suficiente para disuadir a la mayoría de los atacantes de invertir los recursos para intentar el ataque.