Seguridad del tiempo de ejecución de Kubernetes

En la última década, las cargas de trabajo en contenedores y Kubernetes (K8s) han tomado por asalto el mundo del software. Por desgracia, a medida que Kubernetes se convierte en un elemento básico de la arquitectura empresarial, se convierte en un objetivo de alto valor para los actores de amenazas.

La seguridad de los contenedores en general, y de Kubernetes en particular, es un aspecto fundamental de la postura de seguridad empresarial hoy en día. Este artículo explorará la seguridad en tiempo de ejecución de Kubernetes, uno de los aspectos más críticos de la seguridad de K8s, incluyendo siete buenas prácticas esenciales de seguridad en tiempo de ejecución de K8s.

Solicite una demostración Más información

¿Qué es la seguridad en tiempo de ejecución de Kubernetes?

La seguridad en tiempo de ejecución de Kubernetes es el conjunto de herramientas, prácticas y tecnologías que protegen las cargas de trabajo de contenedores en ejecución en Kubernetes.

En otras palabras, la seguridad en tiempo de ejecución de Kubernetes es una subcategoría de la protección de la carga de trabajo y de la seguridad de los contenedores. La seguridad en tiempo de ejecución de Kubernetes se ocupa de la seguridad desde la instanciación del contenedor hasta su terminación. Esto significa que la seguridad en tiempo de ejecución incluye cosas como si los contenedores se ejecutan o no como root (¡no deberían!), pero no cubre temas como el análisis de imágenes de contenedores.

Retos y riesgos para la seguridad del tiempo de ejecución de Kubernetes

Dado que hoy en día hay tantos tipos de aplicaciones que se ejecutan en K8s, no existe un conjunto único de riesgos de seguridad en tiempo de ejecución para contenedores o Kubernetes. Sin embargo, existe un conjunto de retos de seguridad en tiempo de ejecución de Kubernetes comunes a la mayoría de las empresas.

He aquí cuatro riesgos de seguridad comunes relacionados con la seguridad de los contenedores en tiempo de ejecución en Kubernetes:

  • Escalada de privilegios: Un actor de amenaza que obtiene acceso a un entorno K8s y escala a un usuario con mayores privilegios (por ejemplo, root) es una amenaza de seguridad en tiempo de ejecución de Kubernetes de libro de texto.
  • malware: malware en imágenes de contenedores es un problema grave. En 2022, más de 1.600 contenedores disponibles en Docker Hub incluían malware como criptomineros y secuestradores de DNS. La instalación de uno de estos contenedores en un entorno puede introducir instantáneamente amenazas detrás del perímetro de la red.
  • vulnerabilidad en K8s y contenedores: Incluso cuando los contenedores no son maliciosos per se, a menudo son vulnerables a CVEs con exploits conocidos.

Herramientas de seguridad nativas para el tiempo de ejecución de Kubernetes

Kubernetes ofrece un conjunto limitado de herramientas y controles nativos que pueden limitar el riesgo en tiempo de ejecución. Entre ellas se encuentran:

  • Secretos: Los Secretos K8s son objetos de datos que almacenan información como una clave API o una contraseña. El uso de secretos ayuda a las empresas a mantener los datos confidenciales fuera de las imágenes y las especificaciones de los pods.
  • Controladores de admisión: Con un controlador de admisión K8s, las empresas pueden limitar la modificación (pero no la lectura) del terminal API de Kubernetes.
  • Políticas de red: Las políticas de red de Kubernetes son similares a las reglas tradicionales ALLOW y BLOCK firewall que aplican políticas en las capas de red y transporte.
  • Registros de auditoría: los registros de auditoría proporcionan detalles sobre las acciones que se han producido en un clúster. Por ejemplo, se puede auditar la actividad de la API. Estos registros pueden permitir el análisis y la detección de comportamientos maliciosos.
  • RBAC: El control de acceso basado en roles (RBAC) permite a los administradores limitar el acceso a la API K8s en función del rol de una entidad.

Dado que las herramientas nativas de seguridad en tiempo de ejecución de Kubernetes no abordan directamente casos de uso como la detección de amenazas en tiempo real, muchas empresas dependen de herramientas de protección de la carga de trabajo más sólidas.

7 Mejores prácticas de seguridad en el tiempo de ejecución de Kubernetes

Estas seis prácticas recomendadas para el tiempo de ejecución de Kubernetes pueden ayudar a las empresas a limitar muchas de las amenazas a la seguridad de K8s.

  1. No ejecutar contenedores como root: la ejecución de contenedores como root prepara a los actores de amenazas para ataques de escalada de privilegios. El simple hecho de no ejecutarse como root puede mitigar muchas amenazas.
  2. Audite y automatice las configuraciones de contenedores: exponer públicamente los datos que deberían estar en Secrets o hacer que las instancias de la base de datos estén orientadas a Internet son ejemplos de configuraciones incorrectas que pueden conducir a una infracción. Auditar las configuraciones y automatizar la implementación de las mismas utilizando la Infraestructura como Código (IaC) es una excelente forma de limitar los riesgos.
  3. Bloquee la capa de red: Además de las políticas de red y RBAC de K8s, las herramientas de seguridad de red como IPS/IDS y NGFW pueden detectar y prevenir amenazas antes de que lleguen a las cargas de trabajo. Además, las empresas deben evitar exponer el socket del demonio de Docker siempre que sea posible.
  4. Evite el modo privilegiado: al igual que no ejecutar contenedores como raíz, las empresas deben evitar ejecutar contenedores con la marca –privileged. La marca –privileged permite a los contenedores omitir varias comprobaciones que mantienen un sistema seguro.
  5. Utilice sistemas de archivos de sólo lectura siempre que sea posible: Los sistemas de archivos de sólo lectura evitan que los actores de amenazas escriban malware directamente en el sistema de archivos de un contenedor. Esto puede limitar la capacidad de un actor de amenazas para realizar un exploit.
  6. Ejecute solo imágenes de contenedor de confianza: los repositorios públicos pueden amenazar la seguridad en entornos de tiempo de ejecución de contenedores tan pronto como un administrador crea una instancia de una imagen comprometida. Solo el uso de imágenes de contenedor de confianza puede ayudar a las empresas a limitar el riesgo de las imágenes de los repositorios de imágenes públicas.
  7. Asegure el nivel del núcleo: Soluciones como SELinux, cgroups y AppArmor pueden añadir una capa de protección a la seguridad del tiempo de ejecución de Kubernetes. Por ejemplo, AppArmor puede definir políticas que restrinjan el acceso a una variedad de recursos del kernel para reducir el riesgo de que las aplicaciones aprovechen una capacidad del sistema a la que no deberían poder acceder.

El cambio a la izquierda complementa la seguridad eficaz del tiempo de ejecución de Kubernetes

Por supuesto, ningún aspecto de la seguridad existe en el vacío. La seguridad en tiempo de ejecución es importante, pero la seguridad comienza mucho antes de que se cree una instancia de un contenedor. Algunas de las mejores prácticas de seguridad en tiempo de ejecución de Kubernetes antes mencionadas lo dejan claro, y el concepto de seguridad de desplazamiento a la izquierda refuerza este punto. La integración de la seguridad en las primeras etapas del ciclo de vida del desarrollo y el seguimiento de una sólida protección en tiempo de ejecución proporcionan lo mejor de ambos mundos.

Seguridad en tiempo de ejecución de Kubernetes con CloudGuard Workload Protection

CloudGuard Workload Protection es una plataforma que proporciona la protección integral con gestión centralizada que las empresas necesitan para los contenedores Kubernetes y las funciones sin servidor.

Los beneficios de CloudGuard Workload Protection incluyen:

  • Seguridad de confianza cero en todas las aplicaciones: Protección para contenedores Kubernetes, API y funciones sin servidor.
  • Autoimplantación de configuraciones de seguridad: Defina e implante las políticas de seguridad automáticamente para reducir el riesgo de errores humanos y de configuraciones erróneas.
  • Compatibilidad con nubes múltiples e híbridas: Garantice la seguridad a través de nube y on-prem.
  • Escaneo de imágenes de contenedores: Detecta contenedores vulnerables o malintencionados antes de que se creen instancias de ellos.
  • Detección de incidentes en tiempo real: La detección inteligente de comportamientos maliciosos puede detener las amenazas antes de que causen daños.
  • Defensa del comportamiento para las funciones sin servidor: La seguridad sin servidor requiere contexto, y la defensa conductual puede detectar de forma inteligente el uso malicioso de las funciones sin servidor.

Para obtener más información sobre CloudGuard Workload Protection, inscríbase hoy mismo en una demostración de seguridad de contenedores. En la demostración, conocerá conceptos clave de la seguridad de los contenedores, como el escaneado IaC, la protección automatizada en tiempo de ejecución y la seguridad en toda la nube.

x
  Comentarios
Este sitio web utiliza cookies para optimizar su funcionalidad y para fines de análisis y marketing.Al seguir usando este sitio web, usted acepta el uso de cookies.Para obtener más información, lea nuestro Aviso de cookies.