Llegamos a ustedes gracias a:



Alertas de Seguridad

Los ataques de inyección SQL basados en JSON

Obligan a actualizar los firewalls de aplicaciones web

[09/12/2022] Investigadores de seguridad han desarrollado una técnica genérica de inyección SQL que sortea múltiples firewalls de aplicaciones web (WAF). El problema radica en que los proveedores de WAF no añaden soporte para JSON dentro de las sentencias SQL, lo que permite a los posibles atacantes ocultar fácilmente sus cargas maliciosas.

La técnica de evasión, descubierta por investigadores del Team82 de Claroty, fue confirmada en WAFs de Palo Alto Networks, Amazon Web Services (AWS), Cloudflare, F5 e Imperva. Estos proveedores han lanzado parches, por lo que los clientes deben actualizar sus despliegues WAF. Sin embargo, la técnica podría funcionar también contra soluciones WAF de otros proveedores, por lo que los usuarios deberían preguntar a sus proveedores si pueden detectar y bloquear este tipo de ataques.

"Los atacantes que utilicen esta novedosa técnica podrían acceder a una base de datos backend y utilizar vulnerabilidades y exploits adicionales para filtrar información a través del acceso directo al servidor o a través de la nube", señalan los investigadores de Claroty en su informe. "Esto es especialmente importante para las plataformas OT e IoT que se han trasladado a sistemas de gestión y supervisión basados en la nube. Los WAF ofrecen una promesa de seguridad adicional desde la nube; un atacante capaz de eludir estas protecciones tiene un acceso expansivo a los sistemas".

El bypass fue encontrado mientras se investigaban otras vulnerabilidades

Los investigadores de Claroty desarrollaron esta técnica de ataque mientras investigaban las vulnerabilidades que encontraron en una plataforma de gestión de dispositivos inalámbricos de Cambium Networks llamada cnMaestro que puede desplegarse en las instalaciones y en la nube. El servicio en la nube operado por Cambium proporciona una instancia aislada independiente del servidor cnMaestro para cada cliente y utiliza AWS en el backend.

El equipo encontró siete vulnerabilidades en cnMaestro, entre ellas una falla de inyección SQL (SQLi) que permitía filtrar sesiones de usuarios, claves SSH, hashes de contraseñas, tokens y códigos de verificación de la base de datos del servidor. La inyección SQL es una de las vulnerabilidades más comunes y peligrosas de las aplicaciones web, y permite a los atacantes inyectar consultas SQL arbitrarias en las peticiones que la aplicación ejecutaría después contra la base de datos con sus propios privilegios.

Después de confirmar que su hazaña funcionaba contra un despliegue local de cnMaestro, los investigadores lo intentaron contra una instancia alojada en la nube. A partir de la respuesta del servidor, se dieron cuenta de que la solicitud probablemente había sido bloqueada por el firewall de aplicaciones web de AWS, que la detectó como maliciosa.

En lugar de rendirse, los investigadores decidieron investigar cómo el WAF de AWS reconoce los intentos de inyección SQL, por lo que crearon su propia aplicación vulnerable alojada en AWS y le enviaron peticiones maliciosas. Su conclusión fue que el WAF utiliza dos metodologías principales para identificar la sintaxis SQL: la búsqueda de palabras específicas en la solicitud que reconoce como parte de la sintaxis SQL y el intento de analizar diferentes partes de la solicitud como sintaxis SQL válida.

"Aunque la mayoría de los WAF utilizan una combinación de ambas metodologías, además de cualquier otra cosa que haga el WAF, ambas tienen un punto débil en común: Requieren que el WAF reconozca la sintaxis SQL", afirmaron los investigadores. "Esto despertó nuestro interés y planteó una importante pregunta de investigación: ¿Y si pudiéramos encontrar una sintaxis SQL que ningún WAF reconociera?".

Los proveedores de WAF pasaron por alto JSON en SQL

Hace unos 10 años, los motores de bases de datos empezaron a añadir soporte para trabajar con datos JSON (JavaScript Object Notation). JSON es un estándar de formateo e intercambio de datos muy utilizado por las aplicaciones y API web cuando se comunican entre sí. Dado que las aplicaciones ya intercambian datos en formato JSON, los creadores de motores de bases de datos relacionales consideraron útil permitir a los desarrolladores utilizar directamente estos datos dentro de operaciones SQL sin procesamiento ni modificación adicionales.

PostgreSQL añadió esta capacidad en el 2012, y otros grandes motores de bases de datos le siguieron a lo largo de los años: MySQL en el 2015, MSSQL en el 2016 y SQLite en el 2022. Hoy en día, todos estos motores tienen el soporte JSON activado por defecto. Sin embargo, los proveedores de WAF no siguieron su ejemplo, probablemente porque todavía consideraban que esta característica era nueva y poco conocida.

"A partir de nuestra comprensión de cómo un WAF podría marcar solicitudes como maliciosas, llegamos a la conclusión de que tenemos que encontrar una sintaxis SQL que el WAF no entienda", dijeron los investigadores de Claroty. Si pudiéramos suministrar una carga útil SQLi que el WAF no reconociera como SQL válida, pero que el motor de la base de datos analizara, podríamos conseguir el bypass". Resulta que JSON era exactamente este desajuste entre el analizador del WAF y el motor de la base de datos. Cuando pasábamos sentencias SQL válidas que utilizaban una sintaxis JSON menos frecuente, el WAF no marcaba la solicitud como maliciosa".

Tras confirmar que el firewall WAF de AWS era vulnerable y que podían utilizar JSON para ocultar su exploit SQLi, los investigadores se preguntaron si otros WAF podrían tener la misma laguna. Las pruebas realizadas con WAF de varios de los principales proveedores demostraron que sus sospechas eran ciertas y que podían utilizar la sintaxis JSON para eludir las defensas SQLi con solo unas modificaciones mínimas entre los proveedores.

Los investigadores informaron del problema a los proveedores que encontraron vulnerables, pero también aportaron su técnica a SQLMap, una herramienta de pruebas de penetración de código abierto que automatiza los ataques de inyección SQL. Esto significa que la técnica de desvío está ahora a disposición del público y puede ser utilizada por cualquiera.

"Team82 dio a conocer sus hallazgos a cinco de los principales proveedores de WAF, todos los cuales han añadido soporte de sintaxis JSON a sus productos", dijeron los investigadores. "Creemos que los productos de otros vendedores pueden estar afectados, y que deberían llevarse a cabo revisiones para el soporte de JSON".