Helm je správca balíkov pre Kubernetes, niečo ako apt-get
pre Ubuntu. V tejto poznámke uvidíme predchádzajúcu verziu kormidla (v2) s predvolene nainštalovanou službou kormidla, cez ktorú budeme pristupovať ku klastru.
Pripravme klaster; na tento účel spustite príkaz:
kubectl run --rm --restart=Never -it --image=madhuakula/k8s-goat-helm-tiller -- bash
demonštrácie
- Ak nenakonfigurujete nič navyše, helm v2 spustí službu obrábača, ktorá má RBAC s plnými právami správcu klastra.
- Po inštalácii do menného priestoru
kube-system
objaviatiller-deploy
a tiež otvorí port 44134, viazaný na 0.0.0.0. Dá sa to skontrolovať pomocou telnetu.
$ telnet tiller-deploy.kube-system 44134
- Teraz sa môžete pripojiť k službe kultivátora. Binárku kormidla použijeme na vykonávanie operácií pri komunikácii so službou kormidla:
$ helm --host tiller-deploy.kube-system:44134 version
- Pokúsme sa získať tajomstvá klastra Kubernetes z menného priestoru
kube-system
:
$ kubectl get secrets -n kube-system
- Teraz si môžeme vytvoriť vlastný graf, v ktorom vytvoríme rolu s administrátorskými právami a priradíme túto rolu predvolenému účtu služby. Pomocou tokenu z tohto účtu služby sme získali úplný prístup k nášmu klastru.
$ helm --host tiller-deploy.kube-system:44134 install /pwnchart
- Teraz kedy
pwnchart
nasadený, predvolený účet služby má úplný administratívny prístup. Pozrime sa znova, ako získať tajomstvá zkube-system
kubectl get secrets -n kube-system
Úspešné vykonanie tohto skriptu závisí od toho, ako bol kultivátor nasadený; niekedy ho správcovia nasadia do samostatného priestoru názvov s rôznymi privilégiami. Helm 3 nie je náchylný na takéto zraniteľnosti, pretože... nie je v ňom kormidlo.
Poznámka prekladateľa: Používanie sieťových politík na filtrovanie prevádzky v klastri pomáha chrániť sa pred týmto typom zraniteľností.
Zdroj: hab.com