19% des images Docker les plus populaires n'ont pas de mot de passe root

Le samedi 18 mai dernier, Jerry Gamblin de Kenna Security a vérifié les 1000 images les plus populaires du Docker Hub pour le mot de passe root utilisé. Dans 19% des cas, il était absent.



Contexte avec Alpine


La raison de la mini-étude était Talos Vulnerability Report ( TALOS-2019-0782 ), qui a été publié plus tôt ce mois-ci, dont les auteurs - grâce à la découverte de Peter Adkins de Cisco Umbrella - ont rapporté que les images Docker avec le kit de distribution populaire pour les conteneurs Alpine n'avaient pas de mot de passe pour racine:

«Les versions officielles des images Alpine Linux Docker (à partir de la v3.3) contiennent un mot de passe NULL pour l'utilisateur root. Cette vulnérabilité est apparue à la suite d'une régression introduite en décembre 2015. Son essence est que les systèmes déployés avec des versions problématiques d'Alpine Linux dans un conteneur et utilisant Linux PAM ou un autre mécanisme qui utilise le fichier système fantôme comme base de données d'authentification peuvent accepter un mot de passe NULL pour l'utilisateur root. »

Les versions alpines des images Docker testées pour le problème ont été appelées 3.3–3.9 inclus, ainsi que la dernière version Edge.

Les auteurs ont fait la recommandation suivante aux utilisateurs concernés par le problème:

«Le compte root doit être explicitement désactivé dans les images Docker construites sur la base de versions problématiques d'Alpine. L'exploitation probable de la vulnérabilité dépend de l'environnement, car son succès nécessite un service ou une application qui a été transféré à l'extérieur, en utilisant Linux PAM ou un autre mécanisme similaire. »

Le problème a été corrigé dans les versions Alpine 3.6.5, 3.7.3, 3.8.4, 3.9.2 et edge (instantané 20190228), et les propriétaires des images concernées ont été invités à commenter la ligne avec racine dans /etc/shadow ou à s'assurer qu'il n'y a pas de paquet linux-pam .

Suite avec le Docker Hub


Jerry Gamblin a décidé de se renseigner, "dans quelle mesure cela pourrait se révéler être la pratique d'utiliser des mots de passe nuls dans les conteneurs." Pour ce faire, il a écrit un petit script Bash , dont l'essence est très simple:

  • via une requête curl à l'API dans le Docker Hub, une liste des images Docker qui y sont hébergées est demandée;
  • grâce à jq, il est trié par domaine de popularity et les mille premiers restes des résultats obtenus;
  • docker pull est exécutée pour chacun d'eux;
  • pour chaque image reçue du Docker Hub, l' docker run est effectuée avec la lecture de la première ligne du fichier /etc/shadow ;
  • si la valeur de chaîne s'est avérée être root:::0::::: , le nom de l'image est enregistré dans un fichier séparé.

Que s'est-il passé? Ce fichier contenait 194 lignes avec les noms d'images Docker populaires avec les systèmes Linux, l'utilisateur root dans lequel n'a pas de mot de passe:

«Parmi les noms les plus célèbres de cette liste figuraient govuk / governmentpaas, hashicorp, microsoft, monsanto et mesosphere. Et kylemanna / openvpn est le conteneur le plus populaire de la liste, ses statistiques totalisent plus de 10 millions de pulls. "

Cependant, il convient de rappeler que ce phénomène en soi ne signifie pas une vulnérabilité directe dans la sécurité des systèmes qui les utilisent: tout dépend de la façon dont ils sont utilisés (voir le commentaire du cas Alpine ci-dessus) . Cependant, nous avons déjà vu à plusieurs reprises «la moralité de cette fable»: la simplicité apparente a souvent un inconvénient, dont il faut toujours se souvenir et dont les conséquences doivent être prises en compte dans les scénarios technologiques.

PS


Lisez aussi dans notre blog:

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


All Articles