En el 19% de las imágenes de Docker más populares no hay contraseña para root

El pasado sábado 18 de mayo, Jerry Gamblin de Kenna Security verificó 1000 de las imágenes más populares de Docker Hub en busca de la contraseña utilizada para el usuario root. En el 19% de los casos, resultó ser vacía.

En el 19% de las imágenes de Docker más populares no hay contraseña para root

Historia de fondo de Alpine

La razón para llevar a cabo esta mini-investigación fue el informe de vulnerabilidad de Talos (TALOS-2019-0782), cuyos autores, gracias al descubrimiento de Peter Adkins de Cisco Umbrella, informaron que las imágenes de Docker con el popular sistema operativo para contenedores Alpine no tienen contraseña para root:

«Las versiones oficiales de las imágenes de Docker de Alpine Linux (a partir de la v3.3) contienen una contraseña NULL para el usuario root. Esta vulnerabilidad surgió como resultado de una regresión presentada en diciembre de 2015. Se trata de que los sistemas desplegados con versiones problemáticas de Alpine Linux en contenedores y que utilizan Linux PAM u otro mecanismo que usa el archivo de sistema shadow como base de datos para la autenticación, pueden aceptar una contraseña nula (NULL) para el usuario root».

Las versiones de imágenes de Docker con Alpine confirmadas como problemáticas abarcaban desde la 3.3 hasta la 3.9 inclusive, además de la última versión edge.

Los autores ofrecieron la siguiente recomendación a los usuarios afectados por el problema:

«La cuenta root debe ser explícitamente desactivada en las imágenes de Docker construidas sobre versiones problemáticas de Alpine. La explotación probable de esta vulnerabilidad depende del entorno, ya que su éxito requiere un servicio o aplicación expuesta que utilice Linux PAM u otro mecanismo similar».

El problema estaba se solucionó en Alpine versiones 3.6.5, 3.7.3, 3.8.4, 3.9.2 y edge (snapshot de 20190228), y a los poseedores de imágenes afectadas se les sugirió comentar la línea con root en /etc/shadow o asegurarse de que no está presente el paquete linux-pam.

Continuación desde Docker Hub

Jerry Gamblin decidió investigar "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 bastante simple:

  • a través de una solicitud curl al API de Docker Hub se solicita una lista de las imágenes de Docker alojadas allí;
  • a través de jq se ordena por el campo popularidad, y de los resultados obtenidos se conservan los primeros mil;
  • para cada uno de ellos se realiza docker pull;
  • para cada imagen obtenida de Docker Hub se ejecuta docker run leyendo la primera línea del archivo, /etc/shadow;
  • si el valor de la línea resultó ser igual a root:::0:::::, el nombre de la imagen se guarda en un archivo separado.

¿Qué resultó? En este archivo se encontraron 194 líneas con los nombres de imágenes populares de Docker con sistemas Linux, donde el usuario root no tiene una contraseña establecida:

«Entre los nombres más conocidos en esta lista estaban govuk/governmentpaas, hashicorp, microsoft, monsanto y mesosphere. Mientras que kylemanna/openvpn es el contenedor más popular de la lista, con más de 10 millones de descargas».

Cabe recordar, sin embargo, que este fenómeno en sí no implica una vulnerabilidad directa en la seguridad de los sistemas que los utilizan: todo depende de cómo se empleen. (ver comentario sobre Alpine arriba). Sin embargo, «la moraleja de esta fábula» ya la hemos visto muchas veces: la aparente simplicidad a menudo tiene un lado opuesto, que siempre es necesario recordar y cuyas consecuencias deben considerarse en los escenarios de aplicación de la tecnología.

P.D.

También puedes leer en nuestro blog:

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster