Controles técnicos de PCI DSS parte I: WAF (Web Application Firewall)
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.
Todos los artículos de la serie "Controles técnicos de PCI DSS":
- Controles técnicos de PCI DSS parte I: WAF (Web Application Firewall)
- Controles técnicos de PCI DSS parte II: Cortafuegos (Firewall)
- Controles técnicos de PCI DSS parte III: Antivirus (Antimalware)
- Controles técnicos de PCI DSS parte IV: FIM (File Integrity Monitoring)
- Controles Técnicos de PCI DSS parte V: Sistemas de detección/prevención de intrusiones (IDS/IPS)
- Controles técnicos de PCI DSS parte VI: Registro de eventos (logs)
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)?
Un 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 Firewalls» y 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:
- SecureSphere de Imperva
- Application Security Manager de F5
- Application Firewall de Citrix
- Application Firewall de Barracuda
- WAF de DenyAll
- AppWall de Radware
- Defender de Fortify
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:
- Incapsula de Imperva
- USP Secure Entry Server de United Security Providers
- WAF de Akamai
- WAPPLES de Penta Security
- Cloudfare
- Profense de Armorlogic
Soluciones OpenSource de WAF
Algunas de las soluciones de WAF basadas en OpenSource son:
- ModSecurity de TrustWave (para Apache e IIS)
- IronBee de Qualys
- NAXSI de OWASP (para NGINX)
- WebKnight de AQTRONIX (para IIS)
Fuente: PCI Hispano
Comentarios
Publicar un comentario