Protegiendo tus APIs en el mundo real: Un análisis profundo de la integración de WAF y API Gateway

January 30, 2024

Ecosystem

En la era digital actual, las API se han convertido en una parte integral de nuestra vida diaria. Nos permiten acceder e intercambiar datos entre diferentes aplicaciones y servicios. Sin embargo, con el creciente número de puntos finales de API expuestos al público, existe un riesgo cada vez mayor de ciberataques y filtraciones de datos. Por eso es crucial implementar medidas de seguridad sólidas para proteger tus API de ataques maliciosos.

Beneficios de Integrar WAF y API Gateway para la Protección de API

El Firewall de Aplicaciones Web (WAF) y las tecnologías de API Gateway son dos de las formas más efectivas de proteger las API de ataques. Un WAF es una solución de seguridad que se sitúa entre Internet y tu servidor de API, analizando las solicitudes entrantes y bloqueando cualquier tráfico malicioso. Por otro lado, un API Gateway es una capa de middleware que se sitúa entre tu servidor de API y el cliente, gestionando el control de acceso, el enrutamiento del tráfico y la limitación de tasa.

Apache APISIX, una popular puerta de enlace de API de código abierto, ofrece un conjunto robusto de complementos de seguridad integrados. Sin embargo, frente a ataques cada vez más sofisticados como CVEs (Vulnerabilidades y Exposiciones Comunes) y exploits de día cero, confiar únicamente en estos complementos puede dejar tus API vulnerables. Integrar un Firewall de Aplicaciones Web (WAF) profesional con APISIX proporciona una estrategia de defensa multicapa, asegurando una protección integral contra amenazas modernas.

Comprendiendo las Capacidades de Seguridad de APISIX

  1. Autenticación y Autorización: APISIX admite complementos para JWT, basic auth, key auth e integración con proveedores de OpenID Connect, aplicando control de acceso.

  2. Limitación de Tasa: Previene picos de tráfico malicioso y ataques DoS a través de complementos como limit-conn, limit-req y limit-count.

  3. Restricción de IP y Filtrado de User-Agent: Permite un control granular sobre las solicitudes entrantes basado en direcciones IP y agentes de usuario.

  4. Protección CSRF: Previene ataques de Falsificación de Solicitud en Sitios Cruzados (CSRF).

Limitaciones de API Gateway

  1. Detección Basada en Firmas: Los complementos de APISIX dependen principalmente de firmas de ataques conocidas, lo que los hace ineficaces contra exploits de día cero que carecen de patrones definidos.

  2. Falta de Actualizaciones de Reglas: Las reglas de seguridad cambian constantemente, lo que requiere expertos en seguridad y empresas profesionales para mantenerlas.

  3. Alcance Limitado: Mientras APISIX protege la capa de la puerta de enlace, los WAFs ofrecen una protección más amplia en las capas de aplicación.

Beneficios de la Integración de WAF y API Gateway

  1. Detección Proactiva de Amenazas: Los WAFs avanzados aprovechan el aprendizaje automático y el análisis de comportamiento para detectar tráfico anómalo, incluso sin conocimiento previo de vulnerabilidades.

  2. Actualizaciones de Reglas en Tiempo Real: Los WAFs basados en la nube pueden actualizar rápidamente las reglas para abordar amenazas emergentes, minimizando las ventanas de exposición.

  3. Protección Profunda de Aplicaciones: Los WAFs pueden filtrar y bloquear tráfico malicioso en la capa de aplicación, protegiendo contra ataques que eluden las puertas de enlace de API.

  4. Cumplimiento y Adherencia Regulatoria: Ciertas industrias exigen el uso de WAFs para cumplir con las regulaciones de seguridad de datos.

Profundizando en el Proceso de Integración

Para integrar WAF y API Gateway, es necesario elegir las herramientas adecuadas. Apache APISIX es una solución popular de API Gateway que proporciona una plataforma escalable y flexible para gestionar tus API. Chaitin SafeLine y Coraza son las soluciones WAF que ofrecen características de seguridad avanzadas y conjuntos de reglas personalizables.

APISIX y Chaitin SafeLine

El WAF Chaitin SafeLine es un complemento integrado en APISIX 3.5. Una vez habilitado el complemento chaitin-waf, el tráfico se redirigirá al servicio Chaitin WAF para detectar y prevenir varios ataques de aplicaciones web, protegiendo la seguridad de las aplicaciones y los datos de los usuarios.

WAF_APISIX_1

Suponiendo que has instalado Apache APISIX y SafeLine, el siguiente comando puede integrar ambos:

