Guía Práctica: Configura tus Primeras Reglas de Protección en AWS WAF

AWS WAF: Reglas básicas protección

En el mundo digital actual, tener una presencia online es prácticamente una obligación, pero también conlleva una exposición constante a amenazas. Si gestionas aplicaciones web, ya sea en un entorno corporativo o para proyectos personales, sabes que protegerlas es una tarea crítica y continua. Aquí es donde entra en juego AWS WAF, un servicio de firewall de aplicaciones web que puede ser tu primera y muy efectiva línea de defensa. Esta guía se enfoca en los primeros pasos con AWS WAF y cómo configurar reglas básicas AWS WAF para una protección inicial sólida.

¿Qué es AWS WAF y por qué lo necesitas?

AWS WAF (Web Application Firewall) es un servicio que te ayuda a proteger tus aplicaciones web o APIs contra exploits web comunes que podrían afectar la disponibilidad de la aplicación, comprometer la seguridad o consumir recursos excesivos. Funciona inspeccionando el tráfico HTTP/S que llega a tus aplicaciones desplegadas en servicios como Amazon CloudFront, Application Load Balancer (ALB), Amazon API Gateway o AWS AppSync.

Piensa en él como un filtro inteligente que se interpone entre internet y tu aplicación. Puedes definir reglas para bloquear patrones de ataque conocidos, como la inyección de SQL (SQLi) –que intenta manipular tu base de datos mediante consultas maliciosas– o el Cross-Site Scripting (XSS) –que busca ejecutar scripts dañinos en los navegadores de tus usuarios–. Además, AWS WAF te permite controlar el acceso basándose en direcciones IP, geolocalización, o la presencia de cadenas específicas en las peticiones.

Los beneficios de utilizar AWS WAF para la seguridad web AWS WAF son claros:

  • Protección contra amenazas comunes: Reduce el riesgo de ataques web conocidos.
  • Control de acceso granular: Decide quién puede acceder a tu aplicación y desde dónde.
  • Mejora del rendimiento: Al bloquear tráfico malicioso, liberas recursos para los usuarios legítimos.
  • Cumplimiento normativo: Ayuda a cumplir ciertos requisitos de seguridad, algo que tengo muy presente últimamente con la certificación ISO27001.

Antes de Empezar: Preparativos Clave

Antes de sumergirte en la configuración de AWS WAF, asegúrate de tener lo siguiente:

  1. Un recurso AWS compatible: Tu aplicación web debe estar servida a través de CloudFront, un Application Load Balancer, API Gateway o AppSync. AWS WAF se asocia a estos servicios.
  2. Comprensión de tu aplicación: Conoce los puntos de entrada de tu aplicación y el tipo de tráfico que esperas. Esto ayudará a definir reglas más efectivas.
  3. Permisos IAM adecuados: Tu usuario o rol de AWS necesita permisos para crear y gestionar Web ACLs y reglas de WAF.

Configurando tus Primeras Reglas Básicas en AWS WAF (Paso a Paso)

Vamos a ver cómo configurar reglas básicas AWS WAF para empezar a proteger aplicaciones web con AWS WAF.

Paso 1: Crear una Web ACL (Lista de Control de Acceso Web)

Una Web ACL es el contenedor principal para tus reglas de WAF.

  1. Navega al servicio AWS WAF en la consola de AWS.
  2. Haz clic en «Create web ACL».
  3. Nombre y descripción: Dale un nombre descriptivo (ej: `MiApp-WebACL-Produccion`) y una descripción.
  4. CloudWatch metric name: Se generará automáticamente un nombre para las métricas en CloudWatch, puedes personalizarlo.
  5. Resource type: Elige si es para «CloudFront distributions» (Global) o «Regional resources» (ALB, API Gateway, AppSync). La elección dependerá de dónde esté tu aplicación.
  6. Associated AWS resources: Si es regional, añade el recurso específico (tu ALB, por ejemplo). Si es para CloudFront, la asociación se hace después desde la configuración de la distribución de CloudFront.

Paso 2: Añadir Reglas Gestionadas por AWS (AWS Managed Rules)

Las reglas gestionadas son conjuntos de reglas preconfiguradas y mantenidas por AWS y sus partners. Son una excelente forma de obtener una protección robusta rápidamente.

  1. En la sección «Rules» de tu Web ACL, haz clic en «Add rules» y selecciona «Add managed rule groups».
  2. Verás una lista de grupos de reglas gestionadas por AWS. Para empezar, te recomiendo activar:
  • `AWSManagedRulesCommonRuleSet`: Protege contra una amplia variedad de amenazas comunes, incluyendo las del OWASP Top 10. Es un buen punto de partida para la seguridad web AWS WAF.
  • `AWSManagedRulesKnownBadInputsRuleSet`: Bloquea patrones de petición que se sabe están asociados con exploits o entradas maliciosas.
  • `AWSManagedRulesAmazonIpReputationList`: Bloquea IPs asociadas con bots y otras amenazas, según la inteligencia de amenazas de Amazon.
  • `AWSManagedRulesLinuxRuleSet` o `AWSManagedRulesWindowsRuleSet`: Si tu backend corre sobre estos sistemas operativos, estas reglas pueden ayudar a proteger contra ataques específicos de plataforma. Elige la que aplique.
  1. Acción de la regla: Para cada grupo de reglas que añadas, inicialmente puedes establecer la acción en «Count» en lugar de «Block». Esto es MUY IMPORTANTE. En modo «Count», WAF registrará las peticiones que coincidan, pero no las bloqueará. Esto te permite monitorizar y asegurarte de que no estás bloqueando tráfico legítimo (falsos positivos) antes de pasar a la acción «Block».

