AWS WAF (Web Application Firewall): Análisis en profundidad
Aprende cómo AWS WAF ayuda a proteger tus aplicaciones web de ataques maliciosos con su protección ágil, facilidad de despliegue y mantenimiento, rentabilidad y escalabilidad.
AWS Security
Guía completa de seguridad en AWS, desde los fundamentos hasta la detección avanzada de amenazas con Security Hub, GuardDuty y WAF.
5 articles
1. Introducción
Un Web Application Firewall (WAF) es una solución de seguridad que protege aplicaciones web de ataques maliciosos, como cross-site scripting, inyección SQL y tráfico de bots maliciosos. WAF típicamente se despliega como un proxy inverso, situándose entre internet y la aplicación web, para inspeccionar y filtrar solicitudes entrantes antes de que lleguen al servidor web.
1.1. Cómo funciona WAF
WAF funciona analizando solicitudes HTTP y HTTPS entrantes a una aplicación web y permite o bloquea solicitudes basándose en reglas de seguridad predefinidas. Las reglas de seguridad pueden basarse en direcciones IP, encabezados, parámetros y otros atributos de la solicitud. WAF también puede realizar Deep Packet Inspection (DPI) para inspeccionar el contenido de la carga útil de la solicitud y determinar si la solicitud contiene contenido malicioso.
Si una solicitud viola una regla de seguridad, el WAF bloquea la solicitud y devuelve una respuesta de error al cliente.
1.2. AWS WAF
AWS WAF es una opción popular para soluciones WAF basadas en la nube, proporcionando un conjunto completo de reglas de seguridad para proteger aplicaciones web.
AWS WAF (Web Application Firewall) es un servicio basado en la nube que protege tus aplicaciones web, defendiéndolas contra exploits web comunes que podrían impactar la disponibilidad, comprometer la seguridad o consumir recursos excesivos. Te permite controlar el acceso a tu contenido web y proporciona reglas de seguridad personalizables para filtrar tráfico basándose en direcciones IP, encabezados HTTP, contenido del cuerpo HTTP o cadenas URI.
Aquí hay una representación visual de la arquitectura básica de AWS WAF:
1.3. Recursos protegidos
Puedes proteger los siguientes tipos de recursos:
- Distribución de Amazon CloudFront
- API REST de Amazon API Gateway
- Application Load Balancer
- API GraphQL de AWS AppSync
- Pool de usuarios de Amazon Cognito
- Servicio de AWS App Runner
- Instancia de AWS Verified Access
1.4. Componentes principales
Los componentes principales de AWS WAF incluyen lo siguiente:
Rules: AWS WAF te permite crear reglas que definen los tipos de tráfico que deseas permitir o bloquear para que llegue a tus aplicaciones web. Puedes crear reglas basadas en varias condiciones como direcciones IP, encabezados HTTP, cadenas URI y contenido del cuerpo HTTP.
Managed Rule Groups: AWS WAF proporciona grupos de reglas gestionadas preconstruidas que ofrecen protección contra ataques web comunes como inyección SQL, cross-site scripting (XSS) y más. Estos grupos de reglas son creados y mantenidos por AWS y actualizados regularmente para asegurar que proporcionen protección actualizada contra las últimas amenazas.
Web ACLs: AWS WAF usa web ACLs (Web Access Control Lists) para agrupar reglas que luego puedes aplicar a una o más aplicaciones web. Los web ACLs te permiten aplicar un conjunto de reglas en múltiples aplicaciones web, facilitando la gestión y aplicación de políticas de seguridad de manera consistente.
1.5. Beneficios y características
AWS WAF ofrece una amplia gama de beneficios y características, permitiéndote asegurar tus aplicaciones web de manera efectiva. Aquí hay algunas ventajas clave de usar AWS WAF:
Protección ágil contra ataques web: La propagación y actualizaciones de reglas de AWS WAF toman menos de un minuto, permitiéndote reaccionar más rápido cuando estás bajo ataque o cuando surgen problemas de seguridad.
Facilidad de despliegue y mantenimiento: AWS WAF es fácil de desplegar y protege aplicaciones desplegadas en Amazon CloudFront, Application Load Balancer o Amazon API Gateway. No hay software adicional que desplegar, configuración DNS o certificado SSL/TLS que gestionar.
Rentable: AWS WAF es un servicio de pago por uso, lo que significa que solo pagas por los recursos que usas. Esto lo convierte en una solución rentable para asegurar tus aplicaciones web.
Visibilidad mejorada del tráfico web: AWS WAF proporciona visibilidad casi en tiempo real de tu tráfico web, que puedes usar para crear nuevas reglas o alertas en Amazon CloudWatch.
Escalabilidad: AWS WAF está diseñado para manejar altos volúmenes de tráfico y puede escalar automáticamente para satisfacer las demandas de tus aplicaciones web.
Flexibilidad: AWS WAF proporciona una amplia gama de opciones para crear reglas personalizadas para filtrar tráfico, dándote mayor flexibilidad para definir tus políticas de seguridad.
2. Práctica con AWS WAF
Primero que nada, debes saber que AWS WAF es un servicio regional. Sin embargo, parece un servicio global cuando accedes a él, pero tienes que cambiar entre regiones usando esta opción:
Comenzar con WAF es relativamente sencillo, simplemente inicia sesión en la Consola de Administración de AWS y navega al servicio AWS WAF. Desde allí, puedes crear una nueva política WAF y configurar la política con las reglas de seguridad deseadas.
2.1. Habilitando logs
Los logs están deshabilitados por defecto, así que tenemos que habilitarlos. Tenemos que entrar al Web ACL creado y acceder a la pestaña Logging and Metrics: 
Como puedes verificar en la siguiente imagen, tendremos 3 opciones como Logging Destination (CloudWatch Logs Groups, Kinesis Data Firehose stream y S3 bucket): 
Después de habilitar los logs de CloudWatch, podemos acceder a la pestaña CloudWatch Log Insights y ejecutar consultas de muestra o crear consultas personalizadas para analizar los logs. Podemos ver los resultados como logs o en un diagrama (Visualization): 
2.2. Métricas
AWS WAF reporta métricas a CloudWatch en intervalos de un minuto por defecto, y las métricas se retienen durante 2 semanas.
Las métricas monitoreadas son las siguientes:
- AllowedRequests
- BlockedRequests
- CountedRequests
- PassedRequests
Estas métricas proporcionan un recuento SUM de solicitudes web que llegan a una Regla o Web ACL específico.
2.3. Crear alarmas personalizadas
Usualmente es una buena idea crear algunas alarmas para ser notificado si aparecen algunas solicitudes bloqueadas en nuestra web, así que podemos configurar una CloudWatch Alarm.
La forma fácil de crear la alarma es a través de la Métrica de AWS WAF para BlockedRequests. Allí tenemos un enlace directo para crear una alarma con esta métrica asociada si accedemos a Graphed Metrics y seleccionamos el icono indicado en color rojo:
Después de la creación, tendremos algo como esto:
2.4. Estimación de costos
El costo de AWS WAF puede variar dependiendo de la escala de tu despliegue, oscilando desde unos pocos dólares por mes para despliegues pequeños hasta varios miles de dólares por mes para despliegues a gran escala. El precio de AWS WAF se basa en el número de solicitudes web procesadas y el número de reglas de seguridad que se utilizan.
Ejemplo de costo para nuestro ejemplo (1 Web ACL con algunas reglas gestionadas):
- $5.00 por web ACL por mes (prorrateado por hora) * 1 web ACL = $5.00
- $1.00 por regla por mes (prorrateado por hora) * 5 reglas = $1.00
- $0.60 por millón de solicitudes procesadas * 1 (asumiremos 1 millón de solicitudes) = $0.60
- $0.10 por métrica de alarma * 1 alarma = $0.10
Total: $6.70 por mes
3. Más información sobre AWS WAF
Para más información sobre AWS WAF, puedes visitar los siguientes enlaces
- AWS WAF (Developer Guide): https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
- Security Automations for AWS WAF: https://aws.amazon.com/solutions/implementations/security-automations-for-aws-waf/
- WAF FAQs: https://aws.amazon.com/waf/faqs/