curl http://127.0.0.1:9180/apisix/admin/plugin_metadata/chaitin-waf -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
  "nodes":[
     {
       "host": "192.168.99.11",
       "port": 8000
     }
  ]
}'

192.168.99.11 es la IP del servicio SafeLine. Luego, podemos crear una ruta en APISIX:

curl http://127.0.0.1:9180/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
   "uri": "/*",
   "plugins": {
       "chaitin-waf": {}
    },
   "upstream": {
       "type": "roundrobin",
       "nodes": {
           "192.168.99.12:80": 1
       }
   }
}'

192.168.99.12 es la IP del servicio upstream. La integración está completa.

Ahora, simulemos una inyección SQL para ver el efecto:

curl http://127.0.0.1:9080 -d 'a=1 and 1=1'

Se devolvió un error HTTP 403, y como se puede ver en el mensaje de error, Chaitin SafeLine defendió con éxito el ataque.

{"code":403,"success":false,"message":"blocked by Chaitin SafeLine Web Application Firewall","event_id":"18e0f220f7a94127acb21ad3c1b4ac47"}

APISIX y Coraza-proxy-wasm

APISIX admite el desarrollo de complementos con WebAssembly (Wasm), y Coraza también ofrece complementos Wasm como una opción. Por lo tanto, integrar Coraza con APISIX tiene un costo relativamente bajo.

Wasm se puede utilizar en múltiples plataformas, permitiendo que APISIX y Coraza funcionen sin modificaciones o adaptaciones extensas adicionales. Esto elimina la necesidad de modificaciones y adaptaciones extensas de código.

Coraza también es un complemento integrado de Apache APISIX, que se puede habilitar modificando el archivo de configuración conf/config-default.yaml:

wasm:
  plugins:
    - name: coraza-filter
      priority: 7999
      file: /home/ubuntu/coraza-proxy-wasm/build/main.wasm

Luego, crea una ruta en APISIX con las reglas de Coraza:

curl -i http://127.0.0.1:9180/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '{
  "uri": "/anything",
  "plugins": {
    "coraza-filter": {
      "conf": {
        "directives_map": {
          "default": [
            "SecDebugLogLevel 9",
            "SecRuleEngine On",
            "SecRule REQUEST_URI \"@beginsWith /anything\" \"id:101,phase:1,t:lowercase,deny\""
          ]
        },
        "default_directives": "default"
      }
    }
  },
  "upstream": {
    "type": "roundrobin",
    "nodes": {
      "httpbin.org:80": 1
    }
  }
}'

Ahora, enviemos una solicitud para ver el efecto:

curl http://localhost:9080/anything -v

Revisa los registros en logs/error.log:

2023/08/31 09:20:39 [info] 126240#126240: *23933 Transaction interrupted tx_id="JVhHVfDuGjVbfgvDjik" context_id=2 action="deny" phase="http_request_headers", client: 127.0.0.1, server: _, request: "GET /anything HTTP/1.1", host: "localhost:9080"
2023/08/31 09:20:39 [debug] 126240#126240: *23933 Interruption already handled, sending downstream the local response tx_id="JVhHVfDuGjVbfgvDjik" context_id=2 interruption_handled_phase="http_request_headers"

Mejores Prácticas para Asegurar API Usando la Integración de WAF y API Gateway

Para garantizar la seguridad de tus API, debes seguir estas mejores prácticas:

  1. Implementa una estrategia de defensa en profundidad que incluya múltiples capas de controles de seguridad;

  2. Usa cifrado SSL/TLS para proteger los datos en tránsito;

  3. Actualiza regularmente tus conjuntos de reglas WAF para asegurarte de que estén al día con las últimas amenazas;

  4. Monitorea el tráfico y los registros de tu API para detectar y responder rápidamente a incidentes de seguridad.

Tendencias Futuras y Avances en la Seguridad y Protección de API

A medida que crece el número de API en uso, habrá una mayor necesidad de medidas de seguridad avanzadas para protegerlas. Algunas de las tendencias y avances futuros en la seguridad y protección de API incluyen:

  1. Soluciones de seguridad impulsadas por IA que pueden detectar y responder automáticamente a amenazas;

  2. Mecanismos de autenticación y control de acceso basados en blockchain;

  3. Arquitecturas de API basadas en microservicios que ofrecen mayor flexibilidad y escalabilidad.

Resumen

En conclusión, la integración de WAF y API Gateway es un componente crítico de la seguridad de las API. Siguiendo las mejores prácticas y desplegando las herramientas adecuadas, puedes crear una capa de seguridad robusta que proteja tus API de una amplia gama de ataques. Con el enfoque correcto, puedes garantizar la disponibilidad, integridad y confidencialidad de tus API y los datos que intercambian.

Tags: