¿Qué es un firewall de aplicaciones web (WAF)?
Un firewall de aplicaciones web (WAF) protege las aplicaciones web frente a diversos ataques en la capa de aplicación, como secuencias de comandos entre sitios (XSS), inyección SQL, y manipulación de cookies, entre otros. Los ataques a las aplicaciones son la principal causa de las brechas de seguridad: constituyen la puerta de entrada a sus datos valiosos. Con el WAF adecuado, puede bloquear los distintos ataques que pretenden extraer esos datos comprometiendo sus sistemas.
¿Cómo funciona un firewall de aplicaciones web (WAF)?
Un WAF protege sus aplicaciones web filtrando, supervisando y bloqueando cualquier tráfico HTTP/S malicioso dirigido a la aplicación web, e impide que salgan de ella datos no autorizados. Para ello, aplica un conjunto de políticas que ayudan a determinar qué tráfico es malicioso y cuál es seguro. Del mismo modo que un servidor proxy actúa como intermediario para proteger la identidad de un cliente, un WAF funciona de forma similar, pero a la inversa —lo que se denomina proxy inverso—, actuando como intermediario para proteger el servidor de la aplicación web frente a clientes potencialmente maliciosos.
Los WAF pueden presentarse en forma de software, dispositivo o servicio. Las políticas se pueden personalizar para satisfacer las necesidades específicas de su aplicación web o conjunto de aplicaciones web. Aunque muchos WAF requieren que las políticas se actualicen periódicamente para hacer frente a nuevas vulnerabilidades, los avances en aprendizaje automático permiten que algunos WAF se actualicen automáticamente. Esta automatización es cada vez más importante a medida que el panorama de amenazas sigue aumentando en complejidad y ambigüedad.
Los proxies inversos, que se sitúan entre los clientes (como los navegadores web) y los servidores backend (como los servidores de aplicaciones u otros servidores web), también pueden utilizarse para almacenar en caché las respuestas de los servidores backend. Esto puede mejorar el rendimiento de las aplicaciones web al reducir los tiempos de respuesta de los recursos a los que se accede con frecuencia y aliviar la carga de los servidores backend. Las respuestas almacenadas en caché pueden servirse más rápidamente que las generadas dinámicamente por los servidores backend. El almacenamiento en caché mediante proxies inversos también puede mejorar la escalabilidad y el aprovechamiento de los recursos, especialmente durante periodos de mucho tráfico o al servir contenido estático.
La diferencia entre un firewall de aplicaciones web (WAF), un sistema de prevención de intrusiones (IPS) y un firewall de nueva generación (NGFW)
Un IPS es un sistema de prevención de intrusiones, un WAF es un cortafuegos de aplicaciones web y un NGFW es un cortafuegos de nueva generación. ¿En qué se diferencian?
Un IPS es un producto de seguridad con un enfoque más amplio. Suele basarse en firmas y políticas, lo que significa que puede detectar vulnerabilidades y vectores de ataque conocidos mediante una base de datos de firmas y políticas establecidas. El IPS define un patrón de referencia a partir de la base de datos y las políticas y, a continuación, envía alertas cuando detecta tráfico que se desvía de dicho patrón. Las firmas y las políticas se amplían con el tiempo a medida que se descubren nuevas vulnerabilidades. En general, un IPS protege el tráfico de diversos tipos de protocolos, como DNS, SMTP, TELNET, RDP, SSH y FTP. Normalmente, un IPS opera en las capas 3 y 4 —las capas de red y de sesión— y las protege, aunque algunos pueden ofrecer una protección limitada en la capa de aplicación (capa 7).
Un firewall de aplicaciones web (WAF) protege la capa de aplicación y está diseñado específicamente para analizar cada solicitud HTTP/S en dicha capa. Por lo general, tiene en cuenta al usuario, la sesión y la aplicación, y conoce las aplicaciones web que protege y los servicios que ofrecen. Por ello, puede considerarse un intermediario entre el usuario y la propia aplicación, ya que analiza todas las comunicaciones antes de que lleguen a la aplicación o al usuario. Los WAF tradicionales garantizan que solo puedan realizarse las acciones permitidas (según la política de seguridad). Para muchas organizaciones, los WAF constituyen una primera línea de defensa fiable para las aplicaciones, especialmente frente al Top 10 de OWASP, la lista de referencia de las vulnerabilidades más frecuentes en las aplicaciones. Actualmente, este Top 10 incluye:
- Ataques de inyección
- Autenticación defectuosa
- Exposición de datos sensibles
- Entidades externas XML (XXE)
- Control de acceso deficiente
- Configuraciones de seguridad incorrectas
- Secuencias de comandos entre sitios (XSS)
- Deserialización insegura
Descarga el ebook sobre cómo prepararte para el Top 10 de OWASP
Vea este breve vídeo sobre IPS frente a WAF
Un firewall de nueva generación (NGFW) supervisa el tráfico saliente hacia Internet en sitios web, cuentas de correo electrónico y servicios SaaS. En pocas palabras, protege al usuario (en lugar de a la aplicación web). Un NGFW aplica políticas basadas en el usuario y aporta contexto a las políticas de seguridad, además de incorporar funciones como el filtrado de URL, la protección antivirus y antimalware y, posiblemente, sus propios sistemas de prevención de intrusiones (IPS). Mientras que un WAF suele ser un proxy inverso (utilizado por servidores), los NGFW suelen ser proxies directos (utilizados por clientes como los navegadores).
¿Es un WAF un proxy inverso?
Un servidor proxy inverso es un tipo de servidor proxy que suele situarse detrás del cortafuegos en una red privada y dirige las solicitudes de los clientes al servidor backend correspondiente. Mientras que los proxies suelen proteger a los clientes, los WAF protegen los servidores y se implementan para proteger una aplicación web específica. Por tanto, un WAF puede considerarse un proxy inverso. Los WAF pueden presentarse como un dispositivo, un complemento de servidor o un filtro, y pueden personalizarse para una aplicación.
Las distintas formas de implementar un WAF
Un WAF se puede implementar de varias formas; todo depende de dónde estén desplegadas sus aplicaciones, de los servicios que necesite, de cómo quiera gestionarlo y del nivel de flexibilidad arquitectónica y rendimiento que requiera. ¿Quiere gestionarlo usted mismo o prefiere externalizar su gestión? ¿Le conviene más una opción basada en la nube o prefiere alojar su WAF en sus propias instalaciones? La forma en que quiera implementarlo le ayudará a determinar qué WAF es el más adecuado para usted. Estas son las opciones disponibles.
Modos de implementación de un WAF:
- Basado en la nube + totalmente gestionado como servicio: esta es una excelente opción si necesita la forma más rápida y sencilla de implementar un WAF delante de sus aplicaciones (especialmente si dispone de recursos internos de seguridad/TI limitados)
- Basado en la nube + autogestionado: obtenga toda la flexibilidad y portabilidad de las políticas de seguridad que ofrece la nube, sin renunciar al control de la gestión del tráfico y de la configuración de las políticas de seguridad
- Basado en la nube + aprovisionamiento automático: esta es la forma más sencilla de empezar a utilizar un WAF en la nube e implementar políticas de seguridad de forma fácil y rentable
- WAF avanzado local (dispositivo virtual o de hardware): satisface los requisitos de implementación más exigentes, en los que la flexibilidad, el rendimiento y las necesidades de seguridad más avanzadas son críticos para la misión
Obtén más información sobre los WAF y cómo proteger tus aplicaciones con la tecnología Advanced WAF de F5. F5 también ofrece F5 NGINX App Protect, una moderna aplicación WAF que funciona con F5 NGINX Plus, F5 NGINX Ingress Controller, y otros servidores. NGINX Plus también proporciona una solución de almacenamiento en caché altamente escalable y un proxy inverso para servir contenido estático y que cambia con poca frecuencia a una amplia variedad de clientes de forma optimizada y fiable. El servidor de caché de NGINX Plus también puede gestionar respuestas dinámicas devueltas por lenguajes de scripting mediante protocolos como FastCGI, SCGI y uwsgi.

