Kubernetes Hardening

Support HackTricks

Zana za kuchambua kikundi

Kubescape ni zana ya chanzo wazi ya K8s inayotoa mtazamo mmoja wa kioo wa wingu, ikiwa ni pamoja na uchambuzi wa hatari, uthibitisho wa usalama, RBAC visualizer na uchunguzi wa mapungufu ya picha. Kubescape huchunguza vikundi vya K8s, faili za YAML, na chati za HELM, kugundua usanidi usio sahihi kulingana na fremu nyingi (kama vile NSA-CISA, MITRE ATT&CK®), mapungufu ya programu, na uvunjaji wa RBAC (udhibiti wa ufikiaji kulingana na jukumu) katika hatua za awali za mstari wa CI/CD, hupima alama ya hatari mara moja na kuonyesha mwelekeo 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 kontena (kushiriki nafasi ya PID na mwenyeji)

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

  • kusakinisha faili za hivi karibuni kutoka kwenye Ukurasa wa Kutolewa,

  • kuzikusanya kutoka kwenye 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 kontena 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 kuchunguza kikundi cha Kubernetes kwa ruhusa hatari katika mfano wa idhini ya kudhibiti msingi wa majukumu ya Kubernetes (RBAC).

Mkat ni zana iliyoundwa kufanya majaribio ya aina nyingine ya ukaguzi wa hatari ya juu ikilinganishwa na zana zingine. Kimsingi ina njia 3 tofauti:

  • find-role-relationships: Itapata ni majukumu gani ya AWS yanayoendeshwa katika podi zipi

  • find-secrets: Inajaribu kutambua siri katika rasilimali za K8s kama vile Podi, ConfigMaps, na Secrets.

  • test-imds-access: Itajaribu kuendesha podi na kujaribu kupata ufikiaji wa metadata v1 na v2. ONYO: Hii itaendesha podi katika kikundi, kuwa mwangalifu sana kwa sababu labda hutaki kufanya hivi!

Ukaguzi wa Kanuni ya IaC

Popeye ni zana ambayo huchunguza kikundi cha Kubernetes kilicho hai na kuripoti masuala yanayowezekana na rasilimali zilizosanikishwa na mazingira. Inasafisha kikundi chako kulingana na kilichosanikishwa na sio kilichopo kwenye diski. Kwa kuchunguza kikundi chako, inagundua upangaji mbaya na kukusaidia kuhakikisha kuwa mazoea bora yako mahali, hivyo kuzuia maumivu ya kichwa ya baadaye. Lengo lake ni kupunguza mzigo wa kiakili unaoelekea wakati wa kuendesha kikundi cha Kubernetes kwa porini. Zaidi ya hayo, ikiwa kikundi chako kinatumia metric-server, inaripoti rasilimali zinazowezekana za kuweka kwa kupindukia/kupungua na kujaribu kukuarifu ikiwa kikundi chako kitakosa uwezo.

KICS hupata mapungufu ya usalama, masuala ya utii, na upangaji mbaya wa miundombinu katika suluhisho za Miundombinu kama Kanuni: Terraform, Kubernetes, Docker, AWS CloudFormation, Ansible, Helm, Microsoft ARM, na vipimo vya OpenAPI 3.0

Checkov ni zana ya uchambuzi wa kanuni ya 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 upangaji mbaya wa usalama na utii kwa kutumia uchambuzi wa grafu.

kube-score ni zana inayofanya uchambuzi wa kanuni ya tuli ya 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 wa kontena ambazo zitakayoendeshwa (na SecurityContext). Kwa maelezo zaidi soma:

Kubernetes SecurityContext(s)

Kuboresha 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 kwa ajili ya kufikia Seva ya API na kukataa uunganisho 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/kusasisha lebo na kivuli cha node-restriction.kubernetes.io/. Lebo hii ya kivuli imehifadhiwa kwa waendeshaji wa mfumo kuweka lebo kwenye vitu vyao vya Node kwa madhumuni ya kusimamia mzigo wa kazi, na kubelets hawataruhusiwa kurekebisha lebo na kivuli hicho.

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

  • Hakikisha na lebo kufanya kazi salama ya kusimamia mzigo wa kazi.

  • Epuka podi maalum kutoka kufikia API.

  • Epuka kufichua ApiServer kwa mtandao.

  • Epuka upatikanaji usioruhusiwa wa RBAC.

  • Bandari ya ApiServer na firewall na orodha nyeupe ya 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 Kwa Ujumla

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 kiunzi).

  • kube-controller-manager.

  • kube-scheduler.

  • meneja wa kudhibiti wa wingu, ikiwa unatumia moja.

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

Support HackTricks

Last updated