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
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
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.
# 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.
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.
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 zipifind-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:
Usambazaji | Amri / Kiungo |
---|---|
Binaries zilizojengwa kwa macOS, Linux, na Windows | GitHub releases |
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 kuunda muktadha wa usalama wa Pods (kwa PodSecurityContext) na wa kontena ambazo zitakazoendeshwa (kwa SecurityContext). Kwa maelezo zaidi soma:
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:
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
- https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
- https://kubernetes.io/docs/concepts/policy/pod-security-policy/
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
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.