Llegamos a ustedes gracias a:



Reportajes y análisis

Fortalecimiento de Kubernetes: Profundización en la guía NSA/CISA

[09/09/2021] Kubernetes se ha convertido en la opción de facto para la orquestación de contenedores. Algunos estudios informan que hasta el 88% de las organizaciones están usando Kubernetes para sus necesidades de orquestación de contenedores, y el 74% de la orquestación ocurre en ambientes de producción. Dicho esto, la seguridad sigue siendo una preocupación crítica con hasta el 94% de las organizaciones que informan al menos un incidente de seguridad en sus ambientes de Kubernetes en los últimos 12 meses.

[Reciba lo último de CIO Perú suscribiéndose a nuestro newsletter semanal]

A medida que las organizaciones continúan adoptando Kubernetes, es fundamental que sigan las mejores prácticas y la orientación de la industria para garantizar que están utilizando Kubernetes de forma segura. Un gran recurso es la Kubernetes Hardening Guidance, publicada recientemente por la Agencia de Seguridad Nacional de Estados Unidos (NSA, por sus siglas en inglés) y Agencia de Seguridad de Infraestructura y Ciberseguridad (CISA, por sus siglas en inglés).

Otras guías y libros de seguridad valiosos para la seguridad de Kubernetes incluyen el Centro de seguridad de Internet (CIS, por sus siglas en inglés), Kubernetes Benchmark, la Guía de implementación técnica de seguridad de Kubernetes (STIG, por sus siglas en inglés) del Departamento de Defensa (DoD, por sus siglas en inglés) y el libro Kubernetes Security de Liz Rice y Michael Hausenblas de Aqua Security.

La Guía de fortalecimiento de la seguridad de Kubernetes identifica tres fuentes comunes para el riesgo de seguridad de Kubernetes: riesgos de la cadena de abastecimiento, actores de amenazas maliciosas y amenazas internas. La guía también desglosa su cobertura en áreas clave como el modelado de amenazas, la seguridad del pod de Kubernetes, la separación y el refuerzo de la red, la autenticación y autorización, la auditoría de registros y las mejores prácticas de seguridad de las aplicaciones y la actualización.

Componentes básicos de Kubernetes.
Kubernetes, contenedores, seguridad

La guía comienza explicando los componentes arquitectónicos centrales de Kubernetes. Esto incluye el clústergeneral y sus componentes principales, como el plano de control, los nodos y los pods, que residen en los nodos. Comprender estos componentes básicos es clave para comprender cómo funciona Kubernetes, cómo interactúan los componentes y, en última instancia, cómo protegerlos.

El plano de control

Uno de los aspectos más importantes de los clústeres de Kubernetes es el plano de control. Toma decisiones globales sobre el clúster y puede tener un efecto devastador si se ve comprometido por malicia o simplemente por incompetencia. Esta investigación descubrió 2.284 servidores etcd a los que los actores malintencionados podían acceder a través de Internet.

Los componentes que conforman el plano de control incluyen la gestión del controlador, controlador de administrador de la nube, servidor Kubernetes API, ETCD, y el planificador. Cada uno opera en puertos únicos dentro del clúster y tiene funciones específicas. Su capacidad para ejercer control sobre estos componentes puede variar, especialmente si está utilizando un servicio de Kubernetes administrado de un proveedor de servicios en la nube (CSP, por sus siglas en inglés) como Elastic Kubernetes Service (EKS) de AWS. Si bien esto puede parecer un inconveniente, administrar el plano de control de Kubernetes es una tarea compleja. Dependiendo del nivel de habilidad de su fuerza laboral, usar una oferta de Kubernetes administrada y enfocarse en sus aplicaciones es probablemente la opción más segura. Una oferta de Kubernetes administrada como EKS maneja actividades relacionadas con el plano de control y la infraestructura subyacente, como actualizaciones, correcciones y actualizaciones de seguridad.

Arquitectura de Kubernetes.
Kubernetes, seguridad, contenedores
Seguridad del pod

Los pods de Kubernetes son la unidad de implementación más pequeña del ecosistema de Kubernetes. Aquí es donde residen las aplicaciones en contenedores de las organizaciones, y los pods son un punto de entrada principal para los actores malintencionados. Por esta razón, es fundamental seguir las mejores prácticas. Esto incluye no permitir que los contenedores se ejecuten como raíz, usar contenedores inmutables con directorios grabables y asegurarse de que está implementando imágenes de contenedor seguras, libres de vulnerabilidades conocidas, configuraciones incorrectas, control de acceso deficiente, protección de tokens de cuentas de servicio de pod y más. También puede aprovechar la orientación emergente sobre las mejores prácticas de endurecimiento de contenedores.

Separación y endurecimiento de la red

Sus esfuerzos de seguridad no deberían detenerse en los pods. La conexión en red dentro del clúster también es clave para garantizar que no se produzcan actividades maliciosas y, si lo hacen, se pueden aislar para mitigar su impacto. Además de proteger el plano de control, las recomendaciones clave incluyen el uso de políticas de red y firewalls para separar y aislar recursos, cifrar el tráfico en movimiento, y proteger los datos confidenciales y secretos en reposo.

