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
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
Ovo definiše ponašanje promene vlasništva i dozvola volumena pre nego što bude izložen unutar Pod-a.
GID za pokretanje ulazne tačke procesa kontejnera. Koristi podrazumevanu vrednost vremena izvođenja ako nije postavljeno.
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.
UID za pokretanje ulazne tačke procesa kontejnera. Podrazumevano se postavlja na korisnika navedenog u metapodacima slike ako nije navedeno.
SELinux kontekst koji će se primeniti na sve kontejnere. Ako nije navedeno, runtime kontejnera će dodeliti nasumičan SELinux kontekst za svaki kontejner.
seccomp opcije koje koriste kontejneri u ovom podu.
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 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
kapaciteti koje treba dodati/ukloniti prilikom pokretanja kontejnera. Podrazumevano se koristi podrazumevani skup kapaciteta.
Pokrenite kontejner u privilegovanom režimu. Procesi u privilegovanim kontejnerima su suštinski ekvivalentni root-u na hostu. Podrazumevano je false.
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.
Da li ovaj kontejner ima samo-za-čitanje korenski sistem datoteka. Podrazumevano je false.
GID za pokretanje ulazne tačke procesa kontejnera. Koristi podrazumevanu vrednost vremena izvođenja ako nije postavljeno.
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.
UID za pokretanje ulazne tačke procesa kontejnera. Podrazumevano se postavlja na korisnika navedenog u metapodacima slike ako nije navedeno.
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.
integer
string
integer
boolean
integer
Više informacija o seLinux
Više informacija o Seccomp
integer array
niz Više informacija o
boolean
Više informacija o Capabilities
boolean
string
boolean
integer
boolean
integer
Više informacija o seLinux
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)