Helm est un gestionnaire de paquets pour Kubernetes, quelque chose comme apt-get
pour Ubuntu. Dans cette note, nous verrons la version précédente de helm (v2) avec le service tiller installé par défaut, via lequel nous accéderons au cluster.
Préparons le cluster ; pour cela, exécutez la commande :
kubectl run --rm --restart=Never -it --image=madhuakula/k8s-goat-helm-tiller -- bash
Démonstration
- Si vous ne configurez rien de plus, helm v2 démarre le service Tiller, qui dispose de RBAC avec tous les droits d'administrateur de cluster.
- Après l'installation dans l'espace de noms
kube-system
apparaîttiller-deploy
, et ouvre également le port 44134, lié à 0.0.0.0. Cela peut être vérifié en utilisant Telnet.
$ telnet tiller-deploy.kube-system 44134
- Vous pouvez maintenant vous connecter au service Tiller. Nous utiliserons le binaire helm pour effectuer des opérations lors de la communication avec le service Tiller :
$ helm --host tiller-deploy.kube-system:44134 version
- Essayons d'obtenir les secrets du cluster Kubernetes à partir de l'espace de noms
kube-system
:
$ kubectl get secrets -n kube-system
- Nous pouvons maintenant créer notre propre graphique, dans lequel nous allons créer un rôle avec des droits d'administrateur et attribuer ce rôle au compte de service par défaut. En utilisant le jeton de ce compte de service, nous avons reçu un accès complet à notre cluster.
$ helm --host tiller-deploy.kube-system:44134 install /pwnchart
- Maintenant, quand
pwnchart
déployé, le compte de service par défaut dispose d’un accès administratif complet. Voyons à nouveau comment obtenir des secrets dekube-system
kubectl get secrets -n kube-system
L'exécution réussie de ce script dépend de la manière dont Tiller a été déployé ; parfois les administrateurs le déploient dans un espace de noms distinct avec des privilèges différents. Helm 3 n'est pas sensible à de telles vulnérabilités car... il n'y a pas de barre dedans.
Note du traducteur: L'utilisation de stratégies réseau pour filtrer le trafic dans un cluster permet de se protéger contre ce type de vulnérabilités.
Source: habr.com