Kubernetes SecurityContext(s)

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

PodSecurityContext

Iz dokumentacije:

Prilikom specificiranja security konteksta za Pod, možete koristiti nekoliko atributa. Sa defanzivne tačke gledišta bezbednosti, trebali biste razmotriti:

  • Da imate runASNonRoot kao True

  • Da konfigurišete runAsUser

  • Ako je moguće, razmotrite ograničavanje dozvola koje ukazuju na seLinuxOptions i seccompProfile

  • NE dajte pristup privilegijama grupi putem runAsGroup i supplementaryGroups

fsGroup integer

Specijalna dodatna grupa koja se odnosi na sve kontejnere u pod-u. Neke vrste volumena omogućavaju Kubelet-u da promeni vlasništvo tog volumena tako da bude vlasništvo pod-a: 1. GID vlasnika će biti FSGroup 2. Bit setgid je postavljen (novi fajlovi kreirani u volumenu će biti vlasništvo FSGroup) 3. Dozvole bitova se OR-uju sa rw-rw---- Ako nije postavljeno, Kubelet neće menjati vlasništvo i dozvole nijednog volumena

Ovo definiše ponašanje promene vlasništva i dozvola volumena pre nego što bude izloženo unutar Pod-a.

runAsGroup integer

GID za pokretanje entrypoint-a procesa kontejnera. Koristi podrazumevane vrednosti ako nije postavljeno. Može se takođe postaviti u SecurityContext-u.

runAsNonRoot boolean

Označava da kontejner mora raditi kao korisnik koji nije root. Ako je tačno, Kubelet će proveriti sliku pri izvršavanju da bi se osigurao da ne radi kao UID 0 (root) i neće pokrenuti kontejner ako to radi.

runAsUser integer

UID za pokretanje entrypoint-a procesa kontejnera. Podrazumevano je korisnik koji je naveden u metapodacima slike ako nije navedeno.

seLinuxOptions SELinuxOptions Više informacija o seLinux-u

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-u

Seccomp opcije koje će koristiti kontejneri u ovom pod-u.

supplementalGroups integer array

Lista grupa koje se primenjuju na prvi proces pokrenut u svakom kontejneru, pored primarnog GID-a kontejnera.

sysctls Sysctl niz Više informacija o sysctls

Sysctl sadrži listu namespaced sysctl-ova koji se koriste za pod. Podovi sa nepodržanim sysctl-ovima (od strane runtime kontejnera) mogu imati problema pri pokretanju.

Windows specifične postavke koje se primenjuju na sve kontejnere. Ako nije navedeno, opcije unutar SecurityContext-a kontejnera će se koristiti.

## SecurityContext

Iz dokumentacije:

Ovaj kontekst se postavlja unutar definicija kontejnera. Sa aspekta defanzivne sigurnosti, trebali biste razmotriti:

  • allowPrivilegeEscalation postaviti na False

  • Ne dodavati osetljive capabilities (i ukloniti one koje nisu potrebne)

  • privileged postaviti na False

  • Ako je moguće, postaviti readOnlyFilesystem na True

  • Postaviti runAsNonRoot na True i postaviti runAsUser

  • Ako je moguće, razmotriti ograničavanje dozvola putem seLinuxOptions i seccompProfile

  • NE davati pristup privilegovanom grupom putem runAsGroup.

Napomena: Atributi postavljeni u SecurityContext i PodSecurityContext, vrednost specificirana u SecurityContext ima prioritet.

AllowPrivilegeEscalation kontroliše da li proces može dobiti više privilegija od svog roditeljskog procesa. Ova promenljiva direktno kontroliše da li će biti postavljena zastavica no_new_privs 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

Capabilities koje se dodaju/uklanjaju prilikom pokretanja kontejnera. Podrazumevano je skup podrazumevanih Capabilities.

privileged boolean

Pokrenuti kontejner u privilegovanom režimu. Procesi u privilegovanom kontejneru su suštinski ekvivalentni root korisniku na hostu. Podrazumevano je false.

procMount string

procMount označava vrstu proc mounta koja se koristi za kontejnere. Podrazumevano je DefaultProcMount koji koristi podrazumevane vrednosti za putanje samo za čitanje i maskirane putanje.

Da li ovaj kontejner ima samo za čitanje root fajl sistem. Podrazumevano je false.

runAsGroup integer

GID za pokretanje ulazne tačke procesa kontejnera. Koristi podrazumevane vrednosti ako nije postavljeno.

runAsNonRoot boolean

Označava da kontejner mora pokrenuti kao korisnik koji nije root. Ako je tačno, Kubelet će proveriti sliku pri pokretanju kako bi se osiguralo da se ne pokreće kao UID 0 (root) i da neće uspeti da pokrene kontejner ako je tako.

runAsUser integer

UID za pokretanje ulazne tačke procesa kontejnera. Podrazumevano je korisnik specificiran u metapodacima slike ako nije navedeno.

seLinuxOptions SELinuxOptions Više informacija o seLinux

SELinux kontekst koji se primenjuje na kontejner. Ako nije navedeno, kontejner će dobiti nasumičan SELinux kontekst od strane kontejner runtime-a.

Seccomp opcije koje se koriste za ovaj kontejner.

Windows specifična podešavanja koja se primenjuju na sve kontejnere.

Reference

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini da podržite HackTricks:

Last updated