Investigador demuestra 4 nuevas variantes del ataque de contrabando de solicitudes HTTP

Ataques de contrabando de solicitudes HTTP

Una nueva investigación ha identificado cuatro nuevas variantes de ataques de contrabando de solicitudes HTTP que funcionan contra varios servidores web comerciales estándar y servidores proxy HTTP.

Amit Klein, vicepresidente de investigación de seguridad en SafeBreach, quien presentó los hallazgos hoy en la conferencia de seguridad Black Hat, dijo que los ataques resaltan cómo los servidores web y los servidores proxy HTTP aún son susceptibles al contrabando de solicitudes HTTP incluso después de 15 años desde que se documentaron por primera vez.

¿Qué es el contrabando de solicitudes HTTP?

El contrabando de solicitudes HTTP (o desincronización de HTTP) es una técnica empleada para interferir con la forma en que un sitio web procesa secuencias de solicitudes HTTP que se reciben de uno o más usuarios.

Las vulnerabilidades relacionadas con el contrabando de solicitudes HTTP generalmente surgen cuando el front-end (un balanceador de carga o proxy) y los servidores back-end interpretan el límite de una solicitud HTTP de manera diferente, lo que permite que un mal actor envíe (o «contrabando») un ambiguo solicitud que se antepone a la siguiente solicitud legítima del usuario.

Esta desincronización de solicitudes puede explotarse para secuestrar credenciales, inyectar respuestas a los usuarios e incluso robar datos de la solicitud de una víctima y filtrar la información a un servidor controlado por un atacante.

La técnica fue demostrada por primera vez en 2005 por un grupo de investigadores de Watchfire, incluidos Klein, Chaim Linhart, Ronen Heled y Steve Orrin. Pero en los últimos cinco años, se han ideado una serie de mejoras, que se expandieron significativamente en la superficie de ataque para dividir las solicitudes en otras y «obtener el máximo acceso privilegiado a las API internas», envenenar los cachés web y comprometer las páginas de inicio de sesión de aplicaciones populares.

¿Qué hay de nuevo?

Las nuevas variantes reveladas por Klein implican el uso de varias combinaciones de servidores proxy, incluidos Abyss, Microsoft IIS, Apache y Tomcat de Aprelium en el modo de servidor web, y Nginx, Squid, HAProxy, Caddy y Traefik en el modo de proxy HTTP.

La lista de las cuatro variantes nuevas es la siguiente, incluida una antigua que el investigador explotó con éxito en sus experimentos.

  • Variante 1: «Encabezado SP / CR basura:…»
  • Variante 2 – «Espéralo»
  • Variante 3 – HTTP / 1.2 para eludir la defensa similar a mod_security
  • Variante 4: una solución simple
  • Variante 5 – «Encabezado CR»

Al manejar solicitudes HTTP que contienen dos campos de encabezado de longitud de contenido, se encontró que Abyss, por ejemplo, aceptaba el segundo encabezado como válido, tomando Squid usó el primer encabezado de longitud de contenido, lo que llevó a los dos servidores a interpretar las solicitudes de manera diferente y lograr la solicitud. contrabando.

En situaciones en las que Abyss recibe una solicitud HTTP con un cuerpo cuya longitud es menor que el valor de Longitud de contenido especificado, espera 30 segundos para cumplir con la solicitud, pero no antes de ignorar el resto del cuerpo de la solicitud. Klein descubrió que esto también genera discrepancias entre Squid y Abyss, y este último interpreta partes de la solicitud HTTP saliente como una segunda solicitud.

Una tercera variante del ataque utiliza HTTP / 1.2 para eludir las defensas WAF como se define en el Conjunto de reglas básicas (CRS) ModSecurity de OWASP para evitar que los ataques de contrabando de solicitudes HTTP generen una carga útil maliciosa que desencadene el comportamiento.

Por último, Klein descubrió que el uso del campo de encabezado «Tipo de contenido: texto/sin formato» era suficiente para evitar las comprobaciones de nivel de paranoia 1 y 2 especificadas en CRS y generar una vulnerabilidad de contrabando de solicitudes HTTP.

¿Cuáles son las posibles defensas?

Después de que los hallazgos se divulgaron a Aprelium, Squid y OWASP CRS, los problemas se solucionaron en Abyss X1 v2.14, Squid versiones 4.12 y 5.0.3 y CRS v3.3.0.

Al pedir la normalización de las solicitudes HTTP salientes de los servidores proxy, Klein enfatizó la necesidad de una solución de firewall de aplicaciones web robusta y de código abierto que sea capaz de manejar los ataques de contrabando de solicitudes HTTP.

«ModSecurity (combinado con CRS) es de hecho un proyecto de código abierto, pero en cuanto a solidez y generidad, mod_security tiene varios inconvenientes», señaló Klein. «No proporciona una protección completa contra el contrabando de solicitudes HTTP [and] solo está disponible para Apache, IIS y nginx».

Con este fin, Klein ha publicado una biblioteca basada en C ++ que garantiza que todas las solicitudes HTTP entrantes sean completamente válidas, conformes y sin ambigüedades al hacer cumplir estrictamente el formato de encabezado HTTP y el formato de línea de solicitud. Se puede acceder desde GitHub aquí.

Continua leyendo

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Newsletter Signup

Suscríbete a nuestra lista si te interesa recibir turcos exclusivos sobre hacking y seguridad informática