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

El pasado sábado 18 de mayo, Jerry Gamblin, de Kenna Security, verificó las 1000 imágenes más populares del Docker Hub en busca de la contraseña de root utilizada en ellas. En el 19% de los casos, estuvo ausente.



Fondo con alpino


El motivo del mini estudio fue el Informe de vulnerabilidad de Talos ( TALOS-2019-0782 ), que apareció a principios de este mes, cuyos autores, gracias al hallazgo de Peter Adkins de Cisco Umbrella, informaron que las imágenes de Docker con el popular kit de distribución de contenedores Alpine no tienen una contraseña para raíz:

“Las versiones oficiales de las imágenes de Alpine Linux Docker (que comienzan con v3.3) contienen una contraseña NULL para el usuario root. Esta vulnerabilidad apareció como resultado de una regresión introducida en diciembre de 2015. Su esencia 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 de sistema de sombra como una base de datos de autenticación puede aceptar una contraseña NULA para el usuario raíz ".

Las versiones alpinas de las imágenes de Docker probadas para el problema se llamaron 3.3–3.9 inclusive, así como la última versión de borde.

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

“La cuenta raíz debe deshabilitarse explícitamente en las imágenes de Docker creadas sobre la base de versiones problemáticas de Alpine. La explotación probable de la vulnerabilidad depende del entorno, ya que su éxito requiere un servicio o aplicación que se haya enviado fuera, utilizando Linux PAM u otro mecanismo similar ".

El problema se solucionó en las versiones Alpine 3.6.5, 3.7.3, 3.8.4, 3.9.2 y edge (instantánea 20190228), y se ofreció a los propietarios de las imágenes afectadas comentar la línea con root en /etc/shadow o asegurarse de que no haya un paquete de linux-pam .

Continúa con el Docker Hub


Jerry Gamblin decidió preguntar, "cuán extendido puede llegar a ser la práctica de usar contraseñas nulas en contenedores". Para hacer esto, escribió un pequeño script de Bash , cuya esencia es muy simple:

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

Que paso Este archivo contenía 194 líneas con los nombres de imágenes populares de Docker con sistemas Linux, el usuario raíz en el que no tiene una contraseña:

“Entre los nombres más famosos en esta lista estaban 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 tirones ".

Sin embargo, vale la pena recordar que este fenómeno en sí mismo no significa una vulnerabilidad directa en la seguridad de los sistemas que los usan: todo depende de cómo se usen (ver el comentario del caso Alpine arriba) . Sin embargo, ya hemos visto "la moralidad de esta fábula" muchas veces: la aparente simplicidad a menudo tiene un inconveniente, que siempre debe recordarse y sus consecuencias deben tenerse en cuenta en sus escenarios de aplicación de tecnología.

PS


Lea también en nuestro blog:

Source: https://habr.com/ru/post/452754/


All Articles