Una forma fundamental de hacer esto es aprovechar la funcionalidad nativa del espacio de nombres de Kubernetes. Si bien hay tres espacios de nombres integrados de forma predeterminada, puede crear espacios de nombres adicionales para sus aplicaciones. La construcción del espacio de nombres no solo proporciona aislamiento, sino que también puede ayudar a utilizar las políticas de recursos para limitar el almacenamiento y calcular los recursos en el nivel del espacio de nombres. Esto puede evitar el agotamiento de los recursos, ya sea de forma accidental o maliciosa, lo que puede tener un efecto en cascada en todo el clúster y todas sus aplicaciones compatibles.

Si bien los espacios de nombres pueden ayudar a proporcionar aislamiento de recursos, el aprovechamiento de las políticas de red puede controlar el flujo de tráfico entre los diversos componentes, incluidos los pods, los espacios de nombres y las direcciones IP externas.

Infraestructura en la nube

Si bien gran parte de la guía se centra en proteger los clústeresde Kubernetes y sus componentes principales, señala que aún debe proteger la infraestructura de la nube. Kubernetes se implementa con mayor frecuencia en máquinas virtuales que se ejecutan en ambientes de nube. Si no logra proteger esas máquinas, todo el rigor de seguridad empleado en los clústeres y aplicaciones subyacentes será irrelevante si un actor malintencionado puede simplemente derribar, tomar el control o comprometer la infraestructura en la que residen susclústeres y aplicaciones.

Los administradores deben adherirse a las mejores prácticas de la industria de los CSP para fortalecer la infraestructura y aprovechar las herramientas nativas de la nube, o de terceros, para proteger y monitorear la infraestructura de alojamiento en busca de actividades maliciosas. Un buen lugar para comenzar es la guía de seguridad de los principales proveedores de servicios de nube, como AWS, Azure y Google Cloud Platform.

Autenticación y autorización

Al igual que otros aspectos de TI, la autenticación y la autorización son una parte fundamental para asegurar el acceso a Kubernetes. Esto se complica aún más por el hecho de que la autenticación de usuarios no es una función incorporada de Kubernetes.

En Kubernetes hay dos tipos de usuarios: cuentas de servicio y cuentas de usuario normales. Kubernetes usa tokens de portador para soportar la autenticación y estos tokens a menudo se almacenan en ubicaciones bien conocidas, que pueden ser dirigidas desde fuera del clúster si no están protegidas.

Los administradores pueden implementar el control de acceso basado en roles (RBAC, por sus siglas en inglés) para asignar roles a individuos y otorgar acceso según corresponda. Esto debe estar habilitado en el clúster, y luego el administrador puede usar los tipos de permisos nativos de roles y roles de clúster. Los administradores pueden aprovechar los roles para establecer permisos para espacios de nombres específicos y roles de clúster para establecer permisos para todos los recursos del clúster.

Auditoría de registros

A pesar de los mejores esfuerzos para evitar y mitigar todos los incidentes y preocupaciones de seguridad, los incidentes ocurrirán. Cuando lo hacen, el registro es absolutamente fundamental para determinar qué sucedió y cómo. La guía enfatiza el uso de la auditoría de registros tanto para verificar que las cosas estén funcionando como se espera, como para poder investigar cuando no lo están. La guía establece actividades específicas que deben registrarse, que incluyen solicitudes de API, métricas de rendimiento, implementaciones, tráfico de red y escalado. Todas estas métricas brindan información clave sobre cómo operan los clústeres y las actividades potencialmente maliciosas, en caso de que ocurran.

La guía señala que las capacidades de auditoría no están habilitadas de forma predeterminada. También enfatiza la necesidad de utilizar plataformas SIEM de siguiente generación que soporten ambientes de Kubernetes debido a su naturaleza compleja y dinámica.

Prácticas de actualización y seguridad de las aplicaciones

La guía señala que, si bien es importante fortalecer los clústeres y los diversos componentes, la seguridad no se detiene allí. Las prácticas y actividades de seguridad también se aplican a las aplicaciones que se ejecutan en los servidores, y se alojan en los ambientes de Kubernetes. Aquí es donde entran en juego las orientaciones de la industria, como los puntos de referencia de CIS y otros. Si bien tomar las medidas establecidas en esta guía puede ayudar, además de utilizar las ofertas de servicios administrados de Kubernetes de los CSP, en última instancia, usted todavía posee y es responsable de las aplicaciones que se ejecutan en los clústeres. Debe asegurarlos adecuadamente.

Asegurar un clúster de Kubernetes, sus diversos componentes, las aplicaciones residentes y la infraestructura de nube subyacente es una tarea ardua y compleja. Dicho esto, las guías de la industria como la Guía de refuerzo de Kubernetes de NSA/CISA proporcionan un excelente punto de partida. Las configuraciones incorrectas representan la mayor amenaza para los ambientes de nube y Kubernetes, y los equipos deben abordarlas en consecuencia para garantizar una adopción y un uso seguros.

Puede ver también: