Ataque de vectores cuando se ejecutan imágenes docker no confiables

4

¿Cuáles son los posibles vectores de ataque si estoy ejecutando una imagen acoplable enviada por el usuario, por ejemplo? tire a través de docker pull FOO; ... docker run FOO donde FOO es una cadena enviada por el usuario que contiene el nombre de un repositorio de Docker Hub?

Esto es no una pregunta sobre la simple ejecución de código no confiable dentro de contenedores docker. De hecho, ya entiendo las implicaciones de seguridad de eso lo suficientemente bien por ahora. ¿Cuáles son los vectores de ataque adicionales relevantes para la ejecución de imágenes no confiables?

    
pregunta Alex Flint 22.12.2016 - 01:42
fuente

2 respuestas

4

Hay varias formas en que un contenedor no autorizado puede dañar el host u otros contenedores en la red, dependiendo de la configuración del daemon docker.

  • Por defecto, todos los contenedores comparten la misma red. Como tal contenedor rogue puede intentar atacar a otros contenedores. Esto podría incluir ataques como envenenamiento ARP dependiendo de los derechos otorgados al contenedor.
  • En el frente de la red, un contenedor no autorizado tiene una posición potencialmente privilegiada en su entorno y podría intentar atacar a otros sistemas en redes conectadas.
  • Un contenedor no autorizado puede intentar escalar privilegios para comprometer el sistema operativo del host. Esto generalmente se logra al intentar explotar las vulnerabilidades del kernel en el kernel del host. Un punto importante sobre el aislamiento del contenedor es que todos los contenedores en ejecución comparten el mismo kernel.
  • En esa nota, si el kernel expone cualquier información confidencial a los contenedores (por ejemplo, información del sistema de archivos / proc), es posible que el contenedor rogue tenga acceso a eso.
  • Si el contenedor se ejecuta con ciertas configuraciones, p. ej. --privileged o mapeando el socket de la ventana acoplable en el contenedor, se vuelve trivial para que el contenedor rogue tome el control del host.

Recomiendo leer el punto de referencia de seguridad de CIS para obtener información adicional y sugerencias para reforzar su instalación, si está interesado.

    
respondido por el Rоry McCune 08.01.2017 - 17:22
fuente
3

Depende de la versión específica de la ventana acoplable y de los contenedores que esté ejecutando. Y cómo estás usando tus contenedores.

Si bien el sueño es que un contenedor esté aislado del host, ha habido ocasiones en las que se descubrió un error o una vulnerabilidad que permitió que un contenedor obtuviera acceso de root al sistema host o, más comúnmente, poder dañar el anfitrión. Maneras fáciles de dañar el host:

  • Obtener un contenedor para provocar un pánico en el núcleo del host.
  • Denegación de servicio (hay varios recursos que un contenedor puede acosar para matar de hambre a los otros sistemas del host).
  • Un desarrollador, quizás tontamente, montando un volumen como lectura / escritura y el contenedor peligroso dañando u ocultando algo.

Las funciones de sus contenedores también agregan vulnerabilidades de seguridad adicionales:

  • Diga si un contenedor docker de proxy pequeño es una imagen envenenada. De repente, podría tener un interloper que rastree todas las solicitudes en la red y determine su topología.
  • O tal vez sus contenedores se hablan entre sí en una red privada cifrada y sin autenticación. Una imagen envenenada como una capa para uno de sus contenedores personalizados es la clave para comprometer todo el sistema.
  • O quizás el contenedor de la ventana acoplable es la imagen del colorete. Ahora que acaba de alimentar sus llaves a un contenedor falso.
respondido por el Lan 22.12.2016 - 02:05
fuente

Lea otras preguntas en las etiquetas