Kubernetes SecurityContext(s)
Reading time: 8 minutes
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
PodSecurityContext
Kada definišete bezbednosni kontekst Pod-a, možete koristiti nekoliko atributa. Sa stanovišta odbrane, trebali biste razmotriti:
- Da runASNonRoot bude True
- Da konfigurišete runAsUser
- Ako je moguće, razmotrite ograničavanje dozvola označavanjem seLinuxOptions i seccompProfile
- NE dajte privilegovan grupni pristup putem runAsGroup i supplementaryGroups
| Parametar | Opis | |
fsGroup
integer
Specijalna dopunska grupa koja se primenjuje na sve kontejnere u podu. Neki tipovi volumena omogućavaju Kubelet-u da promeni vlasništvo tog volumena da bude u vlasništvu poda:
1. Vlasnički GID će biti FSGroup
2. setgid bit je postavljen (nove datoteke kreirane u volumenu će biti u vlasništvu FSGroup)
3. Dozvola je OR'd sa rw-rw---- Ako nije postavljeno, Kubelet neće menjati vlasništvo i dozvole bilo kog volumena
|
fsGroupChangePolicy
string
runAsGroup
integer
runAsNonRoot
boolean
runAsUser
integer
seLinuxOptions
SELinuxOptions
Više informacija o seLinux
seccompProfile
SeccompProfile
Više informacija o Seccomp
supplementalGroups
integer array
sysctls
Sysctl array
Više informacija o sysctls
windowsOptions
WindowsSecurityContextOptions
SecurityContext
Ovaj kontekst se postavlja unutar definicija kontejnera. Sa stanovišta odbrane, trebali biste razmotriti:
- allowPrivilegeEscalation da bude False
- Ne dodavati osetljive kapacitete (i ukloniti one koje ne trebate)
- privileged da bude False
- Ako je moguće, postavite readOnlyFilesystem na True
- Postavite runAsNonRoot na True i postavite runAsUser
- Ako je moguće, razmotrite ograničavanje dozvola označavanjem seLinuxOptions i seccompProfile
- NE dajte privilegovan grupni pristup putem runAsGroup.
Napomena: Atributi postavljeni u SecurityContext i PodSecurityContext, vrednost navedena u SecurityContext ima prioritet.
allowPrivilegeEscalation | AllowPrivilegeEscalation kontroliše da li proces može dobiti više privilegija od svog roditeljskog procesa. Ova bool direktno kontroliše da li će se postaviti no_new_privs flag na procesu kontejnera. AllowPrivilegeEscalation je uvek tačno kada se kontejner pokreće kao Privileged ili ima CAP_SYS_ADMIN |
---|---|
capabilities | Kapaciteti za dodavanje/uklanjanje prilikom pokretanja kontejnera. Podrazumevano se koristi podrazumevani skup kapaciteta. |
privileged | Pokreni kontejner u privilegovanom režimu. Procesi u privilegovanim kontejnerima su suštinski ekvivalentni root-u na hostu. Podrazumevano je false. |
procMount | procMount označava tip proc mount-a koji će se koristiti za kontejnere. Podrazumevano je DefaultProcMount koji koristi podrazumevane vrednosti kontejnerskog runtime-a za samo-za-čitanje i maskirane putanje. |
readOnlyRootFilesystem | Da li ovaj kontejner ima samo-za-čitanje korenski sistem datoteka. Podrazumevano je false. |
runAsGroup | GID za pokretanje ulazne tačke procesa kontejnera. Koristi podrazumevanu vrednost vremena izvođenja ako nije postavljeno. |
runAsNonRoot | Ukazuje da kontejner mora da se pokrene kao korisnik koji nije root. Ako je tačno, Kubelet će validirati sliku u vreme izvođenja kako bi osigurao da se ne pokreće kao UID 0 (root) i neće moći da pokrene kontejner ako to učini. |
runAsUser | UID za pokretanje ulazne tačke procesa kontejnera. Podrazumevano se postavlja na korisnika navedenog u metapodacima slike ako nije navedeno. |
seLinuxOptions | SELinux kontekst koji će se primeniti na kontejner. Ako nije navedeno, kontejnerski runtime će dodeliti nasumičan SELinux kontekst za svaki kontejner. |
seccomp opcije koje koristi ovaj kontejner. | |
Windows specifične postavke primenjene na sve kontejnere. |
References
- https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#podsecuritycontext-v1-core
- https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.