Kubernetes SecurityContext(s)
Last updated
Last updated
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
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
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 eienaar GID sal die FSGroup wees 2. Die setgid bit is ingestel (nuwe lêers wat in die volume geskep word, sal aan FSGroup behoort) 3. Die toestemmingsbits is 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 te 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 nie ingestel 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 nie gespesifiseer 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 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.
Die Windows spesifieke instellings wat op alle houers toegepas word. As nie gespesifiseer nie, sal die opsies binne 'n houer se SecurityContext gebruik word.
Hierdie konteks word binne die houers definisies ingestel. Vanuit 'n defensiewe sekuriteits oogpunt moet jy oorweeg:
allowPrivilegeEscalation om Vals te wees
Moet nie sensitiewe vermoëns byvoeg nie (en verwyder die wat jy nie nodig het nie)
privileged om Vals te wees
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 voorregte 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 of CAP_SYS_ADMIN loop.
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 essensieel 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 nie ingestel 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 nie gespesifiseer 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.
Die seccomp opsies wat deur hierdie houer gebruik moet word.
Die Windows spesifieke instellings wat op alle houers toegepas word.
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)