aws:tutoriales:challenges:waf
This is an old revision of the document!
Table of Contents
WAF (Web Application Firewall)
Parte 1: Teoría Básica
1. ¿Qué es AWS WAF?
- Definición: Servicio de firewall de capa 7 (aplicación) que protege aplicaciones web de ataques dirigidos al tráfico HTTP/HTTPS.
- Capa 7: Opera en el nivel de aplicación del modelo OSI, analizando solicitudes HTTP(S) (headers, body, URI, etc.).
- Diferencia con firewalls tradicionales:
- Los firewalls de red (capa 3/4) filtran por IPs/puertos.
- AWS WAF inspecciona contenido (ej: parámetros GET/POST, cookies).
- Casos de uso:
- Bloquear SQL Injection en formularios web.
- Detectar XSS en headers personalizados.
- Mitigar ataques DDoS aplicativos.
- Integración: Funciona con CloudFront, API Gateway y Application Load Balancer (ALB).
- Modelo de Costo: Pago por reglas creadas y solicitudes procesadas.
2. Conceptos Clave
- Web ACL (Access Control List): Conjunto de reglas para filtrar tráfico.
- Reglas (Rules): Acciones (Allow, Block, Count) basadas en condiciones (IPs, headers, etc.).
- Rule Groups: Grupos de reglas reutilizables (Managed por AWS o custom).
3. Notas de Uso Básico
- Crear un Web ACL:
1. Ir a AWS WAF & Shield en la consola.
2. Asociar a un recurso (ALB, CloudFront). 3. Agregar reglas con acciones definidas. * **Reglas Comunes**: * Bloquear IPs: Usar **IP match conditions**. * Detectar SQLi: Regex en el body (ej: `(?i)(\bunion\b)`). * **Monitoreo**: Habilitar [[https://docs.aws.amazon.com/waf/latest/developerguide/logging.html|AWS WAF Logs]] en S3/CloudWatch.
4. Documentación Oficial
Parte 2: Ejercicios Prácticos
Ejercicio 1 (Custom): Bloquear SQLi y XSS
Objetivo: Crear reglas personalizadas para ataques SQL Injection y Cross-Site Scripting.
Pasos:
- Crear Web ACL:
1. En AWS WAF, ir a "Web ACLs" > "Create web ACL".
2. Asociar a un ALB/CloudFront.
- Regla SQLi:
- Field to inspect: Body.
- Regex: `(?i)(\b(union|select|insert)\b)`.
- Regla XSS:
- Field to inspect: URI o Headers.
- Regex: `(<script>|javascript:)`.
Prueba:
<code>
curl "http://tu-endpoint?param=<script>alert('xss')</script>"
</code>
* **Resultado esperado**: HTTP 403 Forbidden.
Ejercicio 2 (Oficial AWS): Reglas Administradas
Objetivo: Usar AWS Managed Rules para bloquear tráfico malicioso.
Pasos:
1. En **Web ACL**, agregar un **Rule Group** > **AWSManagedRulesCommonRuleSet**. 2. Configurar acción **Block**. 3. Probar con User-Agent: `BadBot`.
Documentación:
Ejercicio 3 (Challenge Extra): Rate Limiting
Objetivo: Limitar solicitudes a 1000/IP en 5 minutos.
Configuración:
<code> 1. En Web ACL, crear "Rate-based rule". 2. Límite: 1000 solicitudes. 3. Acción: Block. </code>
Prueba:
<code> ab -n 2000 -c 10 http://tu-endpoint/ </code>
Recursos Adicionales
Notas Finales
- Capa Gratuita: 1 Web ACL, 10 reglas, 1M solicitudes/mes.
- Pruebas: Siempre en staging antes de producción.
- Mantenimiento: Actualizar reglas managed cada 3-6 meses.
aws/tutoriales/challenges/waf.1740394589.txt.gz · Last modified: 2025/02/24 10:56 by gepelbaum
