← Volver al catálogo

AWS WAF

En una frase: Filtra peticiones HTTP con reglas contra inyección SQL, XSS, bots y exceso de tráfico
Certificaciones: SAA-C03 SAP-C02 CLF-C02 DVA-C02
Documentación oficial: Documentación de AWS WAF ↗

Qué es

AWS WAF (Web Application Firewall) es un firewall de aplicaciones web: inspecciona cada petición HTTP (HyperText Transfer Protocol: protocolo de la web) o HTTPS (HTTP Secure: HTTP cifrado con TLS) que llega a tu aplicación (cabeceras, cuerpo, parámetros, IP (Internet Protocol: dirección de red) de origen, país) y decide si permitirla, bloquearla, contarla o exigir una prueba como un CAPTCHA (prueba para distinguir personas de bots). Protege frente a ataques de la capa de aplicación, como inyección SQL (Structured Query Language: lenguaje de consultas de bases de datos relacionales) o XSS (Cross-Site Scripting: inyección de scripts en una web), y frente a bots y abusos. Se asocia a CloudFront, Application Load Balancer, API Gateway, AppSync, Cognito y App Runner.

Conceptos clave

  • Web ACL (Access Control List: lista de control de acceso): el conjunto de reglas que se asocia a un recurso, con una acción por defecto (permitir o bloquear).
  • Reglas: por condición de la petición: listas de IP, países (geocoincidencia), cadenas o expresiones regulares, tamaño, inyección SQL, XSS…
  • Reglas basadas en frecuencia (rate-based): bloquean una IP (u otra clave) que supera un número de peticiones en una ventana de tiempo. Útiles contra fuerza bruta y DDoS (Distributed Denial of Service: ataque que satura un servicio desde muchos orígenes) de capa 7.
  • Grupos de reglas gestionadas: conjuntos mantenidos por AWS (riesgos comunes del OWASP Top 10, IP con mala reputación, entradas conocidamente maliciosas) o por vendedores del Marketplace.
  • Bot Control y prevención de fraude en el inicio de sesión y la creación de cuentas.
  • Registro: envía los registros de peticiones a CloudWatch Logs, S3 (Simple Storage Service) o Firehose para analizarlas.
  • Gestión centralizada: AWS Firewall Manager aplica las mismas Web ACL en todas las cuentas de una organización.

Casos de uso típicos

  • Proteger una web o API (Application Programming Interface: interfaz para que los programas se comuniquen) pública frente a inyección SQL, XSS y otras amenazas comunes.
  • Limitar el número de peticiones por IP para frenar fuerza bruta o scraping.
  • Bloquear o permitir tráfico por país.
  • Parchear virtualmente una vulnerabilidad mientras se corrige el código.

Cuándo NO usarlo

  • Ataques DDoS de red y transporte (capas 3 y 4): AWS Shield (Standard incluido, Advanced de pago).
  • Filtrar tráfico que no es HTTP o inspeccionar el tráfico de una VPC (Virtual Private Cloud): AWS Network Firewall.
  • Controlar el acceso entre recursos dentro de la VPC: security groups y NACL (Network Access Control List: firewall a nivel de subred).

WAF, Shield y Network Firewall

NecesidadServicio
Ataques web (capa 7): inyección SQL, XSS, bots, límites por IPAWS WAF
DDoS de red y transporteAWS Shield
Filtrado con estado de todo el tráfico de una VPCAWS Network Firewall
Aplicar reglas en toda la organizaciónAWS Firewall Manager

Modelo de precios

Se paga por cada Web ACL al mes, por cada regla al mes y por millón de peticiones inspeccionadas; los grupos de reglas gestionadas avanzados (Bot Control, prevención de fraude) y los del Marketplace tienen cargos adicionales.

Seguridad y alta disponibilidad

  • Servicio gestionado; asociado a CloudFront, se aplica en las ubicaciones de borde de todo el mundo.
  • Empezar las reglas nuevas en modo "contar" para no bloquear tráfico legítimo.
  • Registros para investigar peticiones bloqueadas y ajustar las reglas.

Trampas de examen

  • "Inyección SQL", "XSS" o "capa 7": AWS WAF.
  • "Una IP hace miles de peticiones por minuto": regla basada en frecuencia.
  • "Bloquear un país": regla de geocoincidencia (o la restricción geográfica de CloudFront).
  • "DDoS de capas 3 y 4": Shield, no WAF.
  • "Mismas reglas en todas las cuentas": Firewall Manager.
  • "Dónde se asocia": CloudFront, ALB, API Gateway, AppSync, Cognito, App Runner; no a un NLB (Network Load Balancer: balanceador TCP/UDP) ni a una instancia EC2 (Elastic Compute Cloud).

Preguntas de práctica

Preguntas originales escritas para estos apuntes. No son preguntas reales de examen.

Fuentes