Kubernetes SecurityContext(s)

Reading time: 8 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

PodSecurityContext

Kutoka kwenye hati:

Unapofafanua muktadha wa usalama wa Pod unaweza kutumia sifa kadhaa. Kutoka kwa mtazamo wa usalama wa kujilinda unapaswa kuzingatia:

  • Kuwa na runASNonRoot kama True
  • Kuunda runAsUser
  • Ikiwezekana, zingatia kudhibiti permissions ukionyesha seLinuxOptions na seccompProfile
  • Usitoe privilege group ufikiaji kupitia runAsGroup na supplementaryGroups

| Parameter | Maelezo | |

fsGroup
integer

|

Kikundi maalum cha nyongeza kinachotumika kwa mashine zote ndani ya pod. Aina fulani za volumu zinamruhusu Kubelet kubadilisha umiliki wa volumu hiyo kuwa umiliki wa pod:
1. GID inayomiliki itakuwa FSGroup
2. Bit ya setgid imewekwa (faili mpya zinazoundwa kwenye volumu zitakuwa na umiliki wa FSGroup)
3. Bit za ruhusa zimeunganishwa na rw-rw---- Ikiwa haijapangwa, 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 haikimbii 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

| Chaguzi 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
Sysctl array
Maelezo zaidi kuhusu sysctls

| Sysctls ina orodha ya sysctls zilizowekwa kwa pod. Pods zenye sysctls zisizoungwa mkono (na wakati wa kukimbia wa kontena) zinaweza kushindwa kuanzishwa. | |

windowsOptions
WindowsSecurityContextOptions

| Mipangilio maalum ya Windows inayotumika kwa kontena zote. Ikiwa haijapangwa, chaguzi ndani ya SecurityContext ya kontena zitatumika. |

SecurityContext

Kutoka kwenye hati:

Muktadha huu umewekwa ndani ya m definitions za kontena. Kutoka kwa mtazamo wa usalama wa kujilinda unapaswa kuzingatia:

  • allowPrivilegeEscalation kuwa False
  • Usiongeze capabilities nyeti (na uondoe zile usizohitaji)
  • privileged kuwa False
  • Ikiwezekana, weka readOnlyFilesystem kama True
  • Weka runAsNonRoot kuwa True na weka runAsUser
  • Ikiwezekana, zingatia kudhibiti permissions ukionyesha seLinuxOptions na seccompProfile
  • Usitoe privilege group ufikiaji kupitia runAsGroup.

Kumbuka kwamba sifa zilizowekwa katika SecurityContext na PodSecurityContext, thamani iliyowekwa katika SecurityContext inachukua kipaumbele.

allowPrivilegeEscalation
boolean

AllowPrivilegeEscalation inasimamia ikiwa mchakato unaweza kupata ruhusa zaidi 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 privileji. Mchakato katika kontena zilizo na privileji ni 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 zisizoweza kuandikwa na njia zilizofichwa.

readOnlyRootFilesystem
boolean

Ikiwa kontena hii ina mfumo wa faili wa mzizi usioandikwa. 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 haikimbii 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.

seccompProfile
SeccompProfile

Chaguzi za seccomp zinazotumika na kontena hii.

windowsOptions
WindowsSecurityContextOptions

Mipangilio maalum ya Windows inayotumika kwa kontena zote.

Marejeleo

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