Kubernetes Hardening

Reading time: 9 minutes

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks

Tools to analyse a cluster

**Steampipe - Kubernetes Compliance

Itafanya ukaguzi kadhaa wa kufuata juu ya klasta ya Kubernetes. Inajumuisha msaada kwa CIS, Shirika la Usalama wa Taifa (NSA) na Ripoti ya kiufundi ya Usalama wa Mtandao na Usalama wa Miundombinu (CISA) kwa ajili ya kuimarisha Kubernetes.

bash
# Install Steampipe
brew install turbot/tap/powerpipe
brew install turbot/tap/steampipe
steampipe plugin install kubernetes

# Start the service
steampipe service start

# Install the module
mkdir dashboards
cd dashboards
powerpipe mod init
powerpipe mod install github.com/turbot/steampipe-mod-kubernetes-compliance

# Run the module
powerpipe server

Kubescape

Kubescape ni chombo cha K8s cha chanzo wazi kinachotoa 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 makundi ya 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 jukumu) katika hatua za awali za mchakato wa CI/CD, inakadiria alama ya hatari mara moja na kuonyesha mwenendo wa hatari kwa muda.

bash
curl -s https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | /bin/bash
kubescape scan --verbose

Popeye

Popeye ni chombo kinachochunguza klasta za Kubernetes za moja kwa moja na kuripoti matatizo yanayoweza kutokea na rasilimali na mipangilio iliyowekwa. Inasafisha klasta yako kulingana na kile kilichowekwa na si kile kilichoko kwenye diski. Kwa kuchunguza klasta yako, inagundua makosa ya mipangilio na inakusaidia kuhakikisha kuwa mbinu bora zipo, hivyo kuzuia maumivu ya baadaye. Inalenga kupunguza mzigo wa kiakili _over_load mtu anayeukabili anapofanya kazi na klasta ya Kubernetes katika mazingira halisi. Zaidi ya hayo, ikiwa klasta yako inatumia metric-server, inaripoti rasilimali zinazoweza kuwa juu/chini ya mgawanyiko na inajaribu kukujulisha ikiwa klasta yako itakosa uwezo.

Kube-bench

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 linaloweka kube-bench kwenye mwenyeji, na kisha kukimbia kube-bench moja kwa moja kwenye mwenyeji
  • kuweka binaries za hivi karibuni kutoka kwenye Releases page,
  • kuandika kutoka chanzo.

Kubeaudit

[IMEKATWA] Chombo kubeaudit ni chombo cha mistari ya amri na pakiti ya Go ili kukagua klasta za Kubernetes kwa wasiwasi mbalimbali wa usalama.

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

kubeaudit all

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

Kube-hunter

[IMEKATISHWA] Zana kube-hunter inatafuta udhaifu wa usalama katika makundi ya Kubernetes. Zana hii ilitengenezwa ili kuongeza ufahamu na mwonekano wa matatizo ya usalama katika mazingira ya Kubernetes.

bash
kube-hunter --remote some.node.com

Trivy

Trivy ina skana zinazotafuta masuala ya usalama, na malengo ambapo inaweza kupata masuala hayo:

  • Picha ya Kontena
  • Mfumo wa Faili
  • Hifadhi ya Git (mbali)
  • Picha ya Mashine ya Kijamii
  • Kubernetes

Kubei

[Inaonekana kama haijatunzwa]

Kubei ni chombo cha skanning za udhaifu na zana ya kiwango cha CIS Docker inayowaruhusu watumiaji kupata tathmini sahihi na ya haraka ya hatari ya makundi yao ya kubernetes. Kubei inachanganua picha zote zinazotumiwa katika kundi la Kubernetes, ikiwa ni pamoja na picha za pods za programu na pods za mfumo.

KubiScan

KubiScan ni chombo cha kuchanganua kundi la Kubernetes kwa ruhusa hatari katika mfano wa udhibiti wa ufikiaji wa msingi wa jukumu la Kubernetes (RBAC).

Managed Kubernetes Auditing Toolkit

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

  • find-role-relationships: Ambayo itagundua ni majukumu gani ya AWS yanayoendesha 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 itaanzisha pod katika kundi, kuwa makini sana kwa sababu huenda hutaki kufanya hivi!

Audit IaC Code

KICS

KICS inapata udhaifu wa usalama, masuala ya kufuata, na makosa ya usanidi wa miundombinu katika Suluhisho za Miundombinu kama Msimbo: Terraform, Kubernetes, Docker, AWS CloudFormation, Ansible, Helm, Microsoft ARM, na spesifikesheni za OpenAPI 3.0

Checkov

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

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

Kube-score

kube-score ni chombo kinachofanya uchambuzi wa msimbo wa statiki wa maelezo yako ya vitu vya Kubernetes.

Ili kusakinisha:

UsambazajiAmri / Kiungo
Binaries zilizojengwa kwa macOS, Linux, na WindowsGitHub releases
Dockerdocker 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 kuunda muktadha wa usalama wa Pods (kwa PodSecurityContext) na wa kontena ambazo zitakazoendeshwa (kwa SecurityContext). Kwa maelezo zaidi soma:

Kubernetes SecurityContext(s)

Kubernetes API Hardening

Ni muhimu sana kulinda ufikiaji wa Kubernetes Api Server kwani mhusika mbaya mwenye mamlaka ya kutosha anaweza kuweza kuutumia vibaya na kuharibu mazingira kwa njia nyingi.
Ni muhimu kulinda ufikiaji (whitelist asili za kufikia API Server na kukataa muunganisho mwingine wowote) na uthibitishaji (kufuata kanuni ya kidogo mamlaka). 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.
  • https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#noderestriction
  • 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 hazitaruhusiwa 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 moto wa kuzuia na orodha ya IP za kuingia.

SecurityContext Hardening

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

yaml
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 kadri inavyohitajika 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):

  • Pandisha viungo vya Node ya Mwalimu ukifuatia mpangilio huu:
  • etcd (mifano yote).
  • kube-apiserver (mashine zote za udhibiti).
  • kube-controller-manager.
  • kube-scheduler.
  • meneja wa udhibiti wa wingu, ikiwa unatumia mmoja.
  • Pandisha viungo vya Node za Wafanyakazi kama kube-proxy, kubelet.

Ufuatiliaji & Usalama wa Kubernetes:

  • Kyverno Policy Engine
  • Cilium Tetragon - Ufuatiliaji wa Usalama wa eBPF na Utekelezaji wa Wakati Halisi
  • Sera za Usalama wa Mtandao
  • Falco - Ufuatiliaji wa usalama wa wakati halisi & ugunduzi

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks