Cabecera blog ciberseguridad

Evaluación de soluciones WAF

La evaluación de soluciones WAF puede incrementar la eficacia en la detección y bloqueo de amenazas avanzadas.

Evaluación de soluciones WAF

Introducción

La evaluación de soluciones WAF (Web Application Firewall) constituye uno de los trabajos que forman parte del laboratorio de Ciberseguridad de Tarlogic.

En este artículo, se describe un posible enfoque estratégico utilizado para afrontar la ejecución de este tipo de trabajos. Abordando la tarea desde un punto de vista ofensivo de un potencial atacante, la metodología utilizada es extensible a otros productos defensivos como podrían ser soluciones RASP (Runtime application self-protection).

Los beneficios que aporta este tipo de análisis son múltiples. A continuación, se enumeran algunos de ellos:

  • Obtención de métricas, tanto globales como pormenorizadas, sobre la eficacia en la detección de múltiples tipos de ataques.
  • En caso de plantear distintas alternativas de productos, permite optar por la más adecuada a cada caso particular.
  • Detección de posibles evasiones mediante la combinación de diferentes vectores de ataque avanzados, tanto automatizados como diseñados de forma manual y creativa.
  • Permite mejorar de forma proactiva la eficacia de las soluciones WAF adaptando la configuración en base a las debilidades detectadas.
  • Permite identificar posibles problemas debidos a falsos positivos.
  • Detección de posibles incidencias de rendimiento o usabilidad de la aplicación web derivadas de la implantación del WAF antes de ser activado en entornos productivos.
  • Gracias al volumen de ataques llevado a cabo en las pruebas, permite visualizar sobre el backend los distintos tipos de alertas generadas por la solución analizada y garantizar la detección de situaciones de riesgo que puedan requerir una posible intervención.

Objetivos e infraestructura

Inicialmente, se deben establecer los objetivos del análisis, ya que de ellos dependerá escoger la infraestructura más adecuada para el laboratorio de pruebas.

Si el objetivo es evaluar las características del producto de forma general con independencia del contexto en donde vaya a ser implantado, lo ideal será contar con múltiples aplicaciones intencionadamente vulnerables que serán protegidas por la solución analizada. Estas aplicaciones facilitarán la obtención de evidencias sobre las evasiones detectadas.

En este punto, pueden servir de apoyo una amplia variedad de alternativas que se encuentran disponibles de forma open-source sobre repositorios públicos. Algunos ejemplos conocidos son WebGoat, JavaVulnerableLab, DVWA, JuiceShop, Hackazon, BodgeIT, bWAPP, etc. Cuanto más heterogéneos entre sí sean los componentes utilizados por estas aplicaciones respecto a sus frameworks, base de datos y tecnologías en general, más se facilitará la obtención de evidencias para contextos diferentes.

Este enfoque es especialmente recomendable sobre el análisis de soluciones de tipo RASP. Mientras que una solución de tipo WAF siempre debería bloquear un payload evidente como <script>alert(1)</script> independientemente de si el recurso al que va dirigida la petición es vulnerable a Cross-site scripting, una solución de tipo RASP podría llegar a optar por no bloquearlo si, en base a su análisis en tiempo de ejecución, determina que la cadena no acaba reflejada en la salida HTML y que, por tanto, no supone un riesgo de seguridad. Por esta razón, para evaluar de forma eficaz una solución de tipo RASP, se necesita disponer de recursos que cuenten con vulnerabilidades previamente identificadas.

Asimismo, si el objetivo es evaluar el comportamiento de la solución sobre su implantación en una aplicación web específica que estará expuesta públicamente, la simulación de ataques se llevará a cabo, como mínimo, sobre dicha web. Esta aplicación no tiene por qué contar, a priori, con vulnerabilidades previamente identificadas, y localizarlas tampoco debe ser objetivo del análisis. Consecuentemente, en este contexto las evidencias obtenidas de posibles evasiones pueden consistir en la ausencia de una respuesta bloqueante del WAF ante un vector de ataque considerado de riesgo sobre cualquier contexto hipotético. Dicho de otro modo, la obtención de una respuesta no bloqueante del WAF ante el envío de una cadena como <script>alert(1)</script> sería suficiente evidencia para confirmar una anomalía en la protección contra ataques de Cross-site scripting, independientemente de que el recurso invocado en la petición esté afectado realmente por una vulnerabilidad de este tipo.

Características evaluables

Antes de definir un sistema de scoring que permita obtener una visión cuantitativa de eficacia, se deben enumerar las características que serán objeto de análisis. Lo habitual en este punto será incluir, como mínimo, la capacidad para bloquear ataques relacionados con vulnerabilidades que forman parte de la lista OWASP Top 10. Asimismo, se pueden incluir otro tipo de características evaluables que puedan ser consideradas de interés para el caso de estudio. Algunos ejemplos de estas características adicionales podrían ser la habilidad para detectar “Fake bots”, o la detección de payloads en contextos de cabeceras HTTP, o de datos en formato JSON o XML, en los cuales, las capacidades de detección de un WAF se ven a menudo mermadas o ausentes.

