Kubernetes Hardening

Support HackTricks

Tools to analyse a cluster

Kubescape ni zana ya K8s ya chanzo wazi inayotoa muonekano mmoja wa K8s wa multi-cloud, ikiwa ni pamoja na uchambuzi wa hatari, utii wa usalama, mchoraji wa RBAC na skanning ya udhaifu wa picha. Kubescape inachanganua klasta za K8s, faili za YAML, na chati za HELM, ikigundua makosa ya usanidi kulingana na mifumo mbalimbali (kama vile NSA-CISA , MITRE ATT&CK®), udhaifu wa programu, na ukiukaji wa RBAC (udhibiti wa ufikiaji kulingana na majukumu) katika hatua za awali za mchakato wa CI/CD, inakadiria alama ya hatari mara moja na kuonyesha mwenendo wa hatari kwa muda.

kubescape scan --verbose

Chombo kube-bench ni chombo kinachokagua ikiwa Kubernetes imewekwa kwa usalama kwa kukimbia ukaguzi ulioandikwa katika CIS Kubernetes Benchmark. Unaweza kuchagua:

  • kukimbia kube-bench kutoka ndani ya kontena (kushiriki PID namespace na mwenyeji)

  • kukimbia kontena linalosakinisha kube-bench kwenye mwenyeji, na kisha kukimbia kube-bench moja kwa moja kwenye mwenyeji

  • kusakinisha binaries za hivi karibuni kutoka kwenye Releases page,

  • kuandika kutoka chanzo.

Chombo kubeaudit ni chombo cha mistari ya amri na pakiti ya Go ili kukagua makundi ya Kubernetes kwa wasiwasi mbalimbali wa usalama.

Kubeaudit inaweza kugundua ikiwa inakimbia ndani ya kontena katika kundi. Ikiwa ndivyo, itajaribu kukagua rasilimali zote za Kubernetes katika kundi hilo:

kubeaudit all

Hii zana pia ina hoja autofix ili kurekebisha kiotomatiki matatizo yaliyogundulika.

Zana kube-hunter inatafuta udhaifu wa usalama katika makundi ya Kubernetes. Zana hii ilitengenezwa kuongeza ufahamu na mwonekano wa masuala ya usalama katika mazingira ya Kubernetes.

kube-hunter --remote some.node.com

Kubei ni chombo cha kuchanganua udhaifu na kipimo cha CIS Docker ambacho kinawawezesha watumiaji kupata tathmini sahihi na ya haraka ya hatari ya makundi yao ya kubernetes. Kubei inachanganua picha zote zinazotumika katika kundi la Kubernetes, ikiwa ni pamoja na picha za pods za programu na pods za mfumo.

KubiScan ni chombo cha kuchanganua kundi la Kubernetes kwa ruhusa hatari katika mfano wa idhini wa Role-based access control (RBAC) wa Kubernetes.

Mkat ni chombo kilichojengwa ili kujaribu aina nyingine za ukaguzi wa hatari kubwa ikilinganishwa na zana nyingine. Kimsingi ina njia 3 tofauti:

  • find-role-relationships: Ambayo itagundua ni AWS roles zipi zinazoendesha katika pods zipi

  • find-secrets: Ambayo inajaribu kubaini siri katika rasilimali za K8s kama Pods, ConfigMaps, na Secrets.

  • test-imds-access: Ambayo itajaribu kuendesha pods na kujaribu kufikia metadata v1 na v2. ONYO: Hii itakimbiza pod katika kundi, kuwa makini sana kwa sababu huenda hutaki kufanya hivi!

Audit IaC Code

Popeye ni chombo kinachochanganua kundi la Kubernetes lililo hai na kutoa ripoti za matatizo yanayoweza kutokea na rasilimali na mipangilio iliyowekwa. Inasafisha kundi lako kulingana na kile kilichowekwa na si kile kilichokaa kwenye diski. Kwa kuchanganua kundi lako, inagundua makosa ya mipangilio na inakusaidia kuhakikisha kuwa mbinu bora zipo, hivyo kuzuia maumivu ya baadaye. Inalenga kupunguza mzigo wa kiakili _over_load mtu anayeweza kukutana nao anapofanya kazi katika kundi la Kubernetes katika mazingira magumu. Zaidi ya hayo, ikiwa kundi lako linatumia metric-server, inatoa ripoti za rasilimali zinazoweza kuwa juu/chini na inajaribu kukujulisha ikiwa kundi lako litakosa uwezo.

