Kubernetes SecurityContext(s)

Support HackTricks

PodSecurityContext

Kutoka kwenye nyaraka:

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

  • Kuwa na runASNonRoot kama Kweli

  • Kupangilia runAsUser

  • Ikiwezekana, fikiria kupunguza ruhusa kwa kuonyesha seLinuxOptions na seccompProfile

  • Usipe upatikanaji wa kikundi cha ruhusa kupitia runAsGroup na supplementaryGroups

fsGroup nambari

Kikundi maalum cha ziada kinachotumika kwa kontena zote kwenye podi. Baadhi ya aina za jalada zinaruhusu Kubelet kubadilisha umiliki wa jalada hilo ili liwe mali ya podi: 1. GID inayomiliki itakuwa FSGroup 2. Biti ya setgid imewekwa (faili mpya zilizoundwa kwenye jalada zitamilikiwa na FSGroup) 3. Biti za ruhusa zimeor'd na rw-rw---- Ikiwa haijawekwa, Kubelet haitabadilisha umiliki na ruhusa ya jalada lolote

Hii inadefinisha tabia ya kubadilisha umiliki na ruhusa ya jalada kabla ya kuwekwa wazi ndani ya Podi.

runAsGroup nambari

GID ya kuendesha kuingia kwa mchakato wa kontena. Inatumia chaguo la wakati wa kukimbia ikiwa haijawekwa. Inaweza pia kuwekwa katika Muktadha wa Usalama.

Inaonyesha kwamba kontena lazima iendeshwe kama mtumiaji asiye wa mizizi. Ikiwa ni kweli, Kubelet itathibitisha picha wakati wa kukimbia ili kuhakikisha kuwa haitaendeshwa kama UID 0 (mizizi) na kushindwa kuanza kontena ikiwa itafanya hivyo.

runAsUser nambari

UID ya kuendesha kuingia kwa mchakato wa kontena. Ina default kwa mtumiaji aliyeainishwa kwenye metadata ya picha ikiwa haijawekwa.

seLinuxOptions SELinuxOptions Maelezo zaidi kuhusu seLinux

Muktadha wa SELinux utakaotumiwa kwa kontena zote. Ikiwa haijawekwa, muda wa kontena utatenga muktadha wa SELinux wa kubahatisha kwa kila kontena.

seccompProfile SeccompProfile Maelezo zaidi kuhusu Seccomp

Chaguo za seccomp kutumika na kontena kwenye podi hii.

supplementalGroups orodha ya nambari

Orodha ya vikundi vinavyotumika kwa mchakato wa kwanza unaorushwa kwenye kila kontena, mbali na GID kuu ya kontena.

sysctls Sysctl orodha Maelezo zaidi kuhusu sysctls

Sysctls inashikilia orodha ya sysctls zilizotengwa kwa podi. Podi zenye sysctls zisizoungwa mkono (na muda wa kontena) zinaweza kushindwa kuzinduliwa.

Mipangilio maalum ya Windows inayotumiwa kwa kontena zote. Ikiwa haijawekwa, chaguo ndani ya Muktadha wa Usalama wa kontena itatumika.

## SecurityContext

Kutoka kwa nyaraka:

Muktadha huu umewekwa ndani ya maelezo ya vyombo. Kutoka kwa mtazamo wa usalama wa kujilinda unapaswa kuzingatia:

  • allowPrivilegeEscalation iwe False

  • Usiweke capabilities nyeti (na ondoa zile usizohitaji)

  • privileged iwe False

  • Ikiwezekana, weka readOnlyFilesystem kama True

  • Weka runAsNonRoot iwe True na weka runAsUser

  • Ikiwezekana, zingatia kupunguza ruhusa kwa kuonyesha seLinuxOptions na seccompProfile

  • USIPE upatikanaji wa kikundi cha privilege kupitia runAsGroup.

Tafadhali kumbuka kuwa sifa zilizowekwa katika SecurityContext na PodSecurityContext, thamani iliyoainishwa katika SecurityContext inachukua kipaumbele.

AllowPrivilegeEscalation inadhibiti ikiwa mchakato unaweza kupata mamlaka zaidi kuliko mchakato wake mzazi. Bool hii moja kwa moja inadhibiti ikiwa bendera ya no_new_privs itawekwa kwenye mchakato wa chombo. AllowPrivilegeEscalation ni kweli daima wakati chombo kinakimbia kama Privileged au ina CAP_SYS_ADMIN

capabilities Capabilities Maelezo zaidi kuhusu Capabilities

uwezo wa kuongeza/kuondoa wakati wa kukimbia vyombo. Inabadilika kulingana na seti ya uwezo ya msingi.

privileged boolean

Kimbia chombo katika hali ya kuwa na mamlaka. Mchakato katika vyombo vilivyo na mamlaka ni sawa na root kwenye mwenyeji. Inabadilika kuwa uongo.

procMount string

procMount inaashiria aina ya proc mount ya kutumia kwa vyombo. Chaguo la msingi ni DefaultProcMount ambayo hutumia mipangilio ya msingi ya kukimbia kwa njia za kusoma tu na njia zilizofichwa.

Ikiwa chombo hiki kina mfumo wa mizizi wa kusoma tu. Chaguo la msingi ni uongo.

runAsGroup integer

GID ya kukimbia kuingia ya mchakato wa chombo. Inatumia chaguo la kukimbia kwa wakati wa msingi ikiwa haijaainishwa.

runAsNonRoot boolean

Inaonyesha kuwa chombo lazima kikimbie kama mtumiaji asiye na mizizi. Ikiwa ni kweli, Kubelet itathibitisha picha wakati wa kukimbia ili kuhakikisha kuwa haikimbi kama UID 0 (mizizi) na itashindwa kuanza chombo ikiwa itafanya hivyo.

runAsUser integer

UID ya kukimbia kuingia ya mchakato wa chombo. Chaguo la msingi ni mtumiaji aliyeainishwa katika metadata ya picha ikiwa haijaainishwa.

seLinuxOptions SELinuxOptions Maelezo zaidi kuhusu seLinux

Muktadha wa SELinux utakaotumiwa kwa chombo. Ikiwa haijaainishwa, kukimbia kwa chombo kutagawa muktadha wa SELinux wa kubahatisha kwa kila chombo.

chaguo za seccomp za kutumia na chombo hiki.

Mipangilio maalum ya Windows inayotumiwa kwa vyombo vyote.

Marejeo

Support HackTricks

Last updated