WAFFLED: Exploiting Parsing Discrepancies to Bypass Web Application Firewalls
El artículo presenta "WAFFLED", una técnica innovadora que explota discrepancias de análisis en componentes no maliciosos de las solicitudes HTTP para eludir cinco WAFs principales, validando su impacto en más del 90% de los sitios web y proponiendo una herramienta de normalización para mitigar estas vulnerabilidades.
Artículo original bajo licencia CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta es una explicación generada por IA del artículo a continuación. No ha sido escrita ni avalada por los autores. Para mayor precisión técnica, consulte el artículo original. Leer descargo de responsabilidad completo
🧁 WAFFLED: ¿Cómo engañar al "Guardián de la Galleta"?
Imagina que las aplicaciones web (como tu banco en línea, tu red social o tu correo) son casas muy importantes. Para protegerlas, tienen un guardia de seguridad en la puerta llamado WAF (Web Application Firewall).
La función de este guardia es revisar a todos los que llegan (las peticiones HTTP) y decir: "¡Pasa!" si es un cliente normal, o "¡Alto! ¡Eso es un ataque!" si ve algo sospechoso, como un intento de robo o un virus.
El problema que descubrieron los autores de este estudio es que el guardia y la casa no siempre hablan el mismo idioma.
1. El Problema: Dos Interpretaciones Diferentes
Imagina que tú eres un ladrón astuto. No intentas romper la puerta ni saltar la cerca. En su lugar, te disfrazas de un mensajero y le entregas una carta al guardia.
- El Guardia (WAF): Lee la carta de una manera. Por ejemplo, ve un sobre con un sello raro y piensa: "Esto parece un sobre normal, no tiene nada peligroso". Así que te deja pasar.
- La Casa (La Aplicación Web): Cuando la carta llega a su destino, el recepcionista de la casa la lee de otra forma. Ve el mismo sello raro y piensa: "¡Oh! Esto es una orden secreta para abrir la caja fuerte".
El resultado: El guardia dejó pasar el ataque porque no entendió la "tortura" que le hiciste al sobre, pero la casa sí lo entendió y ejecutó el ataque. A esto se le llama discrepancia de análisis.
2. La Estrategia: "Waffled" (El Juego de las Galletas)
Los investigadores crearon una herramienta llamada WAFFLED. Su nombre es un juego de palabras con "Waffle" (galleta con huecos) y "WAF".
Imagina que la información que envías a internet es como una galleta con muchos huecos (llenos de datos).
- Los atacantes tradicionales intentan esconder sus armas dentro de la galleta (usando códigos raros o encriptación).
- WAFFLED hace algo diferente: no cambia el arma, sino que deshace y rehace la galleta.
Cambian cosas pequeñas y extrañas en los bordes de la carta (los "encabezados" o "límites" de los datos):
- Añaden un espacio en blanco donde no debería ir.
- Cambian una letra mayúscula por minúscula en un nombre técnico.
- Ponen un carácter invisible (como un "espacio fantasma") en medio de una palabra.
La analogía: Es como si le dijeras al guardia: "Mira, este paquete tiene una etiqueta que dice 'Comida' (y el guardia lo deja pasar porque cree que es comida)". Pero cuando el paquete llega a la cocina, el chef (la aplicación) ve que la etiqueta estaba escrita de forma extraña y, al leerla bien, descubre que en realidad dice "Bomba".
3. ¿Qué encontraron?
Los investigadores probaron esta técnica contra los 5 guardias de seguridad más famosos del mundo (Cloudflare, AWS, Azure, Google Cloud y ModSecurity) y contra las cocinas más populares (Laravel, Spring Boot, Flask, etc.).
- El resultado fue aterrador: Encontraron más de 1,200 formas diferentes de engañar a estos guardias.
- El truco: Usaron formatos de datos muy comunes que todos usan:
- JSON: Como una lista de compras estructurada.
- XML: Como un documento con muchas etiquetas.
- Multipart: Como una caja de envío que contiene varios paquetes pequeños dentro.
En el 90% de los sitios web reales que revisaron, descubrieron que si cambiabas el formato de la "caja" (por ejemplo, de un formato simple a uno complejo), la aplicación aceptaba ambos. Esto significa que el truco funciona en casi cualquier lugar.
4. La Solución: El "Normalizador" (El Traductor Perfecto)
Los autores no solo señalaron el problema, sino que crearon una solución llamada HTTP-Normalizer.
Imagina que este es un traductor universal que se coloca entre el guardia y la casa.
- Antes de dejar pasar la carta, el traductor la reescribe en un formato perfecto y estricto (siguiendo las reglas oficiales del idioma, llamadas RFC).
- Si la carta tiene un error, un espacio extraño o un sello mal puesto, el traductor la destruye (la rechaza).
- Si la carta es válida, la traduce a un formato limpio y estandarizado.
El efecto: Al hacer esto, el guardia y la casa ya no tienen discrepancias. Ambos ven la misma carta limpia. Si la carta es un ataque, ambos la verán como tal y la bloquearán.
5. Conclusión: ¿Qué aprendemos?
Este estudio nos enseña que la seguridad no es solo tener un guardia fuerte, sino que todos los que intervienen en el proceso deben entender las reglas del juego de la misma manera.
- Para los dueños de sitios web: No basta con instalar un firewall; hay que asegurarse de que el servidor y el firewall "hablen el mismo dialecto".
- Para los atacantes: Ya no hace falta ser un genio de la programación para romper la seguridad; a veces basta con ser un experto en "gramática" y encontrar errores de interpretación.
- Para el futuro: Necesitamos herramientas como el "Normalizador" para limpiar el tráfico antes de que llegue a la puerta, asegurando que nadie pueda jugar con las reglas del idioma para entrar.
En resumen: WAFFLED demostró que si mezclas mal los ingredientes de una receta (los datos), puedes engañar al chef para que crea que está cocinando una ensalada, cuando en realidad está preparando un pastel envenenado. Y la solución es asegurarse de que la receta se lea siempre de la misma forma correcta.
¿Ahogado en artículos de tu campo?
Recibe resúmenes diarios de los artículos más novedosos que coincidan con tus palabras clave de investigación — con resúmenes técnicos, en tu idioma.