Un firewall de aplicaciones web (WAF) es un tipo de firewall empleado para proteger aplicaciones web mediante análisis y filtrado del tráfico HTTP.
La función del WAF es garantizar la seguridad del servidor web mediante el análisis de los paquetes HTTP y HTTPS. Se diferencia de un firewall tradicional en que puede filtrar el contenido de aplicaciones web específicas, mientras que un firewall de red suele limitarse a proteger el tráfico entre servidores a través de un puerto determinado. Al tener capacidad para inspeccionar el tráfico HTTP, un WAF protege a las aplicaciones web contra ataques como los de inyección SQL o XSS.
Mientras que los proxies generalmente suelen utilizarse para proteger a los usuarios de realizar peticiones a servidores maliciosos, los WAF protegen a los servidores de las peticiones de usuarios maliciosos. Un WAF puede considerarse un proxy inverso.
Los WAF se pueden presentar en forma de dispositivo, complemento de un servidor o filtro, y pueden personalizarse según la aplicación a proteger. El esfuerzo para realizar esta personalización puede ser significativo, y para realizarse correctamente debe adaptarse a medida que se modifica la aplicación que se pretende proteger. Los WAF actúan mediante una serie de políticas o reglas de filtrado para denegar o permitir la entrada de solicitudes y respuestas. Revisan cada petición enviada al servidor antes de que sea procesada por la aplicación, para verificar que cumple con las reglas establecidas, evitando solicitudes peligrosas, no seguras o no habituales.
El valor de este tipo de soluciones depende en gran medida de la velocidad y la facilidad con la que se puedan realizar modificaciones en sus políticas o reglas de filtrado. Esa agilidad permitirá una respuesta más rápida frente a los diferentes vectores de ataque que vayan apareciendo.
Algunas de las funciones que ofrecen de este tipo de sistemas son las siguientes:
- Protección frente a ataques de inyección de código
- Protección contra XSS
- Protección contra otros ataques web comunes
- Protección contra infracciones del protocolo HTTP
- Protección contra anomalías del protocolo HTTP, como la ausencia de user agent
- Protección contra rastreadores y frente a bots
- Remediación de errores de configuración comunes en servidores web
- Definición de límites de tamaño de las solicitudes, pudiendo configurar tamaños mínimos y máximos
- Permiten la utilización de listas de exclusión
- Permiten crear reglas personalizadas para satisfacer las necesidades específicas de las aplicaciones
- Permiten filtrar geográficamente el tráfico para permitir o impedir el acceso a la aplicación web desde determinados países o regiones