Cuatro riesgos de seguridad de contenedores y Kubernetes que debe mitigar

El desarrollo y lanzamiento de aplicaciones más rápidos, la corrección de errores más rápida y el aumento de la velocidad de las funciones son tres de los beneficios más citados de la contenedorización. Sin embargo, cuando la seguridad se convierte en una ocurrencia tardía, corre el riesgo de disminuir la mayor ganancia de la contenedorización: la agilidad.

La implementación de una aplicación que no ha pasado una evaluación de seguridad pone a la empresa en un riesgo demasiado grande. Para evitar retrasos en la implementación de aplicaciones y aprovechar los beneficios de los contenedores y Kubernetes, las organizaciones deben cambiar a la izquierda con la seguridad, incorporándola en la fase de desarrollo para que puedan abordar tantos desafíos de seguridad como sea posible durante la etapa de compilación.

A principios de este mes, se publicó la cuarta edición del informe de la encuesta State of Container and Kubernetes Security Fall 2020 de StackBox, donde examinaron cómo las empresas están adoptando contenedores, Kubernetes y tecnologías nativas de la nube y abordan sus desafíos de seguridad. Dos de los hallazgos incluyen:

  • El 90% de los encuestados ha experimentado un incidente de seguridad en su contenedor y entorno de Kubernetes en los últimos 12 meses.
  • 44% de los encuestados dijeron que han retrasado la implementación de aplicaciones debido a problemas de seguridad.

Además, se identificaron los tipos más comunes de incidentes de seguridad informados por los encuestados y los riesgos de seguridad que más les preocupan. En conjunto, las organizaciones deben tomar las medidas necesarias para mitigar estos riesgos y no tener que retrasar la implementación de las aplicaciones.

  1. Configuraciones incorrectas / exposiciones

Los encuestados identificaron las exposiciones debidas a configuraciones incorrectas como el riesgo de seguridad más preocupante en sus entornos de contenedores y Kubernetes, y por una buena razón: el 67% de los encuestados ha detectado una configuración incorrecta grave en los últimos 12 meses.

La gestión de la configuración plantea un desafío excepcionalmente difícil para los profesionales de la seguridad, especialmente cuando se utiliza Kubernetes para organizar aplicaciones en contenedores. Si bien hay una gran cantidad de herramientas disponibles para el escaneo de vulnerabilidades de imágenes de contenedores, la administración de la configuración requiere más consideración. Las personas saben que no deben exponer el panel de Kubernetes a Internet, pero configurar el contexto de seguridad de un pod o implementar Kubernetes RBAC son solo dos ejemplos de configuraciones más desafiantes que los equipos de DevOps deben hacer bien.

Preste mucha atención a cómo está configurando

  • Imágenes: no utilice software no esencial (por ejemplo, administradores de paquetes, herramientas de red y clientes como curl o shells de Unix) que aumenten el riesgo de seguridad ni extraiga imágenes de fuentes de riesgo
  • Secretos: no convierta secretos en imágenes ni los exponga innecesariamente; use una herramienta de administración de secretos como Kubernetes secrets y asegúrese de que las implementaciones monten solo los secretos que realmente necesitan
  • Espacios de nombres: utilícelos porque proporcionan un límite clave para las políticas de red y las restricciones de control de acceso de Kubernetes, y la separación de las cargas de trabajo en espacios de nombres puede ayudar a contener los ataques y limitar el impacto de errores o acciones destructivas por parte de usuarios autorizados.
  • Privilegios en tiempo de ejecución: siga las mejores prácticas que se adhieran al principio de privilegios mínimos.
  • Políticas de red: de forma predeterminada, Kubernetes permite que los pods se comuniquen sin impedimentos; Las políticas de red se pueden utilizar como un control de seguridad clave que evita que un atacante se mueva lateralmente a través de un entorno de contenedor.
  • Almacenamiento persistente: asegúrese de tener visibilidad sobre el uso y la configuración del almacenamiento persistente, ya que este es un vector persistente poco común en un entorno de contenedores principalmente efímero.
  • Plano de control: si está autogestionando sus clústeres de Kubernetes, la configuración de los componentes del plano de control es fundamental porque toman decisiones globales con respecto a las operaciones de un clúster, y el compromiso de cualquier componente del plano de control podría resultar fácilmente en un compromiso completo de un clúster

La mejor manera de abordar estos desafíos es automatizar la administración de la configuración tanto como sea posible, de modo que las herramientas de seguridad, en lugar de los humanos, proporcionen las medidas de seguridad que ayuden a los desarrolladores y equipos de DevOps a configurar contenedores y Kubernetes de manera segura.

  1. Vulnerabilidades

Hemos visto varios casos de vulnerabilidades graves que afectan a los contenedores y Kubernetes en el pasado reciente. Los exploits comunes de vulnerabilidades conocidas incluyen la minería de criptomonedas u otra instalación de malware, y la escalada de privilegios y el acceso al host. El problema es generalizado, con Docker Hub en un momento dado que tuvo que eliminar 17 imágenes con puerta trasera después de haber sido descargadas 5 millones de veces.

Si bien el escaneo de imágenes en la etapa de compilación es imprescindible, las vulnerabilidades también representan un riesgo de seguridad para las implementaciones en ejecución. La gestión eficaz de vulnerabilidades abarca todo el ciclo de vida del contenedor y debe:

  • Identificar vulnerabilidades en imágenes, incluso en paquetes de sistema operativo instalados y bibliotecas de tiempo de ejecución para lenguajes de programación.
  • evitar que las imágenes con vulnerabilidades de riesgo se envíen al registro de contenedores accesible para producción
  • fallar las compilaciones que contienen vulnerabilidades reparables por encima de una cierta gravedad
  • aprovechar los controladores de admisión personalizados o de terceros en los clústeres de Kubernetes para evitar la programación de imágenes de contenedores vulnerables

  1. Amenazas en tiempo de ejecución

La fase de tiempo de ejecución es fundamental para la seguridad de los contenedores porque presenta un nuevo conjunto de desafíos de seguridad. Si ha desplazado la seguridad hacia la izquierda y ha minimizado el riesgo de seguridad de las vulnerabilidades y las configuraciones incorrectas, es probable que la principal amenaza en tiempo de ejecución provenga de adversarios externos. Hay algunas cosas que puede hacer aquí para mitigar sus mayores riesgos de seguridad.

  • Monitorear la actividad en tiempo de ejecución: comience por monitorear las actividades del contenedor más relevantes para la seguridad, como la actividad del proceso y las comunicaciones de red entre los servicios en contenedores y entre los servicios en contenedores y los clientes y servidores externos.
  • Aproveche los datos declarativos: use la información de tiempo de compilación e implementación para evaluar la actividad observada frente a la esperada durante el tiempo de ejecución para detectar actividad sospechosa
  • Limite la comunicación de red innecesaria: el tiempo de ejecución es cuando puede ver qué tipo de tráfico de red está permitido frente a lo que realmente se necesita para que funcione la aplicación, lo que le brinda la oportunidad de eliminar conexiones innecesarias
  • Usar listas de permisos de procesos: observe la aplicación durante un período de tiempo para identificar todos los procesos que se ejecutan en el curso normal del comportamiento de la aplicación, luego use esta lista como su lista de permitidos contra el comportamiento futuro de la aplicación.

 

  1. Auditoría de cumplimiento fallida

El cumplimiento es uno de los principales impulsores de las iniciativas de seguridad de contenedores y Kubernetes, y una auditoría de cumplimiento fallida generalmente se debe a que la seguridad se convierte en una ocurrencia tardía en el proceso de adopción de contenedores. Existen varios estándares de cumplimiento específicos para contenedores y Kubernetes que se aplican a todas las organizaciones, que incluyen:

  • Benchmark CIS para Docker
  • Benchmark CIS para Kubernetes
  • NIST SP 800-190

Los estándares de cumplimiento específicos de la industria incluyen PCI-DSS , HIPAA y SOC 2 . Un error común que cometen las organizaciones es esperar hasta que estén en producción antes de considerar sus requisitos de cumplimiento, o solo concentrarse en la fase de tiempo de ejecución.

La mejor manera de mitigar el riesgo de no pasar una auditoría de cumplimiento es implementar sus controles de seguridad lo antes posible, tanto en el proceso de adopción de contenedores como en el ciclo de vida del contenedor. Automatice sus comprobaciones de cumplimiento y los informes de pruebas tanto como sea posible para reducir los gastos generales.

Para reducir los riesgos de seguridad de los contenedores y Kubernetes, las empresas primero necesitan visibilidad de sus entornos nativos de la nube. Deben comprender cómo se crean las imágenes y si contienen vulnerabilidades, cómo se configuran las cargas de trabajo y la infraestructura para operar y dónde existen brechas de cumplimiento. Con esta información, Security y DevOps pueden comenzar a aplicar políticas para reducir el riesgo de seguridad a un nivel aceptable.

Referencia

Ajmal Kohgadai. StackBox (2020) Four Container and Kubernetes Security Risks You Should Mitigate.

Recuperado de:

https://www.stackrox.com/post/2020/10/four-container-and-kubernetes-security-risks-you-should-mitigate/

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Top