La Edge Cloud Platform de Fastly

¿Qué es un WAF de Kubernetes?

Un WAF de Kubernetes es un firewall de aplicaciones web que se usa para proteger aplicaciones web y API que se ejecutan en entornos de Kubernetes contra tráfico malicioso de la capa de aplicación. Es una parte importante de la seguridad de Kubernetes. 

Kubernetes facilita desplegar, escalar y administrar aplicaciones en contenedores, pero no protege automáticamente esas aplicaciones contra amenazas como la inyección de SQL, el cross-site scripting (XSS), la inyección de comandos, los bots maliciosos u otros ataques web. Un WAF agrega una capa de seguridad de aplicación que analiza solicitudes HTTP y HTTPS, y puede detectar, bloquear o log actividad maliciosa antes de que llegue a las cargas de trabajo protegidas.

Según la arquitectura, un WAF puede operar en el network edge, junto con la infraestructura de ingreso de Kubernetes o dentro del propio entorno de Kubernetes. El enfoque adecuado depende de las aplicaciones, la arquitectura de tráfico, los requisitos de rendimiento y el modelo de seguridad de una organización.

¿Cómo funciona un WAF de Kubernetes?

Un WAF de Kubernetes es un WAF que protege aplicaciones y APIs desplegadas en Kubernetes. Un WAF tradicional se sitúa entre los usuarios y una aplicación web, y analiza las solicitudes entrantes en busca de actividad maliciosa. El mismo principio se aplica a Kubernetes, pero el entorno detrás del WAF puede consistir en muchos contenedores, pods, servicios, APIs y microservicios que pueden cambiar y escalar dinámicamente.

Una aplicación de Kubernetes podría tener una ruta de solicitud similar a esta:

Usuario - Red de distribución de contenido/edge - WAF - Ingress o gateway de Kubernetes - Servicio - Pod

La posición exacta del WAF varía. Algunas organizaciones despliegan software de seguridad dentro de sus cluster de Kubernetes. Otras inspeccionan el tráfico antes de que llegue al cluster mediante un WAF en la nube o en el edge. Los enfoques híbridos pueden usar más de un punto de ejecución. 

El objetivo es el mismo: identificar y detener el tráfico malicioso de aplicaciones antes de que pueda explotar o interrumpir las cargas de trabajo de Kubernetes.

Flujo del proceso de WAF de Kubernetes
Un WAF de Kubernetes examina las solicitudes de capa de aplicación y aplica lógica de seguridad antes de permitir que lleguen a las cargas de trabajo protegidas.

Una solicitud típica podría seguir estos pasos:

  1. Un usuario o cliente envía una solicitud HTTP. La solicitud podría estar destinada a un sitio web, API u otro servicio orientado a internet que se ejecuta en Kubernetes.

  2. El WAF inspecciona la solicitud. Según el despliegue, esto puede ocurrir en el edge o más cerca de la carga de trabajo de Kubernetes.

  3. El WAF analiza información de la capa de aplicación. Puede inspeccionar elementos como URL, parámetros, encabezados, cookies, cuerpos de solicitud y cargas útiles de API.

  4. Las reglas de seguridad y los mecanismos de detección evalúan el tráfico. El sistema determina si la solicitud parece legítima, sospechosa o maliciosa.

  5. Se realiza una acción. La WAF puede permitir la solicitud, bloquearla, registrarla en el log o aplicar otra respuesta configurada.

  6. El tráfico permitido continúa hacia Kubernetes. Luego, la solicitud puede pasar por el balanceo de carga, el controlador de ingreso o la puerta de enlace adecuados hacia el servicio de Kubernetes y, en última instancia, el pod correspondiente.

Los WAF modernos pueden complementar las firmas de ataques con análisis de comportamiento, inteligencia de amenazas, limitación de velocidad, Bot Detection u otras señales de seguridad.

¿Por qué los entornos de Kubernetes necesitan un WAF?

