¿Las solicitudes sin encabezado UserAgent son un riesgo?

3

Un servicio que uso ha decidido bloquear solicitudes HTTP que no proporcionan un UserAgent, citando razones de seguridad.

Por lo que puedo decir, UserAgent es una cadena sin un formato estándar que se utiliza principalmente para estadísticas, que sirve para diferentes versiones de páginas (por ejemplo, dispositivos móviles) y robots de bloqueo. El RFC dice que DEBE (pero NO DEBE) enviarse.

¿Por qué Shellshock funciona en una cadena de usuario? sugiere que un malicioso UserAgent podría construirse, pero el servicio está bloqueando las solicitudes sin un UserAgent.

¿Hay una vulnerabilidad en torno a los encabezados de UserAgent ausentes que no conozco?

    
pregunta Hwesta 30.07.2016 - 00:59
fuente

1 respuesta

6

En realidad no, su comprensión parece ser correcta. Casi todos los navegadores web (y la mayoría de los demás clientes HTTP) enviarán una cadena de usuario-agente, por lo que posiblemente cualquier solicitud que llegue sin ella es bastante incompleta. Por otro lado, básicamente no cuesta nada enviar uno (por ejemplo, con curl , usa el argumento -A) y no se garantiza que tenga nada que ver con la verdad. La mayoría de los clientes, incluidos los navegadores, le permiten simular la cadena de UA como cualquier cosa que usted (el usuario) quiera que sea.

Por supuesto, si le dice al servidor que está ejecutando IE 5 en Windows CE, es posible que recupere algo de HTML / JS realmente abismal, muchos servidores web usan cadenas de acceso a la UA para enviar diferentes versiones de páginas web basadas en capacidades esperadas del navegador que realiza la solicitud, pero ese es su problema, no el problema del servidor. Lo mismo ocurre con el envío de ninguna cadena UA.

Desde el punto de vista de la seguridad, podría poner un golpe de velocidad en el camino de un atacante bloqueando las solicitudes sin UA, o con un UA no confiable, pero todo lo que tiene que hacer un atacante es simplemente falsificar la UA de, digamos, la corriente Versión de Chrome (que es fácil de encontrar y fácil de usar). No es nada más que un golpe de velocidad. Ni siquiera lo llamaría defensa en profundidad, ya que es tan trivial de omitir.

Creo que su proveedor de servicios realmente no asimila la seguridad, y se está cayendo por lo que yo llamo la falacia de "ningún usuario legítimo" (no debe confundirse con "ningún verdadero escocés"). Es así: "OK, entonces hay una amenaza para la seguridad si el usuario [hace X]? Bueno, ningún usuario legítimo haría eso, así que estamos seguros". En este caso, [hace X] parece ser "falsificaciones de la cadena UA de su cliente". Mucha gente simplemente no entiende que un atacante puede, y lo hará, suplantar a un usuario legítimo lo suficientemente bien como para que no pueda distinguir la diferencia hasta que haya sido explotado.

Bueno, eso o simplemente no son conscientes de que la cadena UA no tiene sentido y es trivialmente editable.

    
respondido por el CBHacking 30.07.2016 - 01:19
fuente

Lea otras preguntas en las etiquetas