Se debe tener en cuenta que el análisis no solo es útil para evaluar las características del producto desde un punto de vista aislado, sino que el estudio puede ser capaz de identificar problemas relacionados con el contexto de la infraestructura en donde ha sido implantado. En esta línea, se pueden incluir pruebas que puedan desembocar en una evasión total del WAF, como podrían ser intentos de interactuar directamente con la IP del servidor de backend en soluciones de proxy inverso y basadas en la nube, HTTP Desync Attacks, ofuscación de payloads aprovechando codificaciones ofrecidas por la lógica de negocio de la propia aplicación, etc.

Características evaluables

Por otro lado, para optimizar el tiempo y la cantidad de información que resulta realmente de utilidad, se debe ser consciente de los tipos de ataques que se descartarán del análisis. Debemos asumir que, por la naturaleza y características del producto analizado, existen tipos de ataques para los que, de base, no se podrá garantizar una protección eficaz, quedando, por tanto, fuera de estudio. Generalmente, un WAF no será capaz de aportar protección, por ejemplo, contra ataques relacionados con la lógica de negocio, como podrían ser referencias directas inseguras a objetos. Una solución de tipo RASP podría llegar a ser más versátil en este punto.

Aunque la mayor parte de las pruebas de evasión de protecciones se basarán en la creación de vectores de ataque de forma manual y creativa, no se debe ignorar la importancia de una fase previa en la que se evalúen los resultados obtenidos con diversas herramientas conocidas de escaneo automático. La utilidad de esta fase será la de identificar riesgos de amplia exposición a atacantes debido a que las posibles debilidades detectadas con estas herramientas podrían ser localizadas sin la necesidad de disponer de conocimientos avanzados, incrementándose por esta razón la probabilidad de ser explotadas.

Sistema de scoring

Un sistema de scoring permite, por un lado, obtener una visión global de la eficacia del producto analizado y, por otro lado, del grado de protección frente a cada tipo de ataque. Estas puntuaciones pueden resultar útiles para detectar deficiencias como parte de un proceso de mejora continua o para realizar comparaciones entre distintas soluciones que apoyen a la toma de decisiones.

Sistema de scoring

Es importante ser conscientes de la relatividad y subjetividad de las escalas propuestas en los siguientes apartados. Los conceptos de “protección básica” o “protección avanzada”, así como la detección de las posibles evasiones, pueden depender de la experiencia, conocimientos y habilidad del pentester que ejecuta el análisis. Generalmente, una protección será considerada como avanzada si no se detectan evasiones, o bien, las evasiones identificadas requieren de vectores de ataque no triviales que incluyen la combinación de múltiples técnicas. Asimismo, se debe asumir que un atacante con los recursos técnicos y temporales suficientes podrá siempre llegar a detectar otras debilidades diferentes. No obstante, los resultados obtenidos aportarán una importante visión de referencia del estado y desempeño del WAF.

A continuación, se propone la siguiente tabla para obtener la puntuación del estado asociado a cada categoría de ataques:

Criterios de puntuación
Criterios de puntuación

Como se puede observar en la tabla anterior, se tienen en cuenta de forma negativa los casos en los que un bloqueo inadecuado de peticiones legítimas debido a falsos positivos pueda afectar negativamente al desempeño normal de las funcionalidades de la aplicación o a la experiencia de usuario.

Un ejemplo del resultado de la aplicación de esta puntuación sobre diferentes soluciones WAF podría ser la siguiente:

Ejemplo de resultados por categorías
Ejemplo de resultados por categorías

Una vez obtenidas las puntuaciones para las categorías de ataques que han sido objeto de análisis, es posible calcular una puntuación global de la evaluación del WAF. Para ello, es interesante asignar previamente un peso a cada categoría. Estos pesos permiten dar más importancia a ciertas categorías respecto a otras atendiendo, por ejemplo, a la probabilidad de que se puedan materializar ciertas vulnerabilidades dependiendo de los detalles técnicos de implementación, al impacto que podrían causar en los clientes, o a otros intereses particulares manifestados por la compañía.

En este sentido, por ejemplo, la protección para los ataques de inyección SQL, presentes en los primeros puestos de la clasificación OWASP Top 10, podría ser considerada generalmente con un peso mayor que las medidas de control para “Fake bots”.

A continuación, se muestra un posible escenario de los pesos asignados a diferentes categorías, los cuales, como se ha comentado anteriormente, podrían ser ajustados a conveniencia:

Pesos asignados a distintas categorías
Pesos asignados a distintas categorías de protección

Aplicando la ponderación correspondiente y sumando los resultados de cada categoría, la siguiente gráfica muestra una posible conclusión de scoring global para el análisis de tres soluciones WAF diferentes:

Ejemplo de cálculo de scoring
Ejemplo de cálculo de scoring

Conclusiones

La elección de la solución defensiva que mejor se adapte a las necesidades de nuestras aplicaciones web puede resultar una decisión compleja. Por otro lado, también es interesante evaluar hasta qué punto una solución ya integrada en la arquitectura o un nuevo producto defensivo pueden ser realmente eficaces ante diversos tipos de amenazas avanzadas, siendo conscientes de sus posibles debilidades para tratar de mejorar su desempeño.

Los trabajos de evaluación de soluciones WAF pueden aportar una valiosa información sobre estos aspectos para analizar y optimizar el rendimiento que ofrecen este tipo de productos.

Descubre nuestro trabajo y nuestros servicios de ciberseguridad en www.tarlogic.com/es/

En TarlogicTeo y en TarlogicMadrid.