httpoxy: ¿TLS / SSL mitiga la vulnerabilidad del encabezado de proxy HTTP?

12

Hay una nueva vulnerabilidad de marca con nombre de lujo llamada HTTPOXY .

Mi pregunta aquí: ¿Los sitios servidos a través de TLS también se ven afectados? ¿O es esto un problema solo para los sitios HTTP (canal de comunicación no cifrado)?

EDITAR: Se agregó una imagen para aclarar la amenaza y el escenario de ataque:

    
pregunta boleslaw.smialy 19.07.2016 - 09:53
fuente

2 respuestas

9

No sabía nada de esto hasta que leí el enlace que publicaste, así que no veas esta respuesta como autorativa. Le recomendaría que tome las precauciones enumeradas en "Mitigación inmediata" ahora, hasta que esté completamente seguro de que no está afectado.

Primero, ¿cómo funciona esta vulnerabilidad? Esta es una forma breve del ejemplo de PHP que se explica en "Cómo funciona" :

  1. El atacante envía una solicitud con el encabezado Proxy configurado a una IP maliciosa controlada por el atacante.
  2. Si el servidor ejecuta CGI, los valores de todos los encabezados terminan en getenv("HTTP_NAME_OF_HEADER") , o en este caso getenv("HTTP_PROXY") .
  3. Si la secuencia de comandos que se ejecuta en el servidor también usa un cliente HTTP (como Guzzle) para enviar sus propias solicitudes, también puede leer getenv("HTTP_PROXY") , pero no para obtener el encabezado, sino para saber si debe usar un proxy para El tráfico saliente. La IP enviada por el atacante se utilizará como proxy.
  4. El atacante ahora puede MITM todas las solicitudes salientes que realiza el servidor.

Lo importante a tener en cuenta es que aquí se realizan dos solicitudes:

  • A. Uno en el paso # 1, donde el atacante realiza una solicitud al servidor vulnerable.
  • B. Uno en el paso # 3, donde el servidor vulnerable actúa como un cliente y realiza una solicitud en otro lugar.

Si usa HTTPS para A, no importa (supongo que eso es lo que significaría "sitios servidos a través de TLS"). Se encripta al HTTP antiguo de todos modos. Así que eres vulnerable.

Sin embargo, si usa HTTPS para B, puede ser importante, ya que (como hectorct señala en los comentarios) el atacante no podrá MITM la solicitud de todos modos, asumiendo que el cliente verifique el certificado y que el TLS sea bueno y así sucesivamente. Es la segunda solicitud de la que hablan en estos pasajes (mi punto culminante):

  

Algunas cosas son necesarias para ser vulnerables:

     
  • El código se ejecuta en un contexto similar a CGI, donde HTTP_PROXY se convierte en una variable de entorno real o emulada
  •   
  • Un cliente HTTP que confía en HTTP_PROXY y lo configura como el proxy
  •   
  • Ese cliente, utilizado dentro de un controlador de solicitudes, realiza una solicitud HTTP (a diferencia de HTTPS)
  •   
  

Y, por supuesto, otra estrategia de defensa en profundidad que funciona es utilizar HTTPS para solicitudes internas, no solo para asegurar las conexiones de su sitio con el mundo exterior. Los que no están afectados por HTTP_PROXY .

    
respondido por el Anders 19.07.2016 - 10:24
fuente
1

TLS es un cifrado de extremo a extremo, lo que significa que el tráfico entre el cliente y el servidor está cifrado y, por ejemplo, alguien que realiza un ataque MitM no puede acceder a él. Esto no protege su servidor de ninguna manera, solo protege los datos que se transmiten. Entonces, sí, puede ser explotado a través de http y también a través de https .

    
respondido por el davidb 19.07.2016 - 09:57
fuente

Lea otras preguntas en las etiquetas