Paso 3: Crear Reglas Personalizadas Sencillas

Además de las reglas gestionadas, puedes crear tus propias reglas para necesidades específicas.

  • Ejemplo 1: Bloquear IPs Específicas

Si has identificado direcciones IP maliciosas, puedes bloquearlas directamente.

  1. Primero, crea un «IP set»: En el panel de navegación de WAF, ve a «IP sets» y crea uno nuevo, añadiendo las IPs que quieres bloquear.
  2. Vuelve a tu Web ACL, sección «Rules», «Add rules», «Add my own rules and rule groups».
  3. Elige «Rule builder». Dale un nombre a la regla (ej: `Bloquear-IPs-Maliciosas`).
  4. Tipo: «Regular rule».
  5. En «If a request», selecciona «matches the statement».
  6. Statement 1:
  • Inspect: «Originates from an IP address in».
  • IP set: Selecciona el IP set que creaste.
  • IP address to use as the originating address: «Source IP address».
  1. Action: «Block».
  2. Añade la regla.
  • Ejemplo 2: Limitar la Tasa de Peticiones (Rate Limiting)

Esto ayuda a mitigar ataques de fuerza bruta o DoS volumétricos básicos.

  1. En tu Web ACL, «Add rules», «Add my own rules and rule groups».
  2. Elige «Rule builder». Dale un nombre (ej: `Limite-Peticiones-Por-IP`).
  3. Tipo: «Rate-based rule».
  4. Rate limit: Define el número máximo de peticiones permitidas desde una misma IP en un periodo de 5 minutos (ej: 500). Si se supera, se aplica la acción.
  5. IP address to use for rate limiting: «Source IP address».
  6. Criteria to count requests: Puedes dejarlo en «Count all requests» o refinarlo si solo quieres limitar peticiones a una URL específica, por ejemplo.
  7. Action: «Block».
  8. Añade la regla.

Paso 4: Establecer la Acción por Defecto

La acción por defecto se aplica a las peticiones que no coinciden con ninguna de tus reglas.

  1. En la configuración de tu Web ACL, ve a «Default web ACL action for requests that don’t match any rules».
  2. Puedes elegir «Allow» o «Block».
  3. Para empezar, es común establecer la acción por defecto en «Allow» y usar tus reglas para bloquear explícitamente el tráfico malicioso. Una vez que tengas más confianza y un conjunto de reglas bien probado, podrías considerar una política de «Block» por defecto y permitir explícitamente solo el tráfico conocido y bueno (un enfoque de «zero trust», más avanzado).

Paso 5: Monitorización y Pruebas

Este es un paso crítico en el proceso de configurar reglas básicas AWS WAF.

  1. Observa las métricas de CloudWatch: AWS WAF se integra con CloudWatch, donde puedes ver gráficos de peticiones permitidas, bloqueadas y contadas para cada regla y para la Web ACL en general.
  2. Analiza los logs: Configura el logging para tu Web ACL. Puedes enviar logs a un bucket S3 o a Kinesis Data Firehose para un análisis más detallado. Busca peticiones que fueron «Counted» por tus reglas.
  3. Ajusta las reglas: Si ves que tráfico legítimo está siendo marcado («Counted») por una regla gestionada, puedes ajustar la configuración de esa regla (algunas permiten excluir sub-reglas específicas) o contactar a AWS Support. Si tus reglas personalizadas tienen falsos positivos, modifícalas.
  4. Pasa a «Block»: Una vez que estés seguro de que tus reglas no están generando falsos positivos después de un periodo de monitorización (unos días o una semana, dependiendo de tu tráfico), cambia la acción de las reglas de «Count» a «Block».

Buenas Prácticas Adicionales y Siguientes Pasos

La seguridad web AWS WAF es un proceso continuo:

  • Revisa los logs regularmente: No es una configuración de «configurar y olvidar». La naturaleza de las amenazas cambia.
  • Mantente actualizado: AWS actualiza sus reglas gestionadas. Asegúrate de que tu Web ACL utiliza las versiones más recientes o evalúa las nuevas que se publiquen.
  • Refina tus reglas: A medida que entiendas mejor tu tráfico y las amenazas específicas a tu aplicación, podrás crear reglas personalizadas más sofisticadas.
  • Considera AWS Shield Advanced: Si necesitas protección contra ataques DDoS más grandes y sofisticados, AWS Shield Advanced se integra con WAF para ofrecer una defensa más robusta.

Conclusión

Configurar AWS WAF puede parecer intimidante al principio, pero empezar con estas reglas básicas te proporcionará una mejora significativa en la postura de seguridad de tus aplicaciones web. Recuerda la importancia de comenzar con las reglas en modo «Count» para evitar interrupciones y ajustar según sea necesario. Es una herramienta fundamental para proteger aplicaciones web con AWS WAF, y estos primeros pasos con AWS WAF te ponen en el camino correcto.

La seguridad es un viaje, no un destino. Esta configuración inicial es una base sólida sobre la cual puedes construir defensas más complejas a medida que tu experiencia y necesidades evolucionan. ¡Anímate a implementarlo!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *