Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Seguridad en tiempo de ejecución
La seguridad en tiempo de ejecución proporciona una protección activa para sus contenedores mientras están en ejecución. La idea es detectar y and/or evitar que se produzcan actividades maliciosas dentro del contenedor. Esto se puede lograr con una serie de mecanismos en el núcleo de Linux o extensiones del núcleo que estén integradas con Kubernetes, como las capacidades de Linux, la computación segura (seccomp) o. AppArmor SELinux También hay opciones como Amazon GuardDuty y herramientas de terceros que pueden ayudar a establecer líneas de base y detectar actividades anómalas con una configuración menos manual de los mecanismos del núcleo de Linux.
importante
Actualmente, Kubernetes no proporciona ningún mecanismo nativo para cargar sec.comp o perfiles en los nodos. AppArmor SELinux Deben cargarse manualmente o instalarse en los nodos cuando se inician. Esto se debe hacer antes de hacer referencia a ellos en tus pods, ya que el programador no sabe qué nodos tienen perfiles. Descubre a continuación cómo herramientas como Security Profiles Operator pueden ayudar a automatizar el aprovisionamiento de perfiles en los nodos.
Contextos de seguridad y controles de Kubernetes integrados
Muchos mecanismos de seguridad en tiempo de ejecución de Linux están estrechamente integrados con Kubernetes y se pueden configurar a través de los contextos de seguridad de Kubernetes.privileged bandera, que viene de forma false predeterminada y, si está habilitada, equivale básicamente a rootear en el host. Casi siempre es inapropiado habilitar el modo privilegiado en las cargas de trabajo de producción, pero hay muchos más controles que pueden proporcionar privilegios más detallados a los contenedores, según proceda.
Capacidades de Linux
Las capacidades de Linux te permiten otorgar ciertas capacidades a un pod o contenedor sin proporcionar todas las capacidades del usuario root. Algunos ejemplos son: CAP_NET_ADMIN que permite configurar interfaces de red o firewallsCAP_SYS_TIME, o que permite manipular el reloj del sistema.
Seccomp
Con la informática segura (seccomp), puede impedir que una aplicación contenerizada realice determinadas llamadas al sistema operativo anfitrión subyacente. Si bien el sistema operativo Linux tiene unos cientos de llamadas al sistema, la mayor parte de ellas no son necesarias para ejecutar contenedores. Al restringir las llamadas al sistema que puede realizar un contenedor, puede reducir de manera efectiva la superficie de ataque de su aplicación.
Seccomp intercepta las llamadas al sistema y solo permite el paso de las llamadas permitidas. Docker tiene un perfil seccomp predeterminadosecurityContext
securityContext: seccompProfile: type: RuntimeDefault
A partir de la versión 1.22 (en alfa, estable a partir de la 1.27), lo anterior se RuntimeDefault puede usar para todos los pods de un nodo con un único indicador de kubelet.--seccomp-default Entonces, el perfil especificado en solo securityContext es necesario para otros perfiles.
También es posible crear tus propios perfiles para las cosas que requieren privilegios adicionales. Puede resultar muy tedioso hacerlo manualmente, pero hay herramientas como Inspektor Gadget
AppArmor y SELinux
AppArmor y SELinux se conocen como sistemas de control de acceso obligatorio o MAC.
Ambos AppArmor SELinux están integrados en Kubernetes, pero a partir de la versión 1.28 de Kubernetes los AppArmor perfiles deben especificarse mediante anotaciones
Al igual que con los perfiles seccomp, el operador de perfiles de seguridad mencionado anteriormente puede ayudar a implementar los perfiles en los nodos del clúster. (En el futuro, el proyecto también tiene como objetivo generar perfiles para AppArmor y SELinux como lo hace para seccomp).
Recomendaciones
Utilice Amazon GuardDuty para supervisar en tiempo de ejecución y detectar amenazas en sus entornos de EKS
Si actualmente no dispone de una solución para supervisar de forma continua los tiempos de ejecución de EKS, analizar los registros de auditoría de EKS y escanear en busca de malware y otras actividades sospechosas, Amazon recomienda encarecidamente el uso de Amazon GuardDuty
Vea esta charla técnica en línea de AWS «Detección mejorada de amenazas para Amazon EKS con Amazon GuardDuty : charlas técnicas en línea de AWS»
Opcionalmente: utilice una solución de terceros para la supervisión del tiempo de ejecución
Crear y administrar los perfiles seccomp y Apparmor puede resultar difícil si no está familiarizado con la seguridad de Linux. Si no tiene tiempo para adquirir los conocimientos necesarios, considere la posibilidad de utilizar una solución comercial de terceros. Muchos de ellos han ido más allá de los perfiles estáticos, como Apparmor y seccomp, y han empezado a utilizar el aprendizaje automático para bloquear o alertar sobre actividades sospechosas. A continuación, en la sección de herramientas, encontrará algunas de estas soluciones. Puede encontrar opciones adicionales en AWS Marketplace for Containers
Tenga en cuenta las capacidades de add/dropping Linux antes de redactar las políticas de seccomp
Las capacidades implican varias comprobaciones de las funciones del núcleo a las que se puede acceder mediante llamadas al sistema. Si la comprobación falla, la llamada al sistema normalmente devuelve un error. La comprobación se puede realizar justo al principio de una llamada al sistema específica o en una zona más profunda del núcleo, en áreas a las que se puede acceder mediante varias llamadas al sistema diferentes (por ejemplo, escribir en un archivo privilegiado específico). Seccomp, por otro lado, es un filtro de llamadas al sistema que se aplica a todas las llamadas al sistema antes de que se ejecuten. Un proceso puede configurar un filtro que le permita revocar su derecho a ejecutar determinadas llamadas al sistema o argumentos específicos para determinadas llamadas al sistema.
Antes de usar seccomp, considere si las capacidades de adding/removing Linux le proporcionan el control que necesita. Consulte Configurar las capacidades de los contenedores para
Comprueba si puedes lograr tus objetivos mediante las políticas de seguridad de Pod (PSPs)
Las políticas de seguridad de Pod ofrecen muchas formas diferentes de mejorar tu postura de seguridad sin introducir una complejidad excesiva. Explore las opciones disponibles PSPs antes de aventurarse a crear perfiles seccomp y Apparmor.
aviso
A partir de la versión 1.25 de Kubernetes, PSPs se eliminaron y se sustituyeron por el controlador de admisión Pod Security.
Herramientas y recursos
-
Security Profiles Operator
es una mejora de Kubernetes que tiene como objetivo facilitar a los usuarios su uso SELinux, seccomp y en clústeres de Kubernetes. AppArmor Ofrece funciones tanto para generar perfiles a partir de cargas de trabajo en ejecución como para cargar perfiles en nodos de Kubernetes para usarlos en pods. -
Inspektor Gadget
permite inspeccionar, rastrear y perfilar muchos aspectos del comportamiento en tiempo de ejecución en Kubernetes, incluida la asistencia en la generación de perfiles seccomp. -
NeuVector de SUSE
, plataforma de seguridad de contenedores de código abierto y de confianza cero, proporciona reglas de perfil de procesos y reglas de acceso a archivos.