Kubernetes SecurityContext(s)
Last updated
Last updated
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)
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 privilegije grupi putem runAsGroup i supplementaryGroups
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
Ovo definiše ponašanje promene vlasništva i dozvola volumena pre nego što bude izložen unutar Pod-a.
runAsGroup integer
GID za pokretanje ulazne tačke procesa kontejnera. Koristi podrazumevanu vrednost vremena izvođenja ako nije postavljeno.
runAsNonRoot boolean
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 integer
UID za pokretanje ulazne tačke procesa kontejnera. Podrazumevano se postavlja na korisnika navedenog u metapodacima slike ako nije navedeno.
seLinuxOptions SELinuxOptions Više informacija o seLinux
SELinux kontekst koji će se primeniti na sve kontejnere. Ako nije navedeno, runtime kontejnera će dodeliti nasumičan SELinux kontekst za svaki kontejner.
seccompProfile SeccompProfile Više informacija o Seccomp
seccomp opcije koje koriste kontejneri u ovom podu.
supplementalGroups integer array
Lista grupa primenjenih na prvi proces pokrenut u svakom kontejneru, pored primarnog GID-a kontejnera.
Sysctls sadrži listu imenskih sysctls korišćenih za pod. Podovi sa nepodržanim sysctls (od strane runtime-a kontejnera) mogu propasti prilikom pokretanja.
Windows specifične postavke primenjene na sve kontejnere. Ako nije navedeno, koristiće se opcije unutar SecurityContext-a kontejnera.
Ovaj kontekst se postavlja unutar definicija kontejnera. Sa stanovišta odbrane, trebali biste razmotriti:
allowPrivilegeEscalation na False
Ne dodavati osetljive kapacitete (i ukloniti one koje ne trebate)
privileged na 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 privilegije grupi putem runAsGroup.
Napomena: Atributi postavljeni u SecurityContext i PodSecurityContext, vrednost navedena u SecurityContext ima prioritet.
allowPrivilegeEscalation boolean
AllowPrivilegeEscalation kontroliše da li proces može dobiti više privilegija od svog roditeljskog procesa. Ova bool direktno kontroliše da li će no_new_privs zastavica biti postavljena na proces kontejnera. AllowPrivilegeEscalation je uvek tačno kada se kontejner pokreće kao Privileged ili ima CAP_SYS_ADMIN
capabilities Capabilities Više informacija o Capabilities
kapaciteti koje treba dodati/ukloniti prilikom pokretanja kontejnera. Podrazumevano se koristi podrazumevani skup kapaciteta.
privileged boolean
Pokrenite kontejner u privilegovanom režimu. Procesi u privilegovanim kontejnerima su suštinski ekvivalentni root-u na hostu. Podrazumevano je false.
procMount string
procMount označava tip proc mount-a koji se koristi za kontejnere. Podrazumevano je DefaultProcMount koji koristi podrazumevane vrednosti runtime-a za samo-za-čitanje putanje i maskirane putanje.
readOnlyRootFilesystem boolean
Da li ovaj kontejner ima samo-za-čitanje korenski sistem datoteka. Podrazumevano je false.
runAsGroup integer
GID za pokretanje ulazne tačke procesa kontejnera. Koristi podrazumevanu vrednost vremena izvođenja ako nije postavljeno.
runAsNonRoot boolean
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 integer
UID za pokretanje ulazne tačke procesa kontejnera. Podrazumevano se postavlja na korisnika navedenog u metapodacima slike ako nije navedeno.
seLinuxOptions SELinuxOptions Više informacija o seLinux
SELinux kontekst koji će se primeniti na kontejner. Ako nije navedeno, runtime kontejnera će dodeliti nasumičan SELinux kontekst za svaki kontejner.
seccomp opcije koje koristi ovaj kontejner.
Windows specifične postavke primenjene na sve kontejnere.
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)