Un WAF (Web Application Firewall) es un dispositivo de seguridad que monitorea, filtra y bloquea el tráfico HTTP/HTTPS hacia y desde una aplicación web.

¿Qué es un WAF?

Un WAF es una solución de seguridad que protege aplicaciones web de ataques comunes como inyección SQL, cross-site scripting (XSS), y otros vectores de ataque web.

Tipos de WAF

WAF de Hardware

  • Dispositivos físicos: Hardware dedicado
  • Alto rendimiento: Optimizado para tráfico intenso
  • Costo inicial: Inversión inicial alta
  • Mantenimiento: Requiere personal especializado

WAF de Software

  • Aplicaciones: Software instalado en servidores
  • Flexibilidad: Configuración personalizable
  • Costo: Más económico que hardware
  • Recursos: Consume recursos del servidor

WAF en la Nube

  • Servicio gestionado: Proveedor maneja la infraestructura
  • Escalabilidad: Fácil escalado según necesidades
  • Mantenimiento: Reducido para el cliente
  • Costo operativo: Modelo de suscripción

Funcionalidades Principales

Filtrado de Tráfico

  • Análisis de paquetes: Inspección profunda de paquetes
  • Filtrado por contenido: Análisis del contenido HTTP
  • Filtrado por comportamiento: Detección de patrones anómalos
  • Filtrado geográfico: Bloqueo por ubicación geográfica

Protección contra Ataques

  • Inyección SQL: Protección contra SQL injection
  • XSS: Protección contra cross-site scripting
  • CSRF: Protección contra cross-site request forgery
  • DDoS: Protección contra ataques de denegación de servicio

Monitoreo y Logging

  • Registro de eventos: Log de todas las actividades
  • Análisis de tráfico: Estadísticas de tráfico
  • Alertas: Notificaciones de eventos sospechosos
  • Reportes: Generación de reportes de seguridad

Ataques que Protege

OWASP Top 10

  1. Inyección: SQL, NoSQL, LDAP, OS command injection
  2. Autenticación rota: Bypass de autenticación
  3. Exposición de datos sensibles: Protección de datos
  4. XML External Entities: Protección contra XXE
  5. Control de acceso roto: Bypass de autorización
  6. Configuración incorrecta: Configuraciones inseguras
  7. Cross-Site Scripting: XSS reflejado, almacenado, DOM
  8. Deserialización insegura: Objetos maliciosos
  9. Componentes con vulnerabilidades: Dependencias vulnerables
  10. Logging y monitoreo insuficiente: Falta de visibilidad

Ataques Específicos

  • SQL Injection: Inyección de código SQL malicioso
  • XSS: Inyección de scripts maliciosos
  • CSRF: Falsificación de peticiones
  • Directory Traversal: Acceso a archivos del sistema
  • File Upload: Subida de archivos maliciosos
  • Brute Force: Ataques de fuerza bruta

Herramientas WAF Populares

Enterprise

  • Cloudflare WAF: Servicio en la nube
  • AWS WAF: Servicio de Amazon
  • Azure Application Gateway: Servicio de Microsoft
  • F5 BIG-IP: Solución empresarial
  • Imperva: Plataforma de seguridad web

Open Source

  • ModSecurity: WAF de código abierto
  • NAXSI: WAF para Nginx
  • Shadow Daemon: WAF de código abierto
  • WebKnight: WAF para IIS

Cloud

  • Cloudflare: CDN con WAF integrado
  • AWS Shield: Protección DDoS de Amazon
  • Azure DDoS Protection: Protección de Microsoft
  • Google Cloud Armor: Protección de Google

Configuración Básica

Reglas de Filtrado

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
# Ejemplo de regla ModSecurity
SecRule ARGS "@detectSQLi" \
    "id:1001,\
    phase:2,\
    block,\
    msg:'SQL Injection Attack Detected',\
    logdata:'Matched Data: %{MATCHED_VAR} found within %{MATCHED_VAR_NAME}',\
    tag:'application-multi',\
    tag:'language-multi',\
    tag:'platform-multi',\
    tag:'attack-sqli',\
    tag:'OWASP_CRS/WEB_ATTACK/SQL_INJECTION',\
    tag:'WASCTC/WASC-19',\
    tag:'OWASP_TOP_10/A1',\
    tag:'OWASP_AppSensor/CIE1',\
    tag:'PCI/6.5.2',\
    ver:'OWASP_CRS/3.0.0',\
    severity:'CRITICAL',\
    setvar:'tx.anomaly_score_pl2=+%{tx.critical_anomaly_score}'"

Configuración de Nginx

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
# Configuración básica de WAF
location / {
    # Habilitar WAF
    modsecurity on;
    modsecurity_rules_file /etc/nginx/modsec/main.conf;
    
    # Configurar logging
    modsecurity_audit_log /var/log/nginx/modsec_audit.log;
    
    # Configurar reglas
    modsecurity_rules '
        SecRuleEngine On
        SecRule REQUEST_URI "@contains /admin" "id:1001,phase:1,block,msg:\"Admin access blocked\""
    ';
}

Implementación

Fase 1: Análisis

  • Inventario de aplicaciones: Identificar aplicaciones web
  • Análisis de tráfico: Evaluar patrones de tráfico
  • Identificación de vulnerabilidades: Detectar vulnerabilidades existentes
  • Definición de requisitos: Establecer necesidades de protección

Fase 2: Diseño

  • Arquitectura: Diseñar la solución WAF
  • Selección de herramienta: Elegir plataforma WAF
  • Configuración: Definir reglas de filtrado
  • Integración: Planificar integración con sistemas existentes

Fase 3: Despliegue

  • Instalación: Desplegar la solución WAF
  • Configuración: Configurar reglas y políticas
  • Pruebas: Validar funcionamiento
  • Monitoreo: Implementar monitoreo continuo

Fase 4: Operación

  • Monitoreo: Vigilancia continua
  • Mantenimiento: Actualizaciones y parches
  • Optimización: Ajuste de reglas
  • Formación: Capacitación del personal

Mejores Prácticas

Configuración

  • Reglas específicas: Crear reglas específicas para cada aplicación
  • Whitelist: Implementar listas blancas cuando sea posible
  • Tuning: Ajustar reglas según el comportamiento
  • Testing: Probar reglas antes de implementar

Monitoreo

  • Logs: Revisar logs regularmente
  • Alertas: Configurar alertas apropiadas
  • Métricas: Monitorear métricas de rendimiento
  • Análisis: Analizar patrones de ataque

Mantenimiento

  • Actualizaciones: Mantener actualizado
  • Parches: Aplicar parches de seguridad
  • Reglas: Actualizar reglas regularmente
  • Documentación: Mantener documentación actualizada

Métricas y KPIs

Seguridad

  • Ataques bloqueados: Número de ataques bloqueados
  • Falsos positivos: Porcentaje de bloqueos incorrectos
  • Tiempo de detección: Velocidad de detección de ataques
  • Cobertura: Porcentaje de tráfico protegido

Rendimiento

  • Latencia: Tiempo de respuesta
  • Throughput: Capacidad de procesamiento
  • Disponibilidad: Tiempo de actividad
  • Recursos: Uso de recursos del sistema

Integración con Otras Herramientas

SIEM

  • Logs: Envío de logs a SIEM
  • Correlación: Correlación con otros eventos
  • Alertas: Integración con sistemas de alertas
  • Análisis: Análisis conjunto de eventos

CDN

  • Distribución: Integración con CDN
  • Caché: Optimización de caché
  • Geolocalización: Filtrado por ubicación
  • Rendimiento: Mejora del rendimiento

Conceptos Relacionados

Referencias