Kubernetes SecurityContext(s)

Tip

Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Leer & oefen Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks

PodSecurityContext

Uit die dokumentasie:

Wanneer jy die sekuriteitskonteks van ’n Pod spesifiseer, kan jy verskeie eienskappe gebruik. Vanuit ’n defensiewe sekuriteits oogpunt moet jy oorweeg:

  • Om runASNonRoot as Waar te hê
  • Om runAsUser te konfigureer
  • Indien moontlik, oorweeg om toestemmings te beperk deur seLinuxOptions en seccompProfile aan te dui
  • Moet NIE privilege groep toegang gee via runAsGroup en supplementaryGroups

| Parameter | Beskrywing | |

fsGroup
integer

|

‘n Spesiale aanvullende groep wat op alle houers in ’n pod van toepassing is. Sommige volume tipe laat die Kubelet toe om die eienaarskap van daardie volume te verander sodat dit aan die pod behoort:
1. Die eienaam GID sal die FSGroup wees
2. Die setgid-bietjie is ingestel (nuwe lêers wat in die volume geskep word, sal deur FSGroup besit word)
3. Die toestemmingsbietjies word OR’d met rw-rw–– As nie ingestel nie, sal die Kubelet nie die eienaarskap en toestemmings van enige volume verander

|

|

fsGroupChangePolicy
string

| Dit definieer die gedrag van eienaarskap en toestemming van die volume verander voordat dit binne die Pod blootgestel word. | |

runAsGroup
integer

| Die GID om die ingangspunt van die houer proses te laat loop. Gebruik runtime standaard as dit nie ingestel is nie. | |

runAsNonRoot
boolean

| Dui aan dat die houer as ’n nie-root gebruiker moet loop. As waar, sal die Kubelet die beeld tydens uitvoering valideer om te verseker dat dit nie as UID 0 (root) loop nie en sal dit misluk om die houer te begin as dit wel doen. | |

runAsUser
integer

| Die UID om die ingangspunt van die houer proses te laat loop. Standaard na die gebruiker gespesifiseer in beeld metadata as dit nie gespesifiseer is nie. | |

seLinuxOptions
SELinuxOptions
Meer inligting oor seLinux

| Die SELinux konteks wat op alle houers toegepas moet word. As nie gespesifiseer nie, sal die houer runtime ’n ewekansige SELinux konteks vir elke houer toewys. | |

seccompProfile
SeccompProfile
Meer inligting oor Seccomp

| Die seccomp opsies wat deur die houers in hierdie pod gebruik moet word. | |

supplementalGroups
integer array

| ’n Lys van groepe wat op die eerste proses toegepas word wat in elke houer loop, benewens die houer se primêre GID. | |

sysctls
Sysctl array
Meer inligting oor sysctls

| Sysctls hou ’n lys van namespaced sysctls wat vir die pod gebruik word. Pods met nie-ondersteunde sysctls (deur die houer runtime) mag misluk om te begin. | |

windowsOptions
WindowsSecurityContextOptions

| Die Windows spesifieke instellings wat op alle houers toegepas word. As nie gespesifiseer nie, sal die opsies binne ’n houer se SecurityContext gebruik word. |

SecurityContext

Uit die dokumentasie:

Hierdie konteks word binne die houer definisies ingestel. Vanuit ’n defensiewe sekuriteits oogpunt moet jy oorweeg:

  • allowPrivilegeEscalation as Valse
  • Moet nie sensitiewe vermoëns byvoeg nie (en verwyder die wat jy nie nodig het nie)
  • privileged as Valse
  • Indien moontlik, stel readOnlyFilesystem as Waar
  • Stel runAsNonRoot op Waar en stel ’n runAsUser in
  • Indien moontlik, oorweeg om toestemmings te beperk deur seLinuxOptions en seccompProfile aan te dui
  • Moet NIE privilege groep toegang gee via runAsGroup.

Let daarop dat die eienskappe wat in both SecurityContext and PodSecurityContext ingestel is, die waarde wat in SecurityContext gespesifiseer is, prioriteit het.

allowPrivilegeEscalation
boolean

AllowPrivilegeEscalation beheer of ’n proses meer bevoegdhede kan verkry as sy ouer proses. Hierdie bool beheer direk of die no_new_privs-vlag op die houer proses ingestel sal word. AllowPrivilegeEscalation is altyd waar wanneer die houer as Privileged gedraai word of CAP_SYS_ADMIN het

capabilities
Capabilities
Meer inligting oor Capabilities

Die vermoëns om by te voeg/verwyder wanneer houers loop. Standaard na die standaard stel van vermoëns.

privileged
boolean

Loop houer in bevoorregte modus. Prosesse in bevoorregte houers is in wese gelyk aan root op die gasheer. Standaard is vals.

procMount
string

procMount dui die tipe proc mount aan wat vir die houers gebruik moet word. Die standaard is DefaultProcMount wat die houer runtime standaarde vir leesbare paaie en gemaskeerde paaie gebruik.

readOnlyRootFilesystem
boolean

Of hierdie houer ’n leesbare wortel lêerstelsel het. Standaard is vals.

runAsGroup
integer

Die GID om die ingangspunt van die houer proses te laat loop. Gebruik runtime standaard as dit nie ingestel is nie.

runAsNonRoot
boolean

Dui aan dat die houer moet loop as ’n nie-root gebruiker. As waar, sal die Kubelet die beeld tydens uitvoering valideer om te verseker dat dit nie as UID 0 (root) loop nie en sal dit misluk om die houer te begin as dit wel doen.

runAsUser
integer

Die UID om die ingangspunt van die houer proses te laat loop. Standaard na die gebruiker gespesifiseer in beeld metadata as dit nie gespesifiseer is nie.

seLinuxOptions
SELinuxOptions
Meer inligting oor seLinux

Die SELinux konteks wat op die houer toegepas moet word. As nie gespesifiseer nie, sal die houer runtime ’n ewekansige SELinux konteks vir elke houer toewys.

seccompProfile
SeccompProfile

Die seccomp opsies wat deur hierdie houer gebruik moet word.

windowsOptions
WindowsSecurityContextOptions

Die Windows spesifieke instellings wat op alle houers toegepas word.

References

Tip

Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Leer & oefen Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks