19 % des meilleures images Docker n'ont pas de mot de passe root

Samedi dernier, le 18 mai, Jerry Gamblin de Kenna Security vérifié 1000 19 des images les plus populaires de Docker Hub en fonction du mot de passe root qu'elles utilisent. Dans XNUMX % des cas, il était vide.

19 % des meilleures images Docker n'ont pas de mot de passe root

Fond avec Alpine

La raison de cette mini-recherche était le rapport sur la vulnérabilité Talos paru plus tôt ce mois-ci (TALOS-2019-0782), dont les auteurs - grâce à la découverte de Peter Adkins de Cisco Umbrella - ont signalé que les images Docker avec la populaire distribution de conteneurs Alpine n'ont pas de mot de passe root :

« Les versions officielles des images Alpine Linux Docker (depuis la v3.3) contiennent un mot de passe NULL pour l'utilisateur root. Cette vulnérabilité résulte d’une régression introduite en décembre 2015. L’essentiel 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 utilisant le fichier fantôme du système comme base de données d’authentification peuvent accepter un mot de passe NULL pour l’utilisateur root.

Les versions des images Docker avec Alpine testées pour le problème étaient 3.3 à 3.9 inclus, ainsi que la dernière version de Edge.

Les auteurs ont fait la recommandation suivante aux utilisateurs concernés :

« Le compte root doit être explicitement désactivé dans les images Docker créées à partir 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 transféré en externe utilisant Linux PAM ou un autre mécanisme similaire.

Le problème était éliminé 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 root dans /etc/shadow ou assurez-vous que le colis est manquant linux-pam.

Suite avec Docker Hub

Jerry Gamblin a décidé d'être curieux de savoir « à quel point la pratique consistant à utiliser des mots de passe nuls dans des conteneurs pourrait être courante ». A cet effet, il a écrit un petit Script bash, dont l'essence est très simple :

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

Ce qui s'est passé? DANS ce fichier Il y avait 194 lignes avec les noms d'images Docker populaires avec les systèmes Linux, dans lesquelles l'utilisateur root n'a pas de mot de passe défini :

« Parmi les noms les plus connus 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 d'extractions.

Il convient cependant 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 manière exacte dont ils sont utilisés. (voir commentaire du cas Alpine ci-dessus). Cependant, nous avons vu à maintes reprises la « morale de l’histoire » : l’apparente simplicité a souvent un inconvénient, dont il faut toujours se souvenir et dont les conséquences doivent être prises en compte dans vos scénarios d’application technologique.

PS

A lire aussi sur notre blog :

Source: habr.com

Ajouter un commentaire