Kubernetes proporciona capacidades importantes de infraestructura y orquestación, pero no reemplaza la seguridad de la capa de aplicación. Estas son las razones por las que un WAF es necesario en un entorno de Kubernetes:

Las aplicaciones de Kubernetes siguen siendo aplicaciones web
Mover una aplicación a contenedores no elimina las vulnerabilidades en su código. Una aplicación alojada en Kubernetes aún puede estar expuesta a la inyección SQL, XSS, inyección de comandos, ruta traversal, ataques de autenticación, abuso de API y otras amenazas web.

Kubernetes fomenta las arquitecturas distribuidas
Kubernetes se usa comúnmente para microservicios y aplicaciones basadas en API. Esto puede crear muchos endpoints de aplicación con diferentes funciones, requisitos de acceso a datos y perfiles de riesgo. En consecuencia, las API se convierten en una parte importante de la superficie de ataque.

Los entornos de Kubernetes cambian rápidamente
Los pods se pueden crear, destruir y reprogramar automáticamente. Las aplicaciones también pueden actualizarse varias veces al día mediante pipelines de CI/CD. La arquitectura de seguridad debe funcionar con este modelo dinámico en lugar de depender de supuestos de infraestructura estática.

Las cargas de trabajo expuestas a internet son un objetivo continuo
Las aplicaciones y API públicas pueden recibir análisis de vulnerabilidades, intentos de explotación, ataques de credenciales, bots maliciosos y tráfico DDoS, independientemente de si el backend se ejecuta en Kubernetes, máquinas virtuales o servidores físicos.

Cómo ayuda un WAF 
La seguridad de Kubernetes incluye varias preocupaciones distintas. La configuración del cluster, la gestión de secretos, las políticas de red, la gestión de identidades y accesos, la seguridad de los contenedores, el escaneo de imágenes, la seguridad en tiempo de ejecución y la protección de WAF resuelven problemas diferentes.

Un WAF ayuda específicamente a proteger la capa de aplicación. No debe considerarse un reemplazo de la protección de la plataforma de Kubernetes en sí.

¿Contra qué amenazas puede ayudar a proteger un WAF de Kubernetes?

Dependiendo del WAF, la protección de capa de aplicación puede abordar ataques, incluidos:

  • Inyección SQL

  • Secuencias de comandos entre sitios

  • Inyección de comandos

  • Recorrido de ruta

  • Solicitudes HTTP maliciosas

  • Explotación de vulnerabilidades conocidas

  • Ataques a la API

  • Escaneo y sondeo de aplicaciones

Cuando se integran con tecnologías complementarias, las organizaciones también pueden abordar bots maliciosos, ataques a credenciales, scraping, ataques DDoS de capa de aplicación y otras formas de abuso automatizado.

El OWASP Top 10 es una referencia útil para comprender las principales categorías de riesgo de seguridad de las aplicaciones web. Sin embargo, no se debe esperar que un WAF elimine todos los riesgos de OWASP, porque algunas vulnerabilidades implican el diseño, la autorización, la configuración o la lógica de negocio de la aplicación, y deben corregirse en la propia aplicación.

¿Cuáles son las mejores prácticas para desplegar un WAF con Kubernetes?

Un WAF es más eficaz cuando forma parte de una estrategia más amplia de Kubernetes y seguridad de aplicaciones.

1. Protege las aplicaciones antes de que el tráfico llegue al cluster cuando sea posible
Un WAF desplegado en el edge puede identificar solicitudes maliciosas antes de que consuman recursos de red, ingreso, cómputo y aplicaciones de Kubernetes. Reducir el tráfico no deseado de forma ascendente puede mejorar tanto la seguridad como la eficiencia de la infraestructura.

2. Protege las API además de las páginas web
Los entornos de Kubernetes suelen alojar microservicios basados en API. Haz un inventario de las API accesibles externamente y asegúrate de que las políticas de seguridad contemplen los endpoints de API en lugar de proteger solo el tráfico tradicional del navegador.

