Kubernetes SecurityContext(s)
Last updated
Last updated
Jifunze & fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Jifunze & fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Unapofafanua muktadha wa usalama wa Pod unaweza kutumia sifa kadhaa. Kutoka kwa mtazamo wa usalama wa kujihami unapaswa kuzingatia:
Kuwa na runASNonRoot kama Kweli
Kuunda runAsUser
Ikiwezekana, zingatia kudhibiti idhini ukionyesha seLinuxOptions na seccompProfile
Usitoe kikundi cha privilege kupitia runAsGroup na supplementaryGroups
fsGroup integer | Kikundi maalum cha nyongeza kinachotumika kwa mashine zote katika pod. Aina fulani za volumu zinaruhusu Kubelet kubadilisha umiliki wa volumu hiyo kuwa umiliki wa pod: 1. GID inayomiliki itakuwa FSGroup 2. Bit ya setgid imewekwa (faili mpya zinazoundwa katika volumu zitakuwa na umiliki wa FSGroup) 3. Bit za ruhusa zimeunganishwa na rw-rw---- Ikiwa hazijapangwa, Kubelet haitabadilisha umiliki na ruhusa za volumu yoyote |
fsGroupChangePolicy string | Hii inafafanua tabia ya kubadilisha umiliki na ruhusa za volumu kabla ya kuonyeshwa ndani ya Pod. |
runAsGroup integer | GID ya kuendesha kiingilio cha mchakato wa kontena. Inatumia chaguo la kawaida la wakati wa kukimbia ikiwa haijapangwa. |
runAsNonRoot boolean | Inaonyesha kwamba kontena lazima ikimbie kama mtumiaji asiye mzizi. Ikiwa ni kweli, Kubelet itathibitisha picha wakati wa kukimbia ili kuhakikisha kwamba haiendeshi kama UID 0 (mzizi) na itashindwa kuanzisha kontena ikiwa inafanya hivyo. |
runAsUser integer | UID ya kuendesha kiingilio cha mchakato wa kontena. Inarudi kwa mtumiaji aliyeainishwa katika metadata ya picha ikiwa haijapangwa. |
seLinuxOptions SELinuxOptions Maelezo zaidi kuhusu seLinux | Muktadha wa SELinux utakaotumika kwa kontena zote. Ikiwa haijapangwa, wakati wa kukimbia wa kontena utagawanya muktadha wa SELinux wa nasibu kwa kila kontena. |
seccompProfile SeccompProfile Maelezo zaidi kuhusu Seccomp | Chaguo za seccomp zinazotumika na kontena katika pod hii. |
supplementalGroups integer array | Orodha ya makundi yanayotumika kwa mchakato wa kwanza unaokimbia katika kila kontena, pamoja na GID ya msingi ya kontena. |
Sysctls ina orodha ya sysctls zilizopangwa kwa pod. Pods zenye sysctls zisizokubaliwa (na wakati wa kukimbia wa kontena) zinaweza kushindwa kuanzishwa. | |
Mipangilio maalum ya Windows inayotumika kwa kontena zote. Ikiwa haijapangwa, chaguo ndani ya Muktadha wa Usalama wa kontena kitatumika. |
Muktadha huu umewekwa ndani ya m定义 ya kontena. Kutoka kwa mtazamo wa usalama wa kujihami unapaswa kuzingatia:
allowPrivilegeEscalation kuwa False
Usiongeze uwezo wa nyeti (na uondoe wale usiotaka)
privileged kuwa False
Ikiwezekana, weka readOnlyFilesystem kama Kweli
Weka runAsNonRoot kuwa Kweli na weka runAsUser
Ikiwezekana, zingatia kudhibiti idhini ukionyesha seLinuxOptions na seccompProfile
Usitoe kikundi cha privilege kupitia runAsGroup.
Kumbuka kwamba sifa zilizowekwa katika SecurityContext na PodSecurityContext, thamani iliyowekwa katika SecurityContext ina kipaumbele.
allowPrivilegeEscalation boolean | AllowPrivilegeEscalation inasimamia ikiwa mchakato unaweza kupata zaidi ya ruhusa kuliko mchakato wake wa mzazi. Hii bool inasimamia moja kwa moja ikiwa bendera ya no_new_privs itawekwa kwenye mchakato wa kontena. AllowPrivilegeEscalation ni kweli kila wakati wakati kontena inakimbia kama Privileged au ina CAP_SYS_ADMIN |
capabilities Capabilities Maelezo zaidi kuhusu Capabilities | Uwezo wa kuongeza/kutoa unapokimbia kontena. Inarudi kwa seti ya kawaida ya uwezo. |
privileged boolean | Kimbia kontena katika hali ya kupendelea. Mchakato katika kontena zilizo na uwezo wa kupendelea ni kimsingi sawa na mzizi kwenye mwenyeji. Inarudi kwa uongo. |
procMount string | procMount inaashiria aina ya proc mount inayotumika kwa kontena. Chaguo la kawaida ni DefaultProcMount ambayo inatumia chaguo za wakati wa kukimbia kwa njia za kusoma tu na njia zilizofichwa. |
readOnlyRootFilesystem boolean | Ikiwa kontena hii ina mfumo wa faili wa mzizi wa kusoma tu. Chaguo la kawaida ni uongo. |
runAsGroup integer | GID ya kuendesha kiingilio cha mchakato wa kontena. Inatumia chaguo la kawaida la wakati wa kukimbia ikiwa haijapangwa. |
runAsNonRoot boolean | Inaonyesha kwamba kontena lazima ikimbie kama mtumiaji asiye mzizi. Ikiwa ni kweli, Kubelet itathibitisha picha wakati wa kukimbia ili kuhakikisha kwamba haiendeshi kama UID 0 (mzizi) na itashindwa kuanzisha kontena ikiwa inafanya hivyo. |
runAsUser integer | UID ya kuendesha kiingilio cha mchakato wa kontena. Inarudi kwa mtumiaji aliyeainishwa katika metadata ya picha ikiwa haijapangwa. |
seLinuxOptions SELinuxOptions Maelezo zaidi kuhusu seLinux | Muktadha wa SELinux utakaotumika kwa kontena. Ikiwa haijapangwa, wakati wa kukimbia wa kontena utagawanya muktadha wa SELinux wa nasibu kwa kila kontena. |
Chaguo za seccomp zinazotumika na kontena hii. | |
Mipangilio maalum ya Windows inayotumika kwa kontena zote. |
Jifunze & fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Jifunze & fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)