¿Qué es y para qué sirve un Firewall de Aplicaciones Web (WAF)?
Introducción
Un Firewall de Aplicaciones Web, también conocido como WAF (Web Application Firewall), es una solución de seguridad diseñada para proteger las aplicaciones web y sus API contra diversas amenazas y ataques específicos, opera en la capa de aplicación del modelo OSI. Su función principal es monitorear, filtrar y bloquear el tráfico HTTP, tanto de entrada como de salida, entre una aplicación web e Internet para prevenir ataques maliciosos.
Un WAF no sustituye a los Firewall de red o perimetral tradicionales, sino que complementa las medidas de protección que se pueden implementar para resguardar los activos de información, pensando en una implementación de seguridad por capas.
Actualmente, existen distintos tipos de distribuciones de WAF, las cuales pueden ser propietarias o de distribución libre, así como soluciones on premise o en la nube. Algunas de las soluciones populares son: Akamai, Imperva, Cloudflare, F5, Amazon Web Services, así como ModSecurity.
ModSecurity
ModSecurity es un software que realiza las funciones de un WAF, multiplataforma, de código abierto y se emplea en servidores de aplicaciones web como Apache, IIS y Nginx. Esta solución era, hasta 2023, desarrollada por SpiderLabs de Trustwave.
Trustwave (administrador de la solución) acordó transferir la dirección del firewall de aplicaciones web (WAF) al Open Worldwide Application Security Project (OWASP). La transición, que comienza el 25 de enero de 2024, proporciona la responsabilidad del Core Rule Set, el conjunto de reglas WAF dominante en el mercado, a OWASP.
Cuenta con un lenguaje de programación robusto basado en eventos que permite el monitoreo, registro y análisis del tráfico HTTP en tiempo real, y brinda protección contra una variedad de ataques contra aplicaciones web, entre las que se encuentran:
- Cross-Site Scripting (XSS)
- SQL Injection (SQLi)
- Cross-Site Request Forgery (CSRF)
- Ataques de diccionario o fuerza bruta
- Remote File Inclusion y Local File Inclusion
- Entre otros
Funciones principales
- Filtrar el tráfico HTTP: examina las peticiones realizadas a una aplicación web y filtra o bloquea en caso necesario.
- Detecta y previene ataques: compara las peticiones realizadas contra una base de datos para identificar patrones y comportamientos asociados con ataques comunes para evitar que sean ejecutados.
- Prevención de fugas de datos: Al monitorear y controlar tanto las peticiones como las respuestas proporcionadas por la aplicación web, evita la posible exposición accidental de datos.
- Operar por medio de un conjunto de reglas: También denominadas políticas o directivas que se aplican con el fin de proteger contra vulnerabilidades a la aplicación.
Tipos de Firewall de Aplicaciones Web
El Firewall de Aplicaciones Web se puede encontrar de las siguientes maneras:
- Basado en Red: Generalmente se coloca entre la aplicación web y el firewall de red, inspeccionando el tráfico que llega a la aplicación.
- Basado en Host: Generalmente se ejecuta directamente en el servidor de la aplicación y protege específicamente esa instancia de la aplicación.
- Basado en Nube: Proporcionado como un servicio en la nube (SaaS), protege la aplicación web independientemente de la ubicación física del servidor.
Políticas de Seguridad
Los WAF implementan políticas o directivas que se aplican tanto a las peticiones como a las respuestas de la aplicación web. La importancia de un WAF radica en la velocidad y facilidad con que se pueden realizar modificaciones en las directivas: habilitando, deshabilitando, añadiendo excepciones y actualizando, lo que permite una respuesta más rápida ante diversos tipos de ataques.
Existen distintos enfoques en las políticas que pueden implementarse para verificar el contenido de las peticiones y respuestas:
- Listas Blancas y Listas Negras: Permite o bloquea el tráfico de acuerdo con lo estipulado en las listas blancas (permitir solo lo especificado) o listas negras (bloquear lo especificado).
- Validación de Entrada: Aplica validaciones estrictas a las entradas proporcionadas por parte de los usuarios (generalmente en formularios) para prevenir inyecciones y otros ataques de manipulación de datos.
- Control de Sesiones: Gestiona las sesiones de usuario de manera segura, evitando ataques como el robo o fijación de sesiones.
- Prevención de Scraping: Protege contra el scraping web al detectar y bloquear bots que intentan extraer datos de la aplicación.
Consideraciones para una adecuada implementación del WAF
- Configuración de Reglas: Es necesario llevar a cabo una adecuada configuración de reglas específicas de acuerdo con las necesidades de la aplicación.
- Actualizaciones Frecuentes: Se deben mantener actualizadas las reglas y las firmas de los distintos tipos de amenazas para defenderse contra nuevas vulnerabilidades y ataques.
- Auditoría y Registro: Considerar la implementación de funciones de auditoría y registro para supervisar las actividades y detectar posibles amenazas.
Ventajas del Firewall de Aplicaciones Web
- Protección Específica de Aplicaciones Web: Se enfoca en amenazas específicas de aplicaciones web, proporcionando una capa adicional de seguridad.
- Prevención de Ataques Conocidos: Bloquea ataques comunes y conocidos sin depender únicamente de las actualizaciones de software de la aplicación.
- Mitigación Rápida: Puede mitigar rápidamente nuevas amenazas, siempre que se realicen las actualizaciones de reglas y firmas de manera periódica.
- Cumplimiento Normativo: Ayuda a cumplir con los requisitos normativos al proteger los datos y mejorar su privacidad.
Desafíos y Consideraciones
- Configuración Precisa: Requiere una configuración precisa de las reglas para evitar falsos positivos o negativos, así como un periodo de entrenamiento en modo detección antes de activar el bloqueo.
- Impacto en el Rendimiento: Puede tener un impacto que afecte el rendimiento de la aplicación, especialmente si las reglas son demasiado restrictivas o los recursos disponibles para su implementación son limitados.
- Evitar Falsos Positivos: Debe ser configurado cuidadosamente para no bloquear tráfico legítimo o generar falsos positivos (periodo de aprendizaje).
Modos de implementación
Existen distintas formas de llevar a cabo la implementación de un WAF. La elección de una o de otra dependerá de las necesidades de protección de cada aplicación web, de la infraestructura de red con la que se cuente, así como de la experiencia que se tenga en la instalación, configuración y mantenimiento de este tipo de soluciones de seguridad.
Modo embebido o plugin
Se refiere a la integración del firewall directamente en la aplicación, en lugar de implementarlo como una entidad externa. Esto puede implicar la inclusión de reglas y controles de seguridad directamente en el código fuente de la aplicación o en el marco de desarrollo.
Se instala como un software complementario o plugin en el servidor web que se busca proteger. Para su operación se utilizan recursos de hardware, como procesador, RAM o disco duro, así como el software del servidor en que se encuentra instalado. Este tipo de instalación obedece a las características del servidor web y el sistema operativo. Debido a que no es necesario llevar a cabo configuraciones de red adicionales, este modo es uno de los más sencillos de implementar.
Modo transparente o bridge
Es una configuración en la que el WAF opera sin que los usuarios o los servidores noten su presencia. En esta configuración, se ubica entre el cliente y el servidor sin necesidad de realizar modificaciones en direcciones IP o en la configuración de la red.
Modo proxy inverso
En esta configuración el WAF se coloca entre los usuarios externos y los servidores internos, actuando como un intermediario que gestiona el tráfico entre ellos. Este enfoque es útil para proteger los servidores internos al tiempo que proporciona funciones de seguridad y filtrado de tráfico.
En esta configuración los usuarios interactúan con el WAF, cuya dirección IP y puertos son visibles para ellos. Los servidores internos, por otra parte, mantienen sus propias direcciones IP y puertos, que permanecen inaccesibles a los usuarios.
Adicionalmente, facilita la implementación de balanceo de carga, ya que permite distribuir el tráfico entre varios servidores internos, mejorando la eficiencia y la disponibilidad.
Por otra parte, esta configuración puede ser más compleja que otras configuraciones, especialmente en entornos con múltiples servidores internos y la gestión de los certificados SSL/TLS para la implementación de tráfico cifrado puede requerir atención adicional, especialmente cuando se utilizan múltiples dominios o subdominios.
Conclusión
El WAF es una herramienta esencial en la seguridad de aplicaciones web, ya que protege contra amenazas específicas en la capa de aplicación. Su implementación efectiva requiere una comprensión precisa de las necesidades de la aplicación, de la infraestructura con la que se cuenta y de una configuración cuidadosa de las reglas de seguridad.
Es importante recordar que la implementación de un WAF no sustituye considerar e implementar otras medidas de seguridad que ayuden a robustecer la seguridad del sistema operativo, servidor de aplicaciones, sistema manejador de bases de datos y otros elementos empleados para el adecuado funcionamiento de las aplicaciones web.
Aunque durante la implementación, como en el caso del modo proxy inverso, algunas configuraciones pueden resultar más complejas, las ventajas en términos de ocultamiento de la infraestructura interna y filtrado avanzado de tráfico lo convierten en una opción valiosa para entornos que requieren una seguridad sólida en la capa de aplicación.
Como cualquier otra tecnología que se puede implementar, es necesario mantenerla actualizada, sobre todo con el conjunto de directivas que se pueden aplicar. Es necesario estar informado sobre nuevas características, posibles puntos de fallo, ventajas y oportunidades de mejora.
Referencias
Estupiñan Ojeda, J. E. (s. f.). Web Application Firewall - WAF. Universidad Piloto de Colombia. http://polux.unipiloto.edu.co:8080/00001884.pdf
OWASP ModSecurity Core Rule Set | OWASP Foundation. (s.f.). https://owasp.org/www-project-modsecurity-core-rule-set/
¿Qué es un Web Application Firewall (WAF)? (s.f.). Cloudflare. https://www.cloudflare.com/es-es/learning/ddos/glossary/web-application-firewall-waf
TrustWave transfers ModSecurity Custodianship to OWASP | OWASP Foundation. (2024). https://owasp.org/blog/2024/01/09/ModSecurity.html
La Coordinación de Seguridad de la Información/UNAM-CERT agradece el apoyo en la elaboración y revisión de este documento a:
Ing. Angie Aguilar Domínguez (angie dot aguilar at cert dot unam dot mx)
Para mayor información acerca de este documento contactar a:
UNAM-CERT: Equipo de Respuesta a Incidentes UNAM
Coordinación de Seguridad de la Información
Dirección General de Cómputo y Tecnologías de Información y Comunicación
Universidad Nacional Autónoma de México