Después de un par de meses sin entradas nuevas en el portal regresamos a PCI Hispano con una nueva serie de artículos. Esta vez: “Controles técnicos de PCI DSS“, en donde se describirán de forma detallada los controles de seguridad lógica exigidos por el estándar PCI DSS entre los cuales se encuentran los IDS/IPS, los antivirus, los cortafuegos, los analizadores de código estático, el FIM (File Integrity Monitoring), entre otros.


Otros artículos de esta serie:


En esta primera parte  analizaremos el WAF (Web Application Firewall), un elemento crítico para la protección de aplicaciones web.

¿Qué es un WAF (Web Application Firewall)?

CaptureUn WAF (Web Application Firewall) es una solución de seguridad para el análisis específico de tráfico HTTP en busca de potenciales contenidos maliciosos como XSS (Cross Site Scripting) y SQL Injection.  Va más allá de los controles provistos por un IDS/IPS (Intrusión Detection System / Intrusion Prevention System) y de un cortafuegos (firewall), debido a que funciona exclusivamente en la capa de aplicación (que es la capa superior de los modelos OSI y TCP/IP), lo que le permite realizar análisis mucho más detallados y particulares del tráfico HTTP, entrando a complementar y reforzar la seguridad provista por estos otros dos controles. Esta solución puede ser implementada como un dispositivo auto-contenido dedicado  (appliance), como un módulo de software en el mismo servidor donde se encuentra el servicio web o como una funcionalidad adicional en un equipo independiente, como en un firewall UTM (Unified Threat Management – Gestión Unificada de Amenazas), por ejemplo.

Para que el WAF tenga completa visibilidad del tráfico HTTP se debe tener en cuenta:

  • Debe ser desplegado delante del servidor web (en el caso de appliances) o antes de la llegada del tráfico HTTP al servicio web (en el caso de un módulo de software) con el fin de monitorizar cualquier tráfico entrante y saliente. Su funcionalidad se asimila a la de un proxy, que actúa como intermediario y como punto de convergencia del tráfico de un servicio. De esta manera no existirán caminos alternos inseguros que puedan dejar la aplicación sin protección.
  • Si se emplea cifrado en HTTP (es decir, HTTPS empleando SSL/TLS) es importante tener presente que el WAF debe poder analizar el contenido descifrado, de lo contrario no podría detectar ataques dado que la información estaría cifrada. Por ello, se debe ubicar el WAF después de la finalización del túnel HTTPS.

En términos de seguridad, un WAF funciona de una manera similar a como lo hace una solución antivirus: puede trabajar con base en patrones de firmas de ataques y realizar análisis heurísticos (de comportamiento y de lógica) del tráfico HTTP para prevenir potenciales ataques no conocidos. Adicionalmente, es lo bastante configurable para permitir que el administrador defina sus propias reglas y las pueda adaptar a su entorno particular.  Por otro lado, puede ser configurado para trabajar en modo detección (identifica el ataque y lo registra en un log) o detección/prevención (aparte de identificar y registrar el ataque, realiza una acción preventiva para evitar que el ataque llegue al servicio web).

¿Qué requerimientos de PCI DSS están relacionados con el WAF?

Un WAF es el complemento ideal en la fase de despliegue y puesta en marcha de un desarrollo web que sigue un Secure SDLC (Software Development Life Cycle), ya que protege la aplicación en casos excepcionales en los cuales exista una vulnerabilidad no detectada durante el proceso de desarrollo. Por ello, hace parte opcional (*) del requisito 6 “Desarrolle y mantenga sistemas y aplicaciones seguras”:

6.6 En el caso de aplicaciones web públicas, trate las nuevas amenazas y vulnerabilidades continuamente y asegúrese de que estas aplicaciones se protejan contra ataques conocidos con alguno de los siguientes métodos:

– Instalación de una solución técnica automática que detecte y prevenga ataques web (por ejemplo, firewall de aplicación web) delante de aplicaciones web públicas a fin de controlar el tráfico continuamente.

(*) Es opcional, ya que la otra opción consiste en la realización de un análisis de vulnerabilidades web, tema del que hablaremos en un próximo artículo de esta serie.

Si se opta por la implementación de un WAF, las condiciones requeridas para que esta solución cumpla con PCI DSS son las siguientes:

Revise los parámetros de la configuración del sistema y entreviste al personal responsable para verificar que se haya implementado una solución técnica automática que detecte y prevenga ataques web (por ejemplo, un firewall de aplicación web) de la siguiente manera:

    • Se encuentre delante de las aplicaciones web públicas para detectar y prevenir ataques web.
    • Funcione activamente y esté actualizada, según corresponda.
    • Genere registros de auditoría.
    • Esté configurada para bloquear ataques web o para generar una alerta.

Criterios para la elección de una solución WAF para PCI DSS

A continuación, algunos consejos a tener en cuenta en el momento de la elección de un WAF para un entorno de cumplimiento PCI DSS:

  • Tener claro que un cortafuegos (firewall) y/o un IDS/IPS no son un WAF. Son soluciones distintas, que trabajan de forma conjunta y de ninguna forma son excluyentes. Un cortafuegos o un IDS/IPS no pueden remplazar a un WAF y viceversa.
  • Como mínimo, debe poder detectar las vulnerabilidades listadas en el OWASP Top Ten
  • Debe permitir una adaptación y personalización al entorno analizado, facilitando la edición y adición de nuevas reglas e inclusive “aprender” del entorno analizado y crear reglas de forma dinámica
  • Debe contar con características que le permitan interactuar y analizar diferentes tecnologías relacionadas con aplicaciones web, tales como XML, SOAP, WSDL, XML-RPC, UDDI, JSON, etc.
  • Debe contar con actualizaciones constantes, tanto de componentes como de firmas (si emplea dicha funcionalidad)
  • Para garantizar un comportamiento adecuado, debe manejar una tasa muy baja de falsos positivos con el fin de no bloquear peticiones legítimas y afectar el negocio. Para ello, una fase previa de adecuación al entorno es recomendable.
  • Tener presente que el WAF se convierte en un elemento más dentro del flujo HTTP e inclusive puede convertirse en un cuello de botella, penalizando el desempeño del aplicativo, por lo que es necesario realizar pruebas de comportamiento y definir acciones en caso de problemas con esta solución.

Adicionalmente, se pueden emplear como referencia los documentos “OWASP Best Practices: Use of Web Application Firewallsy los criterios de evaluación de WAF del Web Application Security Consortium. En todo caso, el concepto objetivo de un QSA durante el proceso de elección e implementación de una solución de WAF es altamente recomendable.

Soluciones comerciales de WAF

En el mercado existen múltiples soluciones de WAF comerciales (licenciadas). Un buen punto de inicio es el cuadrado mágico de Gartner (aquí el cuadrado mágico de WAF de Junio de 2014), que analiza diferentes soluciones y las sitúa en un “cuadrado” con base una serie de variables definidas. Las soluciones más destacadas son:

Por otro lado, muchas de estas soluciones están migrando hacia aplicaciones SaaS (Software as a Service) basados en la nube (Cloud Computing), que por lo general requieren una redirección de tráfico realizando cambios en los registros de los DNS o instalación de agentes en el servidor web. Entre ellas se pueden enumerar:

Soluciones OpenSource de WAF

Algunas de las soluciones de WAF basadas en OpenSource son:

¿Conoce alguna otra solución de WAF? ¿Ha tenido alguna experiencia en el despliegue de estos módulos de seguridad? Las respuestas y otras preguntas que se puedan tener las pueden formular en los comentarios y el foro.