Hace 4 años | Por cosmonauta a zdnet.com
Publicado hace 4 años por cosmonauta a zdnet.com

Investigadores de Cisco han revelado hoy que las imágenes de docker Alpine linux distribuidas desde el portal oficial Docker Hub han estado usando un password en blanco para el usuario root durante los últimos tres años. La distribución alpine linux es una de las más populares en Docker Hub, con cerca de 10 millones de descargas.

Comentarios

la historia no es que entras como root en el contenedor, es que mapeas todo el disco duro de la maquina fisica y desde el contenedor accedes a todo, es mas, puedes ejecutar cosas con sudo desde dentro del contenedor en la maquina fisica

m

Lo que no comenta el artículo es si el login está limitado por ejemplo a usar una private/public key (y no con password); de ser así (como en muchas máquinas linux, que tienen el root sin password, pero sin permisos para acceder de este modo) no es tan llamativo como aparenta. ¿Alguien sabe si efectivamente lo que han hecho ha sido permitir el login de root con password?

cosmonauta

#1 Los de alpine explican algo más https://www.alpinelinux.org/posts/Docker-image-vulnerability-CVE-2019-5021.html

Yo pienso que no se podía hacer login con root, pero quizás servicios que usen el sistema de usuarios para autenticar puedan estar comprometidos.

m

#2
[...]Services like sshd will not allow logins with blank passwords at all.

Unfortunately we missed the case when a user installs shadow and linux-pam instead of using the default tools.


Vale, interesante aporte extra. Luego efectivamente el fallo no fué el aparente; no se permitía el login con password (era un fallo imposible) pero sí que parece según este otro enlace que algo se les escapó. Curioso. Mañana lo leo con más tiempo.

dreierfahrer

A ver q no lo pillo.....

Si no esta root sin password estara con una password POR DEFECTO.

Por tanto cual es el problema?

c

#9 Nada. Si no saben lo que hacen no hay nada que los demás puedan hacer.

D

Normalmente en un contenedor docker en ejecución puedes entrar como root desde la máquina host ejecutando:
$ docker exec -ti -u 0 [container] /bin/sh

Si quieres proteger la cuenta root lo haces en tu Dockerfile, pero por defecto lo puedes hacer en todas las imágenes de linux (las que he probado).

#4 correcto, de hecho en la pagina de docker en buenas practicas es lo que te dicen

docker run -v /:/host -it contenedorconaccesoatodo

#9 quemarlos en la hoguera por herejes

pieróg

y cual es su solucion? ponerle una por defecto que conozca todo el mundo? roll

#6
cuando creas el contenedor le pones otro usuario por defecto que no tenga permisos cuando se ha creado todo.

RUN useradd -ms /bin/bash toto_user
USER toto_user

pieróg

#8 y que hacemos con la gente que NO crea contenedores, sino que se limita a bajarselos y ejecutarlos?
el usuario root seguira ahi, aunque corras el servicio en cuestion en otro