WAFFLED TL;DR (castellano)
WAFFLED TL;DR (castellano)
Nota importada desde Inbox durante consolidacion bulk.
Resumen
Resumen analitico del paper academico WAFFLED, que demuestra como evadir Web Application Firewalls explotando discrepancias de parseo en encabezados y cuerpos HTTP. Mediante fuzzing estructurado sobre multipart/form-data, application/json y application/xml, se generaron 373.670 peticiones y se hallaron 1.207 bypasses unicos contra cinco WAF lideres. Se propone HTTP-Normalizer como defensa y se incluyen recomendaciones operativas para equipos SOC.
Contenido
Hallazgos Principales
- WAFFLED demuestra que es posible evadir WAFs explotando discrepancias de parseo en encabezados y cuerpos HTTP
- Mediante fuzzing estructurado se generaron 373.670 peticiones y se hallaron 1.207 bypasses unicos
- WAFs evaluados: AWS WAF, Azure WAF, Google Cloud Armor, Cloudflare, ModSecurity
- AWS WAF fue el unico que no se pudo eludir en las pruebas
- El 90% de los sitios analizados aceptan intercambiablemente
application/x-www-form-urlencodedymultipart/form-data, ampliando la superficie de ataque - Se clasificaron 24 familias de bypass (manipulacion de delimitadores, inyeccion de cabeceras en el cuerpo, insercion de bytes NULL, etc.)
- Como defensa proponen HTTP-Normalizer: proxy que valida y normaliza cuerpos segun las RFC antes de que lleguen al WAF, bloqueando el 100% de los bypasses evaluados
Analisis
Recomendaciones para SOC
| Area de Control | Que vigilar / Como detectar | Motivo tecnico |
|---|---|---|
| Registro y correlacion de parseos | Replicar en modo shadow el resultado de parseo del WAF y del servidor. Alerta si difieren | El ataque se basa en que ambos interpretan la peticion de forma distinta |
| Validacion estricta de RFC en gateway | Descartar/normalizar peticiones con: parametros boundary continuados, Content-Type con bytes no imprimibles, Content-Length incoherentes | Mutaciones exitosas descritas en WAFFLED |
| Analisis de entropia/longitud | Alerta en peticiones multipart con una sola parte pequena o JSON/XML con nombres de campo atipicos (ej: f\x00ield) |
Mutaciones minimas disenadas para no alterar el payload pero si el parsing |
| Deteccion de caracteres anomalos | Regla IDS/WAF para bytes de control (\x00, \x01-\x1F) en cabeceras y nombres de campo |
Boundary Delimiter Manipulation, Field Name Hack |
| Analisis de frecuencia de Content-Type | Si un endpoint alterna frecuentemente entre JSON y multipart, generar alerta | Muchos sitios aceptan ambos formatos, facilitando evasion |
| Pruebas de integridad lateral | Reinyectar la peticion original al motor de aplicacion sin pasar por el WAF y comparar respuestas | Detecta casos donde el WAF vio algo inocuo pero la app ejecuto el payload |
| Parsers redundantes (canary parse) | Deserializar la peticion con dos librerias distintas; si el AST resultante difiere, marcar como sospechosa | Previene discrepancias WAF-framework |
| Threat hunting proactivo | Construir playbooks con las 24 familias de mutacion de WAFFLED para test interno continuo | Reduce ventana de exposicion y valida reglas |
Nota: Las contramedidas dependen del entorno y la capacidad de registrar/trazar el parseo en cada capa.
Puntos Clave
- Las discrepancias de parseo HTTP son un vector de ataque real y medible contra WAFs de produccion
- AWS WAF fue el mas resistente; Cloudflare, Azure, Google Cloud Armor y ModSecurity fueron eludidos
- 24 familias de bypass clasificadas sistematicamente
- HTTP-Normalizer como proxy de validacion RFC bloqueo el 100% de bypasses
- La deteccion requiere correlacion entre lo que ve el WAF y lo que ejecuta la aplicacion
Referencias
- Paper WAFFLED (fuente original)
- OWASP WAF Bypass techniques
- RFC 7578 (multipart/form-data)
- RFC 7159 (JSON)