Kubernetes Hardening

Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!

Njia nyingine za kusaidia HackTricks:

Zana za kuchambua kikundi

Kubescape ni zana ya chanzo wazi ya K8s inayotoa kioo cha moja kwa moja cha K8s kwenye wingu nyingi, ikiwa ni pamoja na uchambuzi wa hatari, uthibitisho wa usalama, RBAC visualizer na uchunguzi wa mapungufu ya picha. Kubescape inachunguza vikundi vya K8s, faili za YAML, na chati za HELM, kugundua usanidi mbaya kulingana na fremu nyingi (kama vile NSA-CISA, MITRE ATT&CK®), mapungufu ya programu, na uvunjaji wa RBAC (udhibiti wa upatikanaji kulingana na jukumu) katika hatua za awali za mstari wa CI/CD, hupima alama ya hatari mara moja na kuonyesha mwenendo wa hatari kwa muda.

kubescape scan --verbose

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

  • kukimbia kube-bench kutoka ndani ya chombo (kushiriki nafasi ya PID na mwenyeji)

  • kukimbia chombo ambacho hufunga kube-bench kwenye mwenyeji, na kisha kukimbia kube-bench moja kwa moja kwenye mwenyeji

  • kufunga binaries za hivi karibuni kutoka kwenye Ukurasa wa Kutolewa,

  • kuiandaa kutoka chanzo.

Chombo kubeaudit ni chombo cha mstari wa amri na pakiti ya Go ya kukagua vikundi vya Kubernetes kwa wasiwasi tofauti wa usalama.

Kubeaudit inaweza kugundua ikiwa inakimbia ndani ya chombo kwenye kikundi. Ikiwa ndivyo, itajaribu kukagua rasilimali zote za Kubernetes kwenye kikundi hicho:

kubeaudit all

Herramienta hii pia ina hoja ya mjadala autofix kurekebisha masuala yaliyogunduliwa kiotomatiki.

Zana kube-hunter inatafuta udhaifu wa usalama katika vikundi vya Kubernetes. Zana ilibuniwa kuongeza uelewa na uwazi kwa masuala ya usalama katika mazingira ya Kubernetes.

kube-hunter --remote some.node.com

Kubei ni zana ya uchunguzi wa mapungufu na kipimo cha CIS Docker ambacho huruhusu watumiaji kupata tathmini sahihi na ya haraka ya hatari katika vikundi vyao vya kubernetes. Kubei huchunguza picha zote zinazotumiwa katika kikundi cha Kubernetes, ikiwa ni pamoja na picha za podi za maombi na podi za mfumo.

KubiScan ni zana ya uchunguzi wa kikundi cha Kubernetes kwa ruhusa hatari katika mfano wa idhini ya kudhibiti upatikanaji wa msingi wa majukumu ya Kubernetes (RBAC).

Hakiki Kanuni ya IaC

Popeye ni zana inayochunguza kikundi cha Kubernetes kilicho hai na kuripoti masuala yanayowezekana na rasilimali na mipangilio iliyosanikishwa. Inasafisha kikundi chako kulingana na kilichosanikishwa na sio kilichopo kwenye diski. Kwa kuchunguza kikundi chako, inagundua upangishaji usio sahihi na kukusaidia kuhakikisha kuwa mazoea bora yapo, hivyo kuzuia maumivu ya kichwa ya baadaye. Lengo lake ni kupunguza mzigo wa kiakili anayekutana nao mtu anapofanya kazi na kikundi cha Kubernetes kwenye mazingira ya porini. Zaidi ya hayo, ikiwa kikundi chako kinatumia metric-server, inaripoti rasilimali zinazowezekana za kugawanywa zaidi/chini na kujaribu kukuarifu ikiwa kikundi chako kitakosa uwezo.

KICS hupata mapungufu ya usalama, masuala ya utii, na upangishaji usio sahihi wa miundombinu katika suluhisho za Miundombinu kama Kanuni: Terraform, Kubernetes, Docker, AWS CloudFormation, Ansible, Helm, Microsoft ARM, na maelezo ya OpenAPI 3.0

