Un firewall de aplicaciones web ( WAF ) es una forma específica de firewall de aplicaciones que filtra, monitorea y bloquea el tráfico HTTP hacia y desde un servicio web . Al inspeccionar el tráfico HTTP, puede prevenir ataques que exploten las vulnerabilidades conocidas de una aplicación web, como inyección SQL , secuencias de comandos entre sitios (XSS), inclusión de archivos y configuración incorrecta del sistema. [1] La mayoría de las principales instituciones financieras utilizan WAF para ayudar a mitigar las vulnerabilidades de "día cero" de las aplicaciones web, [ cita requerida ] así como errores o debilidades difíciles de corregir mediante cadenas de firma de ataque personalizadas. [2]
Los firewalls para aplicaciones web dedicados ingresaron al mercado a fines de la década de 1990, durante una época en la que los ataques a servidores web eran cada vez más frecuentes.
Los primeros productos WAF, de Kavado y Gilian Technologies, ya estaban disponibles para intentar resolver la creciente cantidad de ataques a las aplicaciones web a finales de los años 90. [ cita requerida ] En 2002, se formó el proyecto de código abierto ModSecurity [3] con el fin de hacer más accesible la tecnología WAF. Finalizaron un conjunto de reglas básicas para proteger las aplicaciones web, basándose en el trabajo sobre vulnerabilidades del Comité Técnico de Seguridad de Aplicaciones Web (WAS TC) de OASIS. En 2003, ampliaron y estandarizaron las reglas a través de la Lista de las 10 principales vulnerabilidades de seguridad web del Proyecto Abierto de Seguridad de Aplicaciones Web (OWASP). Esta lista se convertiría en el estándar de la industria para el cumplimiento de la seguridad de las aplicaciones web. [4] [5]
Desde entonces, el mercado ha seguido creciendo y evolucionando, centrándose especialmente en la prevención del fraude con tarjetas de crédito . Con el desarrollo del Estándar de Seguridad de Datos de la Industria de Tarjetas de Pago (PCI DSS), una estandarización del control sobre los datos de los titulares de tarjetas, la seguridad se ha vuelto más regulada en este sector. Según la revista CISO, se esperaba que el mercado de WAF creciera hasta los 5.480 millones de dólares en 2022. [6] [7]
Un firewall de aplicaciones web es un tipo especial de firewall de aplicaciones que se aplica específicamente a las aplicaciones web. Se implementa frente a las aplicaciones web y analiza el tráfico web bidireccional (HTTP), detectando y bloqueando cualquier cosa maliciosa. La OWASP proporciona una definición técnica amplia para un WAF como "una solución de seguridad en el nivel de aplicación web que, desde un punto de vista técnico, no depende de la aplicación en sí". [8] Según el Suplemento de información PCI DSS para el requisito 6.6, un WAF se define como "un punto de aplicación de políticas de seguridad ubicado entre una aplicación web y el punto final del cliente. Esta funcionalidad se puede implementar en software o hardware, ejecutarse en un dispositivo o en un servidor típico que ejecuta un sistema operativo común. Puede ser un dispositivo independiente o integrado en otros componentes de red". [9] En otras palabras, un WAF puede ser un dispositivo virtual o físico que evita que las vulnerabilidades en las aplicaciones web sean explotadas por amenazas externas. Estas vulnerabilidades pueden deberse a que la aplicación en sí es un tipo heredado o no fue codificada lo suficiente por diseño. El WAF soluciona estas deficiencias del código mediante configuraciones especiales de conjuntos de reglas, también conocidas como políticas.
Las vulnerabilidades previamente desconocidas se pueden descubrir mediante pruebas de penetración o mediante un escáner de vulnerabilidades. Un escáner de vulnerabilidades de aplicaciones web , también conocido como escáner de seguridad de aplicaciones web, se define en SAMATE NIST 500-269 como "un programa automatizado que examina las aplicaciones web en busca de posibles vulnerabilidades de seguridad. Además de buscar vulnerabilidades específicas de la aplicación web, las herramientas también buscan errores de codificación de software". [10] La resolución de vulnerabilidades se conoce comúnmente como remediación. Se pueden realizar correcciones al código en la aplicación, pero normalmente es necesaria una respuesta más rápida. En estas situaciones, puede ser necesaria la aplicación de una política personalizada para una vulnerabilidad única de la aplicación web para proporcionar una solución temporal pero inmediata (conocida como parche virtual).
Los WAF no son una solución de seguridad definitiva, sino que están pensados para utilizarse junto con otras soluciones de seguridad perimetral de red, como firewalls de red y sistemas de prevención de intrusiones, para proporcionar una estrategia de defensa integral.
Los WAF suelen seguir un modelo de seguridad positivo, uno negativo o una combinación de ambos, como menciona el SANS Institute . [11] Los WAF utilizan una combinación de lógica basada en reglas, análisis y firmas para detectar y prevenir ataques como secuencias de comandos entre sitios e inyección SQL. En general, se utilizan funciones como la emulación del navegador, la ofuscación y la virtualización, así como la ofuscación de IP, para intentar eludir los WAF. [12] La OWASP produce una lista de las diez principales fallas de seguridad de las aplicaciones web. Todas las ofertas comerciales de WAF cubren estas diez fallas como mínimo. También existen opciones no comerciales. Como se mencionó anteriormente, el conocido motor WAF de código abierto llamado ModSecurity es una de estas opciones. Un motor WAF por sí solo no es suficiente para proporcionar la protección adecuada, por lo tanto, OWASP junto con Spiderlabs de Trustwave ayudan a organizar y mantener un conjunto de reglas básicas a través de GitHub [13] para usar con el motor WAF ModSecurity. [14]
Aunque los nombres de los modos de funcionamiento pueden diferir, los WAF se implementan básicamente en línea de tres formas diferentes. Según NSS Labs, las opciones de implementación son puente transparente , proxy inverso transparente y proxy inverso . [15] "Transparente" se refiere al hecho de que el tráfico HTTP se envía directamente a la aplicación web, por lo tanto, el WAF es transparente entre el cliente y el servidor. Esto contrasta con el proxy inverso, donde el WAF actúa como un proxy y el tráfico del cliente se envía directamente al WAF. Luego, el WAF envía por separado el tráfico filtrado a las aplicaciones web. Esto puede proporcionar beneficios adicionales, como el enmascaramiento de IP, pero puede presentar desventajas, como latencias de rendimiento.