¿Puede un usuario root dentro de un Docker / LXC romper la seguridad de todo el sistema?

11

Probablemente mi pregunta sea más sobre el LXC que sobre Docker, pero me pregunto cuáles son los mecanismos de seguridad para evitar que un usuario root dentro de una imagen de Docker acceda a todo el host.

Más precisamente, me pregunto cuáles son los límites de las capacidades de dicho usuario root antes de llegar a un punto en el que pueda hacer cosas peligrosas.

Por lo general, con fines educativos, necesito que los estudiantes carguen un módulo del núcleo desde una imagen de Docker. ¿Se podría acceder a este módulo del kernel desde todo el sistema? Y, de no ser así, ¿cuáles son los límites y cómo los LXC se ocupan de la separación de memoria dentro del espacio del kernel?

Para abreviar, me gustaría saber hasta dónde podemos llegar con LXC sin que sea perjudicial para el sistema.

    
pregunta perror 30.11.2015 - 18:21
fuente

1 respuesta

11

Respuesta corta: la raíz en el contenedor de la ventana acoplable puede salir de la cárcel y comprometer el sistema.

Docker está destinado a simplificar la vida de los desarrolladores y administradores de sistemas, no de contener programas aislados unos de otros. Hay algunas características de seguridad respaldadas, pero no son la intención principal. La idea es enviar un contenedor con la aplicación y todos los requisitos previos empaquetados juntos y dejar que el usuario lo inicie sin problemas, para no mantener a los usuarios o aplicaciones mal controlados.

Hay algunas vulnerabilidades que hacen posible que un usuario que ejecuta aplicaciones raíz dentro de un contenedor se libere del contenedor y ponga en peligro el host. Docker tomó algunas medidas para corregir esas lagunas, pero son engorrosas de emplear.

Este artículo de seguridad de Docker le dice que no permita que los usuarios carguen módulos. Para permitir la carga de módulos, permite al usuario liberarse fácilmente de la cárcel. Si desea seguridad Y deje que las personas carguen módulos, use una máquina virtual.

Puedes crear máquinas virtuales ligeras usando Xen, VirtualBox o Kvm, y estarán aisladas unas de otras. Puede asignar a todos los usuarios root en la imagen, y no podrán meterse entre ellos ni con el sistema host.

    
respondido por el ThoriumBR 30.11.2015 - 18:39
fuente

Lea otras preguntas en las etiquetas