¿Qué es la Seguridad de Containers de Kubernetes?

La seguridad de containers de Kubernetes es un tema holístico, lo cual significa que se deben proteger los pods, imágenes, runtimes, hosts y la misma infraestructura de Kubernetes.

Seguridad de containers de Kubernetes

Kubernetes es una herramienta popular de código abierto para la orquestación de containers que está apoderándose del mercado. Tener una herramienta de orquestación como Kubernetes es vital para las organizaciones; de otra forma no podrían correr aplicaciones contenerizadas con propósitos de producción. Sin su ayuda, intentar desplegar y gestionar containers de forma manual usando la línea de comando sería casi imposible a gran escala desde un punto de vista de logística.

Existen muchos beneficios que surgen de automatizar tareas, como el despliegue, escalamiento y administración generalizada de las aplicaciones contenerizadas. Es crucial entender que esta misma herramienta puede causar brechas en su seguridad si no se colocan las medias apropiadas.

Kubernetes no gestiona la seguridad

De acuerdo con reportes recientes, más del 86% de las organizaciones administran alguna porción de sus workloads de containers usando Kubernetes; sin embargo, la seguridad continúa siendo una preocupación importante. En esta misma encuesta, más de la mitad de los respondientes declararon que su organización no ha hecho una inversión adecuada en la seguridad de containers. Sin una estrategia adecuada, esto puede causar retrasos en la adopción de Kubernetes o incluso serios incidentes de seguridad.

Más allá de las características básicas, como reforzar el control de accesos basado en roles, Kubernetes no la capacidad de proteger aplicaciones contra vulnerabilidades. Es aquí donde debe usar programas adicionales o de terceros para asegurar que los sistemas apropiados de seguridad se encuentran implementados.

Cosas para considerar

Estas son algunos elementos para considerar al momento de proteger sus containers de Kubernetes:

  • Configuraciones por defecto 
  • Container runtime 
  • Imágenes 
  • Seguridad del host 
  • Comunicaciones pod-to-pod

Configuraciones por defecto

Uno de los primeros componentes a considerar al momento de proteger sus containers de Kubernetes son las configuraciones por defecto. Todas las configuraciones por defecto de Kubernetes deben revisarse antes de usarse para minimizar el riesgo de que un ataque dentro de un pod se propague a otros.

Aunque Kubernetes cuenta con un framework específico para cosas como el control de accesos, la mayoría de estas características de control de accesos no están habilitadas por defecto. Estos tipos de controles pueden no estar configurados para reforzar políticas de menor privilegio, dándole acceso a usuarios que no necesariamente necesitan la información. Dejar expuestos datos potencialmente sensibles de esta forma es un gran riesgo porque puede ponerla en manos de usuarios maliciosos.

Container runtime

Un container runtime es una aplicación especial que ejecuta containers. Es importante entender que Kubernetes no tiene protecciones contra un ataque en runtime, y tampoco puede detectar intrusiones después de que ocurren.

En caso de detectarse una brecha activa o una nueva vulnerabilidad en un container en ejecución, es necesario terminar el container entero y se debe lanzar una versión no comprometida. La información que arregló la causa raíz del problema de seguridad también debe usarse para reconfigurar el componente en el ambiente.

Imágenes

Las imágenes también pueden vulnerar a los containers. Imágenes mal configuradas pueden darle a los atacantes un punto de acceso para infiltrarse en una red, y las imágenes que contienen claves de autenticación específicas pueden ayudar a los cibercriminales a llevar a cabo ataques futuros.

Detectar código malicioso que está dentro de un container requiere de escanear vulnerabilidades en registros y en producción, lo cual no es una característica de Kubernetes.

Seguridad del host

Por diseño, Kubernetes corre containers en los servidores en donde se encuentra asignado. Ya que la herramienta de orquestación no tiene nada que ver con la seguridad de esos servidores, deben usarse otros procesos para monitorearlos.

Muchos negocios, entonces, buscan seguridad tradicional para el host para detectar exploits que amenacen los recursos del sistema, pero, en caso de que también se comprometa al host, lo cual puede llevar a consecuencias devastadoras. Los sistemas del host también deben monitorearse para detectar brechas y actividades sospechosas para defenderse contra ataques.

Comunicaciones pod-to-pod

Por defecto, Kubernetes no aplica políticas de red a cada pod, lo cual significa que los pods en el ambiente de Kubernetes pueden “hablar” entre ellos. Es en el mejor interés de un buen funcionamiento que los containers y los pods hablen entre ellos dentro de los despliegues. Esto puede, sin embargo, rápidamente convertirse en un blanco fácil para los cibercriminales, quienes solamente tienen que entrar a un container para poder moverse lateralmente dentro del ambiente.

Asociar una política de red con un pod limita su comunicación a activos definidos, dándole un rol similar al de las reglas y controles de los firewalls.

Protegiendo los containers de Kubernetes

Especialmente ahora que es una herramienta usada por la mayoría de las organizaciones, la seguridad de containers de Kubernetes es crucial para mantener seguras las redes y las aplicaciones frente a brechas y ataques maliciosos. Al integrar exitosamente la seguridad en cada fase del ciclo de vida de los containers de Kubernetes, los negocios pueden tener la confianza de que están implementando las medidas correctas.

Investigaciones Relacionadas

Artículos Relacionados