3. Restringe el acceso directo a los orígenes
Si se supone que una aplicación debe recibir tráfico de Internet a través de una capa de seguridad edge, los atacante no deberían poder omitir esa capa simplemente conectándose directamente a un origen expuesto. Cuando la arquitectura lo permita, restringe el acceso al origen a rutas de tráfico autorizadas.

4. Integrar la seguridad en CI/CD
Los despliegues de Kubernetes suelen automatizarse, por lo que la seguridad debe ajustarse al mismo modelo operacional. La infraestructura como código, las políticas con control de versiones, las pruebas de seguridad automatizadas y los despliegues repetibles pueden reducir la desviación de la configuración.

5. Comienza con visibilidad
Antes de bloquear el tráfico de forma agresiva, comprende lo que el WAF está detectando. Los modos de monitoreo o registro pueden ayudar a los equipos a evaluar posibles falsos positivos y comprender el comportamiento normal de la aplicación antes de aplicar nuevas reglas.

6. Mantén las políticas de seguridad manejables
Más reglas no necesariamente producen una mejor seguridad. Las políticas excesivamente complejas pueden volverse difíciles de mantener y pueden generar falso positivo. Prioriza las protecciones de alto valor y revisa regularmente las excepciones obsoletas.

7. Combina WAF y Bot Protection
Una solicitud HTTP con apariencia válida aún puede ser maliciosa cuando se automatiza miles de veces. La gestión de bots puede complementar un WAF al identificar automatización maliciosa involucrada en actividades como relleno de credenciales, escaneo, scraping y abuso de aplicaciones.

8. Protégete contra ataques de DDoS
Un WAF no debería ser la única defensa contra ataques de denegación de servicio. Usa Protección contra ataques de DDoS adecuada en la red y en la capa de aplicación para que el tráfico de ataque pueda mitigarse antes de que agote los recursos de Kubernetes o de la aplicación.

9. Monitorea los eventos de seguridad de forma centralizada
Integra la telemetría de seguridad de WAF con plataformas de registro, información de seguridad y gestión de eventos y observabilidad, cuando corresponda. Los equipos de Desarrollo, Operaciones y seguridad deben poder investigar ataques sin correlacionar manualmente la información entre pods individuales.

10. Corrige vulnerabilidades en la aplicación
Un WAF agrega una capa defensiva importante, pero no reemplaza el desarrollo seguro. Sigue aplicando parches a las dependencias, probando aplicaciones, corrigiendo configuraciones inseguras, implementando una autorización sólida y corrigiendo código vulnerable.

¿Un WAF debe ejecutarse dentro o fuera de Kubernetes?

Ambos enfoques son posibles.

WAF dentro de Kubernetes
Un WAF o componente de seguridad puede operar dentro del entorno de Kubernetes o cerca de él, con la posibilidad de integrarse con la infraestructura de ingreso o los servicios de la aplicación. Este enfoque puede brindar a las organizaciones flexibilidad de despliegue y controles de seguridad cercanos a las cargas de trabajo individuales.

Sin embargo, la infraestructura de seguridad dentro del cluster puede consumir recursos del cluster y quizá deba escalar junto con el tráfico de ataque.

WAF fuera de Kubernetes
Un WAF externo o de edge inspecciona las solicitudes antes de que lleguen a Kubernetes. Esto puede evitar que las solicitudes maliciosas consuman recursos de ingreso, redes, cómputo y aplicaciones dentro del cluster. También desacopla la capa de aplicación de seguridad de la infraestructura que protege.

Despliegue híbrido
Algunas organizaciones combinan la seguridad en el edge con controles más cercanos a las cargas de trabajo. El modelo adecuado depende de la arquitectura de la organización, los requisitos de cumplimiento, las prácticas operacionales, las aplicaciones y el modelo de amenazas.

¿Quién necesita un WAF para Kubernetes?

Las organizaciones deben considerar la protección WAF cuando sus entornos de Kubernetes alojan aplicaciones web o API expuestas a internet.

Proveedores de Software como servicio
Las aplicaciones de Software como servicio suelen exponer sistemas de inicio de sesión, API, tableros y funcionalidad orientada al cliente a la que los atacantes pueden dirigirse.

Empresas de e-commerce
Los escaparates, sistemas de pago, funciones de búsqueda y API alojados en Kubernetes pueden enfrentar intentos de inyección, bots maliciosos, ataques a cuentas y amenazas DDoS.

Servicios financieros
Las aplicaciones que manejan información financiera o transacciones pueden beneficiarse de la seguridad de aplicaciones en capas junto con autenticación, autorización, cifrado y desarrollo seguro sólidos.

Empresas de medios y publicaciones
Las plataformas de contenido con mucho tráfico pueden enfrentar escaneo de vulnerabilidades, scraping, abuso automatizado y picos de tráfico repentinos.

Empresas API-first
Las organizaciones que operan una gran cantidad de API públicas necesitan control capaces de proteger los endpoints de la aplicación sin depender exclusivamente de la seguridad de red tradicional.

Empresas que adoptan microservicios
A medida que las organizaciones dividen las aplicaciones monolíticas en servicios distribuidos, la cantidad de API e interfaces de aplicación puede aumentar significativamente. Un WAF puede proporcionar una capa adicional de seguridad en el punto donde esas aplicaciones están expuestas a tráfico no confiable.

¿La seguridad de Kubernetes es lo mismo que la seguridad de las aplicaciones?

No. La seguridad de Kubernetes abarca el entorno subyacente de orquestación de contenedores, incluidas áreas como:

  • Acceso al cluster

  • RBAC

  • Secretos

  • Políticas de red

  • Imágenes de contenedor

  • Seguridad de pods

  • Seguridad de nodos

  • Seguridad en tiempo de ejecución

  • Seguridad de la cadena de suministro

La seguridad de las aplicaciones se centra en el software que se ejecuta en esa infraestructura, incluido su código, las API, la autenticación, la autorización y el procesamiento de la entrada del usuario. Un WAF aborda principalmente amenazas de la capa de aplicación. Por lo tanto, las organizaciones que ejecutan Kubernetes deben proteger tanto la plataforma como las aplicaciones que se ejecutan en ella.

¿Es suficiente un WAF de Kubernetes para proteger las API?

Respuesta corta: no. Un WAF es una capa importante, pero la Seguridad de la API generalmente requiere controles adicionales.

Las organizaciones también deben considerar:

  • Autenticación y autorización sólidas

  • Descubrimiento e inventario de API

  • Validación de esquemas y entradas

  • limitación de velocidad

  • Bot Protection

  • Mitigación de DDoS

  • Desarrollo seguro de API

  • Registro y monitoreo

  • Protección adecuada contra el abuso de la lógica empresarial

El objetivo es prevenir tanto las vulnerabilidades web tradicionales como los ataques que abusan de una funcionalidad de la API que, de otro modo, sería legítima.

¿Cómo complementa Fastly los entornos de Kubernetes?

Fastly puede proteger las aplicaciones alojadas en Kubernetes sin requerir que el punto principal de ejecución de seguridad resida dentro de cada cluster de Kubernetes. Una arquitectura típica puede colocar la Edge Cloud Platform de Fastly delante de las aplicaciones alojadas en Kubernetes:

Usuarios  - Fastly edge  - Infraestructura de Kubernetes  - Cargas de trabajo de la aplicación

El tráfico de aplicación entrante llega primero a Fastly, donde se pueden aplicar controles de distribución y seguridad antes de que las solicitudes permitidas continúen al entorno de Kubernetes. Esta arquitectura puede ayudar a las organizaciones a mantener el tráfico malicioso o innecesario alejado de la infraestructura de Kubernetes, al tiempo que proporciona una capa de seguridad uniforme en todos los clusters y entornos de aplicaciones.

¿Cómo funciona el WAF de siguiente generación de Fastly con Kubernetes?

WAF de siguiente generación de Fastly puede proteger aplicaciones web y API alojadas en Kubernetes. Admite múltiples modelos de despliegue, incluidos los despliegues de WAF en la nube en el edge de Fastly, así como opciones de despliegue más cercanas a la infraestructura de la aplicación. Esto brinda a las organizaciones flexibilidad para determinar dónde se realiza la inspección de seguridad de las aplicaciones.

El WAF de Fastly usa la tecnología SmartParse para analizar los parámetros de la solicitud e identificar el comportamiento malicioso de la aplicación. En lugar de depender exclusivamente de reglas tradicionales basadas en expresiones regulares, SmartParse está diseñado para identificar la intención detrás de las solicitudes y reducir los falsos positivos.

Para las aplicaciones de Kubernetes, esto puede brindar protección contra clases de ataques como:

  • Inyección SQL

  • Secuencias de comandos entre sitios

  • Inyección de comandos

  • Recorrido de ruta

  • Otros ataques de capa de aplicación

El despliegue en el edge también puede reducir desde el principio la cantidad de tráfico malicioso que llega a los clusters de Kubernetes.

¿Fastly puede proteger múltiples cluster de Kubernetes?

Sí. Una arquitectura de seguridad basada en edge puede ser útil cuando las aplicaciones abarcan varios clusters, regiones o proveedores de infraestructura. En lugar de requerir una pila de seguridad independiente orientada a Internet para cada cluster, el tráfico puede pasar por Fastly antes de enrutarse al origen de la aplicación correspondiente.

Esto puede ser útil para las organizaciones que operan:

  • Varios clusters de Kubernetes

  • Despliegues multirregión

  • Aplicaciones de nube híbrida

  • Arquitecturas multinube

  • Kubernetes junto con infraestructura que no es de Kubernetes

La configuración precisa dependerá de la arquitectura de red y de origen de la aplicación.

¿Qué otras capacidades de seguridad de Fastly complementan la protección de WAF para Kubernetes?

La protección de WAF es una parte del portafolio más amplio de seguridad de aplicaciones de Fastly.

Fastly Bot Management
Fastly Bot Management ayuda a identificar y controlar el tráfico automatizado. Esto puede complementar la protección de WAF contra bots involucrados en el escaneo de vulnerabilidades, ataques de credenciales, scraping y abuso de aplicaciones.

Protección contra ataques de DDoS de Fastly
Protección contra ataques de DDoS de Fastly ayuda a defender las aplicaciones de ataques diseñados para saturar los recursos de la red o de la aplicación. Mitigar los ataques en el edge puede evitar que grandes volúmenes de tráfico no deseado lleguen a la infraestructura de Kubernetes.

Limitación de velocidad
Limitación de velocidad puede ayudar a proteger endpoints de aplicaciones sensibles y computacionalmente costosos. Para las aplicaciones de Kubernetes, esto puede ser particularmente útil para las API, los endpoints de autenticación, las funciones de búsqueda y otros servicios en los que las solicitudes excesivas podrían consumir recursos del backend.

Red de distribución de contenido y caché
La Red de distribución de contenido de Fastly puede almacenar en caché el contenido apto en el edge, lo que reduce las solicitudes que deben llegar a las cargas de trabajo de Kubernetes. Esto puede mejorar el rendimiento de la aplicación y, al mismo tiempo, reducir la demanda en controladores de ingreso, servicio, pods, bases de datos y otra infraestructura de origen.

Visibilidad en tiempo real
Fastly proporciona capacidades de registro en tiempo real y observabilidad que pueden ayudar a los equipos de seguridad y Operaciones a comprender los patrones de tráfico e investigar actividades maliciosas. Esto puede complementar la observabilidad nativa de Kubernetes al proporcionar visibilidad del tráfico antes de que llegue al cluster.

¿Estás listo para empezar?

Ponte en contacto con nosotros