Sécurité

1. Container et root Sécurité:container Sécurité:root

a. Exemple d’exploit

Depuis le début, nous avons déployé l’application eni-todo sans nous soucier de ses droits, aussi bien lors de la construction de l’image que lors de son exécution. Or, notre application tourne avec l’UID 0, en tant que root.

La plupart des images disponibles publiquement, que ce soit sur Docker Hub ou dans des dépôts Git, ne tiennent pas compte de la gestion des utilisateurs : au sein du container, tout ou presque tourne en tant que root.

Or, on applique normalement le principe du moindre privilège : on ne devrait faire tourner un produit qu’avec les droits qui lui sont strictement nécessaires.

Prenons l’exemple de la simple image Nginx de test utilisée dans le chapitre Mise en place d’un cluster Kubernetes, et voyons ce qu’il est possible de faire avec.

$ docker run --name some-nginx -d nginx 

Si vous ouvrez un shell interactif au sein de ce container, vous voyez que vous êtes root.

$ docker exec -ti  87335d0ba8d7 bash 
root@87335d0ba8d7:/# id 
uid=0(root) gid=0(root) groups=0(root) 

Cela ne signifie pas forcément que nous pouvons aussi obtenir les droits root sur l’hôte : le container s’exécute dans son propre namespace. Notre container Nginx est ici limité et le risque est faible. Mais par défaut, les containers et l’hôte se partagent...

Pour consulter la suite, découvrez le livre suivant :
couv_EPHADIS.png
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Sauvegardes
Suivant
Surveillance