El 19% de las principales imágenes de Docker no tienen una contraseña de root

El pasado sábado 18 de mayo, Jerry Gamblin de Kenna Security comprobado 1000 de las imágenes más populares de Docker Hub según la contraseña de root que utilizan. En el 19% de los casos estaba vacío.

El 19% de las principales imágenes de Docker no tienen una contraseña de root

Fondo con alpino

El motivo de la miniinvestigación fue el Informe de vulnerabilidad de Talos que apareció a principios de este mes (TALOS-2019-0782), cuyos autores, gracias al descubrimiento de Peter Adkins de Cisco Umbrella, informaron que las imágenes de Docker con la popular distribución de contenedores Alpine no tienen contraseña de root:

“Las versiones oficiales de las imágenes de Alpine Linux Docker (desde v3.3) contienen una contraseña NULL para el usuario root. Esta vulnerabilidad fue el resultado de una regresión introducida en diciembre de 2015. La esencia de esto es que los sistemas implementados con versiones problemáticas de Alpine Linux en un contenedor y que utilizan Linux PAM u otro mecanismo que utiliza el archivo oculto del sistema como base de datos de autenticación pueden aceptar una contraseña NULL para el usuario root”.

Las versiones de las imágenes de Docker con Alpine probadas para detectar el problema fueron 3.3–3.9 inclusive, así como la última versión de Edge.

Los autores hicieron la siguiente recomendación para los usuarios afectados:

“La cuenta raíz debe estar deshabilitada explícitamente en imágenes de Docker creadas a partir de versiones problemáticas de Alpine. La probable explotación de la vulnerabilidad depende del entorno, ya que su éxito requiere un servicio o aplicación reenviado externamente utilizando Linux PAM u otro mecanismo similar".

El problema era eliminado en las versiones Alpine 3.6.5, 3.7.3, 3.8.4, 3.9.2 y edge (instantánea 20190228), y se pidió a los propietarios de las imágenes afectadas que comentaran la línea con la raíz en /etc/shadow o asegúrese de que falta el paquete linux-pam.

Continúa con Docker Hub

Jerry Gamblin decidió sentir curiosidad por saber "qué tan común podría ser la práctica de usar contraseñas nulas en contenedores". Para ello escribió un pequeño script de bash, cuya esencia es muy simple:

  • mediante una solicitud curl a la API en Docker Hub, se solicita una lista de imágenes de Docker allí alojadas;
  • A través de jq está ordenado por campo. popularity, y de los resultados obtenidos quedan los primeros mil;
  • para cada uno de ellos se cumple docker pull;
  • para cada imagen recibida de Docker Hub se ejecuta docker run con la lectura de la primera línea del archivo /etc/shadow;
  • si el valor de la cadena es igual a root:::0:::::, el nombre de la imagen se guarda en un archivo separado.

¿Qué pasó? EN Este archivo Había 194 líneas con los nombres de imágenes de Docker populares en sistemas Linux, en las que el usuario root no tiene una contraseña establecida:

“Entre los nombres más conocidos de esta lista se encuentran govuk/governmentpaas, hashicorp, microsoft, monsanto y mesosphere. Y kylemanna/openvpn es el contenedor más popular de la lista, sus estadísticas suman más de 10 millones de extracciones”.

Vale la pena recordar, sin embargo, que este fenómeno en sí mismo no significa una vulnerabilidad directa en la seguridad de los sistemas que los utilizan: todo depende de cómo se utilicen exactamente. (ver comentario del caso Alpine arriba). Sin embargo, hemos visto muchas veces la “moraleja de la historia”: la aparente simplicidad a menudo tiene un inconveniente, que siempre hay que recordar y cuyas consecuencias se deben tener en cuenta en los escenarios de aplicación de la tecnología.

PS

Lea también en nuestro blog:

Fuente: habr.com

Añadir un comentario