Checkov ni zana ya uchambuzi wa kanuni za tuli kwa miundombinu kama kanuni.

Inachunguza miundombinu ya wingu iliyosanikishwa kwa kutumia Terraform, Terraform plan, Cloudformation, AWS SAM, Kubernetes, Dockerfile, Serverless au Mifano ya ARM na kugundua upangishaji usio sahihi wa usalama na utii kwa kutumia uchambuzi wa grafu.

kube-score ni zana inayofanya uchambuzi wa kanuni za tuli za ufafanuzi wa vitu vyako vya Kubernetes.

Kufunga:

UsambazajiAmri / Kiungo

Binari zilizojengwa mapema kwa macOS, Linux, na Windows

Docker

docker pull zegl/kube-score (Docker Hub)

Homebrew (macOS na Linux)

brew install kube-score

Krew (macOS na Linux)

kubectl krew install score

Vidokezo

Kubernetes PodSecurityContext na SecurityContext

Unaweza kusanidi muktadha wa usalama wa Podi (na PodSecurityContext) na ya kontena ambazo zitakayotekelezwa (na SecurityContext). Kwa maelezo zaidi soma:

pageKubernetes SecurityContext(s)

Kuboresha Usalama wa API ya Kubernetes

Ni muhimu sana kulinda upatikanaji wa Seva ya API ya Kubernetes kwani mhusika mwenye nia mbaya na mamlaka za kutosha anaweza kutumia vibaya na kuharibu mazingira kwa njia nyingi. Ni muhimu kuhakikisha upatikanaji (kutengwa kwa asili za kupata Seva ya API na kukataa uhusiano mwingine) na uthibitisho (kufuata kanuni ya mamlaka kidogo). Na hakika kamwe ruhusu ombi la anomali.

Mchakato wa Ombi la Kawaida: Mtumiaji au Akaunti ya Huduma ya K8s –> Uthibitisho –> Uidhinishaji –> Kudhibiti Kuingia.

Vidokezo:

  • Funga bandari.

  • Epuka upatikanaji wa Anomali.

  • Kizuizi cha Node; Hakuna upatikanaji kutoka nodi maalum kwa API.

  • Kimsingi inazuia kubelets kuongeza/kutoa/sasisha lebo na kivuli cha node-restriction.kubernetes.io/. Lebo hii ya kivuli imetengwa kwa waendeshaji wa mfumo kuweka lebo kwenye vitu vyao vya Node kwa madhumuni ya kusimamisha kazi, na kubelets hawataruhusiwi kurekebisha lebo na kivuli hicho.

  • Na pia, inaruhusu kubelets kuongeza/kutoa/sasisha lebo hizi na vikundi vya lebo.

  • Hakikisha na lebo kufanya kazi salama ya kusimamisha kazi.

  • Epuka podi maalum kutoka kwa upatikanaji wa API.

  • Epuka kufichua ApiServer kwa mtandao.

  • Epuka upatikanaji usioruhusiwa wa RBAC.

  • Bandari ya ApiServer na firewall na kutengwa kwa IP.

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

Kufunga

Unapaswa kusasisha mazingira yako ya Kubernetes mara kwa mara kama inavyohitajika kuwa na:

  • Mahitaji yaliyosasishwa.

  • Mende na visasaisho vya usalama.

Mizunguko ya Kutolewa: Kila baada ya miezi 3 kuna kutolewa kipya kidogo -- 1.20.3 = 1(Kuu).20(Ndogo).3(kisasa)

Njia bora ya kusasisha Kikundi cha Kubernetes ni (kutoka hapa):

  • Sasisha vipengele vya Node ya Mwalimu kwa kufuata mfuatano huu:

  • etcd (maonyesho yote).

  • kube-apiserver (wenyeji wote wa udhibiti wa kiambatanisho).

  • kube-controller-manager.

  • kube-scheduler.

  • meneja wa kudhibiti wa wingu, ikiwa unatumia moja.

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

Last updated