KICS inapata udhaifu wa usalama, masuala ya kufuata sheria, na makosa ya mipangilio ya miundombinu katika Solutions za Miundombinu kama Msimbo zifuatazo: Terraform, Kubernetes, Docker, AWS CloudFormation, Ansible, Helm, Microsoft ARM, na OpenAPI 3.0 specifications

Checkov ni chombo cha uchambuzi wa msimbo wa statiki kwa miundombinu-kama-msimbo.

Inachanganua miundombinu ya wingu iliyowekwa kwa kutumia Terraform, mpango wa Terraform, Cloudformation, AWS SAM, Kubernetes, Dockerfile, Serverless au ARM Templates na kugundua makosa ya usalama na kufuata sheria kwa kutumia uchambuzi wa msingi wa grafu.

kube-score ni chombo kinachofanya uchambuzi wa msimbo wa statiki wa ufafanuzi wa vitu vyako vya Kubernetes.

Ili kusakinisha:

Tips

Kubernetes PodSecurityContext na SecurityContext

Unaweza kuunda muktadha wa usalama wa Pods (kwa PodSecurityContext) na wa michakato ambayo itakimbizwa (kwa SecurityContext). Kwa maelezo zaidi soma:

Kubernetes API Hardening

Ni muhimu sana kulinda ufikiaji wa Kubernetes Api Server kwani mhusika mbaya mwenye ruhusa ya kutosha anaweza kuweza kuutumia vibaya na kuharibu mazingira kwa njia nyingi. Ni muhimu kulinda ufikiaji (whitelist asili za kufikia API Server na kukataa uhusiano mwingine wowote) na uthibitishaji (kufuata kanuni ya least privilege). Na hakika kamwe usiruhusu maombi yasiyo na jina.

Mchakato wa Maombi ya Kawaida: Mtumiaji au K8s ServiceAccount –> Uthibitishaji –> Uidhinishaji –> Udhibiti wa Kukubali.

Vidokezo:

  • Funga bandari.

  • Epuka ufikiaji wa Kijadi.

  • NodeRestriction; Hakuna ufikiaji kutoka nodi maalum kwenda API.

  • Kimsingi inazuia kubelets kuongeza/kuondoa/kubadilisha lebo zenye prefix ya node-restriction.kubernetes.io/. Prefix hii ya lebo imehifadhiwa kwa wasimamizi kuweka lebo kwenye vitu vya Node kwa madhumuni ya kutenganisha kazi, na kubelets hawataruhusiwa kubadilisha lebo zenye prefix hiyo.

  • Na pia, inaruhusu kubelets kuongeza/kuondoa/kubadilisha lebo hizi na prefix za lebo.

  • Hakikisha kwa lebo kutenganisha kazi salama.

  • Epuka pods maalum kutoka kwa ufikiaji wa API.

  • Epuka kufichua ApiServer kwa mtandao.

  • Epuka ufikiaji usioidhinishwa RBAC.

  • Bandari ya ApiServer na firewall na IP whitelisting.

SecurityContext Hardening

Kwa kawaida mtumiaji wa root atatumika wakati Pod inaanza ikiwa mtumiaji mwingine hajakabidhiwa. Unaweza kuendesha programu yako ndani ya muktadha salama zaidi kwa kutumia kigezo kinachofanana na hiki:

apiVersion: v1
kind: Pod
metadata:
name: security-context-demo
spec:
securityContext:
runAsUser: 1000
runAsGroup: 3000
fsGroup: 2000
volumes:
- name: sec-ctx-vol
emptyDir: {}
containers:
- name: sec-ctx-demo
image: busybox
command: [ "sh", "-c", "sleep 1h" ]
securityContext:
runAsNonRoot: true
volumeMounts:
- name: sec-ctx-vol
mountPath: /data/demo
securityContext:
allowPrivilegeEscalation: true

Uimarishaji wa Jumla

Unapaswa kusasisha mazingira yako ya Kubernetes mara kwa mara ili kuwa na:

  • Mifumo ya utegemezi iliyo na toleo jipya.

  • Marekebisho ya makosa na usalama.

Mizunguko ya kutolewa: Kila miezi 3 kuna toleo jipya dogo -- 1.20.3 = 1(Mkubwa).20(Dogo).3(marekebisho)

Njia bora ya kusasisha Kundi la Kubernetes ni (kutoka hapa):

  • Sasisha vipengele vya Master Node ukifuatilia mpangilio huu:

  • etcd (mifano yote).

  • kube-apiserver (mashine zote za udhibiti).

  • kube-controller-manager.

  • kube-scheduler.

  • meneja wa udhibiti wa wingu, ikiwa unatumia mmoja.

  • Sasisha vipengele vya Worker Node kama vile kube-proxy, kubelet.

Support HackTricks

Last updated