Kubernetes SecurityContext(s)

Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!

Njia nyingine za kusaidia HackTricks:

PodSecurityContext

Kutoka kwenye nyaraka:

Unapotaja 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

  • USIMPE upatikanaji wa kikundi cha mamlaka kupitia runAsGroup na supplementaryGroups

fsGroup nambari

Kikundi maalum cha ziada kinachotumika kwa kontena zote katika podi. Baadhi ya aina za kiasi cha data kuruhusu Kubelet kubadilisha umiliki wa kiasi hicho cha data ili kumilikiwe na podi: 1. GID inayomiliki itakuwa FSGroup 2. Biti ya setgid imewekwa (faili mpya zilizoundwa kwenye kiasi zitamilikiwa na FSGroup) 3. Biti za ruhusa zimeongezwa na rw-rw---- Ikiwa haijawekwa, Kubelet haitabadilisha umiliki na ruhusa ya kiasi chochote

Hii inadefinisha tabia ya kubadilisha umiliki na ruhusa ya kiasi cha data kabla ya kuwekwa wazi ndani ya Podi.

runAsGroup nambari

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

Inaonyesha kwamba kontena lazima iende kama mtumiaji asiye wa mizizi. Ikiwa ni kweli, Kubelet itathibitisha picha wakati wa utekelezaji ili kuhakikisha kuwa haifanyi kazi kama UID 0 (mizizi) na kushindwa kuanza kontena ikiwa inafanya 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 utekelezaji wa kontena utatenga muktadha wa SELinux wa nasibu kwa kila kontena.

seccompProfile SeccompProfile Maelezo zaidi kuhusu Seccomp

Chaguo za seccomp kutumika na kontena katika podi hii.

supplementalGroups orodha ya nambari

Orodha ya vikundi vinavyotumika kwa mchakato wa kwanza unaotekelezwa katika 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 utekelezaji 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 ufafanuzi wa vyombo. Kutoka 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.

Tambua 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. Ina default kwa 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. Ina default kuwa ni uongo.

procMount string

procMount inaashiria aina ya proc mount ya kutumia kwa vyombo. Chaguo la msingi ni DefaultProcMount ambayo hutumia mipangilio ya msingi ya runtime ya chombo 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 runtime ikiwa halijaainishwa.

runAsNonRoot boolean

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

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, runtime ya chombo itatenga 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

Jifunze kuhusu kuvamia AWS kutoka sifuri hadi shujaa na htARTE (HackTricks AWS Red Team Expert)!

Njia nyingine za kusaidia HackTricks:

Last updated