Riesgo de seguridad al agregar un encabezado HTTP con el identificador del servidor

6

Estamos a punto de implementar una aplicación web en una granja de servidores web con bastantes servidores web. Durante nuestras pruebas hemos encontrado problemas que ocurren en uno de los servidores pero no en otros. La mayoría de ellos debido a una mala configuración en los servidores web.

Identificar el servidor que se está portando mal resulta ser mucho tiempo. Pensé en agregar un encabezado HTTP a la respuesta con un identificador de servidor. De esa manera podemos ver rápidamente desde el navegador qué servidor procesó la solicitud.

Supongamos que nuestros servidores web se nombran siguiendo el patrón:

  • prodweb1
  • prodweb2
  • prodweb3
  • y así sucesivamente

El encabezado HTTP de respuesta para prodweb1 sería:

X-ServerID: 1

y para prodweb2:

X-ServerID: 2

¿Existe una vulnerabilidad de seguridad al especificar en la respuesta el servidor que procesó la solicitud? ¿Alguien podría aprovechar esto de alguna manera para un ataque?

    
pregunta epignosisx 14.02.2013 - 16:24
fuente

4 respuestas

5

¿Esto revela más información a un atacante potencial? Sí. ¿Te hace vulnerable a un ataque al que no eras vulnerable? No. Es posible que les hayas ayudado a atacarte un poco más rápido. Sin embargo, todavía tienen que encontrar un defecto para explotar. Realmente, está tan seguro como lo hubiera estado sin usar un equilibrador de carga (o más correctamente, está tan seguro como usar un servidor detrás de un equilibrador de carga, ya que el equilibrador de carga también podría ser atacado). ¿Es el punto de la seguridad del equilibrador de carga, o para permitir más carga de la que podría manejar un solo servidor?

Ahora, probablemente ya esté registrando solicitudes de acceso en archivos de registro o en una base de datos de algún tipo; por lo general, el almacenamiento de cosas en cada servidor como IP / marca de tiempo / solicitud GET / estado HTTP, tamaño de respuesta y cadena de agente de usuario. ¿Sería posible en la depuración ejecutar un grep rápido sobre los registros relevantes para identificar el servidor que no está funcionando? Por ejemplo, cambie el User-Agent en su navegador mientras prueba algo como "DEBUG_14_Feb_2013", busque ese User-Agent en todos los registros e identifique las solicitudes del servidor + que funcionan mal según el tamaño de la respuesta o la marca de tiempo o IP.

O tal vez podría activar este encabezado HTTP, pero solo durante la depuración al tener un conjunto de indicadores recibido del equilibrador de carga (o alternativamente configurado en cada servidor), ¿así que solo se muestra cuando se está depurando un problema?

    
respondido por el dr jimbob 14.02.2013 - 18:56
fuente
3

Como de costumbre, cuantos más datos obtenga un atacante sobre tu arquitectura, más fácil será para él. La información de depuración ayuda tanto a los desarrolladores como a los atacantes. Sin embargo, la ventaja de conocer la arquitectura detallada de su servidor no es tan grande como suele suponerse; y sería suicida confiar en la "oscuridad" de la arquitectura para la seguridad.

Consulte esto publicación de blog para algunas opiniones y sugerencias adicionales.

    
respondido por el Thomas Pornin 14.02.2013 - 16:42
fuente
3

Si a un servidor individual le falta un parche o tiene un problema de configuración, el atacante podría identificarlo fácilmente.

Si el atacante intenta atacar esa máquina, deducirá más fácilmente qué enfoque de equilibrio de carga está utilizando (cookie estándar, IP de origen, contra hash de autenticación). Puede usar esta información para atacar a cada servidor individualmente.

    
respondido por el random65537 14.02.2013 - 16:53
fuente
2

Cualquier información que no sea necesaria no se debe dar al mundo. Si se puede usar en algún exploit encadenado y puede ser valioso correlacionado con otra información aislada.

Ej: Si está equilibrando la carga de las conexiones, sería más fácil para el atacante identificar e intentar bloquear la sesión en el servidor.

    
respondido por el Hugo 14.02.2013 - 16:42
fuente

Lea otras preguntas en las etiquetas