¿Por qué incluir una cookie de cliente DNS en el cálculo de cookies del servidor DNS?

3

El estándar propuesto para cookies de DNS especifica que la cookie del servidor se computará como sigue:

  

La cookie del servidor DEBE consistir o incluir una versión de 64 bits o más      función pseudoaleatoria de la dirección IP de origen de la solicitud, la solicitud      Cookie del cliente y una cantidad secreta que solo conoce el servidor.

El razonamiento proporcionado para la inclusión de la cookie del cliente es el siguiente:

  

Sin embargo, los dispositivos NAT a veces también asignan puertos. Esto puede causar      múltiples solicitudes de DNS y respuestas de múltiples hosts internos a      asignarse a un número menor de direcciones IP externas, como una      dirección. Por lo tanto, podría haber muchos clientes detrás de una caja NAT que      parece provenir de la misma dirección IP de origen a un servidor externo      esa caja NAT. Si uno de estos fue un atacante (piense en Zombie o      Botnet), que el atacante detrás de NAT podría obtener la cookie del servidor para      algún servidor para la dirección IP saliente simplemente haciendo algo al azar      solicitud a ese servidor. Entonces podría incluir esa cookie de servidor en      COOKIE OPT de solicitudes al servidor con la IP local falsificada      Dirección de algún otro host y / o cliente detrás del cuadro NAT.      (La posesión de esta cookie de servidor por parte de un atacante no ayudará en la falsificación      Respuestas para causar envenenamiento de caché ya que tales respuestas están protegidas por      la cookie de cliente requerida.)

     

Para corregir este defecto potencial, es necesario distinguir      Diferentes clientes detrás de una caja NAT desde el punto de vista del      servidor. Es por esta razón que la cookie del servidor se especifica como      una función pseudoaleatoria de la dirección IP de origen de la solicitud y      la cookie del cliente. De esta inclusión de la Cookie de Cliente en el      cálculo de la cookie del servidor, se deduce que un cliente estable      Cookie, para cualquier servidor en particular, es necesario. Si, por ejemplo, el      El ID de la solicitud se incluyó en el cálculo de la cookie del cliente, se      Normalmente cambiaría con cada solicitud a un servidor en particular. Esta      significaría que cada solicitud tendría que enviarse dos veces: primero a      Conozca la nueva cookie de servidor basada en esta nueva cookie de cliente basada en      la nueva identificación y luego otra vez usando esta nueva cookie de cliente para realmente      Obtén una respuesta. Por lo tanto, la entrada para el cálculo de la cookie del cliente debe      estar limitado a la dirección IP del servidor y una o más cosas que      cambia lentamente, como el secreto del cliente.

¿Contra qué ataque se supone que debe protegerse este ataque? ¿Y cómo consigue dicha protección?

Los tres ataques mencionados en el documento son:

  • Ataques de amplificación de DNS
  • Denegación de servicio del servidor DNS
  • Envenenamiento de caché y respuesta a ataques de falsificación

Pero, por lo que puedo decir, la inclusión de la cookie del cliente en el cálculo de la cookie del servidor no puede abordar ninguno de ellos.

Los ataques de amplificación de DNS en los que el atacante y la víctima están detrás del mismo NAT aún serán posibles. Cuando el atacante ha recibido la cookie del servidor, simplemente puede comenzar a falsificar la IP de la víctima mientras usa la cookie del cliente y la cookie del servidor intercambiadas con el servidor previamente. Debido a que el cliente y la víctima están detrás del mismo NAT, el cambio en la dirección IP del cliente será invisible para el servidor. Por lo tanto, la cookie del cliente aún se asigna a la misma cookie del servidor, y el ataque tendrá éxito.

En el caso de DNS Server DoS, el objetivo de las cookies es simplemente garantizar que el servidor sabrá la dirección IP correcta de quien esté realizando el ataque. Cuando el atacante está detrás de un NAT, el servidor verá la dirección IP de ese NAT, independientemente de la falsificación que realice el atacante detrás del NAT. Y las cookies no cambian eso.

En el caso de respuestas falsificadas, la cookie de cliente de la víctima proporciona la protección que permanece desconocida para el atacante. Entonces, independientemente de cómo se calcule la cookie del servidor, este ataque fallará. Además, las respuestas falsificadas no son, por definición, generadas por el servidor, por lo que no habrá ninguna validación de la cookie del servidor.

Entonces, si la inclusión de la cookie del cliente en el cálculo de la cookie del servidor no se realiza por una de estas tres razones, ¿cuál es el propósito de la misma?

    
pregunta kasperd 07.01.2016 - 08:46
fuente

1 respuesta

2

Si lo comprendo correctamente, agregar la dirección IP del cliente a la cookie del servidor se usa para proteger contra los ataques de suplantación de origen contra un cliente que está detrás del mismo NAT que el atacante.

Si la cookie del servidor solo está asociada con la dirección IP externa del NAT, entonces el atacante interno podría realizar una solicitud válida al servidor para obtener una cookie del servidor que sea válida para todos los clientes detrás del mismo NAT. Luego, el atacante podría crear una solicitud con la dirección IP de origen falsificada configurada en la dirección IP de las víctimas internas. La puerta de enlace NAT reemplazará la IP de origen a la IP externa cuando se comunique con el servidor. La puerta de enlace NAT reenviará la respuesta del servidor al supuesto remitente de la solicitud, es decir, a la víctima. Pero como la solicitud contenía la cookie del servidor, el servidor asume que se comunica con una víctima autenticada y desactivará la protección de amplificación.

Al asociar la cookie del cliente con la cookie del servidor e incluir tanto la cookie del cliente como la cookie del servidor en la solicitud, el servidor puede validar que la solicitud proviene realmente del mismo cliente que recibió la cookie del servidor antes y no de otro cliente detrás de la misma. Puerta de enlace NAT. Solo si el atacante puede obtener la cookie del cliente podrá montar un ataque contra el cliente. Pero para hacer esto, el atacante debe poder detectar el tráfico de red que necesita más recursos y permisos y, por lo tanto, está excluido explícitamente en el escenario de ataque. De la sección 9 del borrador:

  
  1. Consideraciones de seguridad
  2.   

Las cookies de DNS proporcionan una forma débil de autenticación de las solicitudes y respuestas de DNS. En particular, no proporcionan protección contra los adversarios "de camino"; es decir, no proporcionan protección contra ningún adversario que pueda observar el tráfico DNS de texto sin formato , como un enrutador en ruta, un puente o cualquier dispositivo en un enlace compartido en la ruta (a menos que el DNS el tráfico en cuestión en esa ruta está cifrado).

    
respondido por el Steffen Ullrich 07.01.2016 - 21:26
fuente

Lea otras preguntas en las etiquetas