Kubernetes SecurityContext(s)

Tip

Apprenez & pratiquez AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Soutenez HackTricks

PodSecurityContext

D’aprùs la documentation :

Lors de la spĂ©cification du contexte de sĂ©curitĂ© d’un Pod, vous pouvez utiliser plusieurs attributs. D’un point de vue de sĂ©curitĂ© dĂ©fensive, vous devriez considĂ©rer :

  • Avoir runASNonRoot comme Vrai
  • Configurer runAsUser
  • Si possible, envisager de limiter les permissions en indiquant seLinuxOptions et seccompProfile
  • Ne PAS donner d’accĂšs au groupe de privilĂšges via runAsGroup et supplementaryGroups

| ParamĂštre | Description | |

fsGroup
integer

|

Un groupe supplĂ©mentaire spĂ©cial qui s’applique Ă  tous les conteneurs dans un pod. Certains types de volumes permettent au Kubelet de changer la propriĂ©tĂ© de ce volume pour qu’il soit possĂ©dĂ© par le pod :
1. Le GID propriétaire sera le FSGroup
2. Le bit setgid est défini (les nouveaux fichiers créés dans le volume seront possédés par FSGroup)
3. Les bits de permission sont OR’d avec rw-rw–– Si non dĂ©fini, le Kubelet ne modifiera pas la propriĂ©tĂ© et les permissions de tout volume

|

|

fsGroupChangePolicy
string

| Cela dĂ©finit le comportement de changement de propriĂ©tĂ© et de permission du volume avant d’ĂȘtre exposĂ© Ă  l’intĂ©rieur du Pod. | |

runAsGroup
integer

| Le GID pour exĂ©cuter le point d’entrĂ©e du processus du conteneur. Utilise la valeur par dĂ©faut d’exĂ©cution si non dĂ©fini. | |

runAsNonRoot
boolean

| Indique que le conteneur doit s’exĂ©cuter en tant qu’utilisateur non-root. Si vrai, le Kubelet validera l’image Ă  l’exĂ©cution pour s’assurer qu’elle ne s’exĂ©cute pas en tant que UID 0 (root) et Ă©chouera Ă  dĂ©marrer le conteneur si c’est le cas. | |

runAsUser
integer

| Le UID pour exĂ©cuter le point d’entrĂ©e du processus du conteneur. Par dĂ©faut, il s’agit de l’utilisateur spĂ©cifiĂ© dans les mĂ©tadonnĂ©es de l’image si non spĂ©cifiĂ©. | |

seLinuxOptions
SELinuxOptions
Plus d’infos sur seLinux

| Le contexte SELinux à appliquer à tous les conteneurs. Si non spécifié, le runtime du conteneur allouera un contexte SELinux aléatoire pour chaque conteneur. | |

seccompProfile
SeccompProfile
Plus d’infos sur Seccomp

| Les options seccomp Ă  utiliser par les conteneurs dans ce pod. | |

supplementalGroups
integer array

| Une liste de groupes appliqués au premier processus exécuté dans chaque conteneur, en plus du GID principal du conteneur. | |

sysctls
Sysctl array
Plus d’infos sur sysctls

| Les sysctls contiennent une liste de sysctls nommés utilisés pour le pod. Les pods avec des sysctls non pris en charge (par le runtime du conteneur) pourraient échouer à se lancer. | |

windowsOptions
WindowsSecurityContextOptions

| Les paramĂštres spĂ©cifiques Ă  Windows appliquĂ©s Ă  tous les conteneurs. Si non spĂ©cifiĂ©, les options dans le SecurityContext d’un conteneur seront utilisĂ©es. |

SecurityContext

D’aprùs la documentation :

Ce contexte est dĂ©fini Ă  l’intĂ©rieur des dĂ©finitions de conteneurs. D’un point de vue de sĂ©curitĂ© dĂ©fensive, vous devriez considĂ©rer :

  • allowPrivilegeEscalation Ă  Faux
  • Ne pas ajouter de capabilitĂ©s sensibles (et supprimer celles dont vous n’avez pas besoin)
  • privileged Ă  Faux
  • Si possible, dĂ©finir readOnlyFilesystem comme Vrai
  • DĂ©finir runAsNonRoot Ă  Vrai et dĂ©finir un runAsUser
  • Si possible, envisager de limiter les permissions en indiquant seLinuxOptions et seccompProfile
  • Ne PAS donner d’accĂšs au groupe de privilĂšges via runAsGroup.

Notez que les attributs définis dans SecurityContext et PodSecurityContext, la valeur spécifiée dans SecurityContext prend précédence.

allowPrivilegeEscalation
boolean

AllowPrivilegeEscalation contrÎle si un processus peut gagner plus de privilÚges que son processus parent. Ce booléen contrÎle directement si le drapeau no_new_privs sera défini sur le processus du conteneur. AllowPrivilegeEscalation est toujours vrai lorsque le conteneur est exécuté en tant que Privileged ou a CAP_SYS_ADMIN

capabilities
Capabilities
Plus d’infos sur Capabilities

Les capabilitĂ©s Ă  ajouter/retirer lors de l’exĂ©cution des conteneurs. Par dĂ©faut, il s’agit de l’ensemble par dĂ©faut de capacitĂ©s.

privileged
boolean

ExĂ©cuter le conteneur en mode privilĂ©giĂ©. Les processus dans les conteneurs privilĂ©giĂ©s sont essentiellement Ă©quivalents Ă  root sur l’hĂŽte. Par dĂ©faut, c’est faux.

procMount
string

procMount désigne le type de montage proc à utiliser pour les conteneurs. La valeur par défaut est DefaultProcMount qui utilise les valeurs par défaut du runtime du conteneur pour les chemins en lecture seule et les chemins masqués.

readOnlyRootFilesystem
boolean

Indique si ce conteneur a un systÚme de fichiers racine en lecture seule. La valeur par défaut est fausse.

runAsGroup
integer

Le GID pour exĂ©cuter le point d’entrĂ©e du processus du conteneur. Utilise la valeur par dĂ©faut d’exĂ©cution si non dĂ©fini.

runAsNonRoot
boolean

Indique que le conteneur doit s’exĂ©cuter en tant qu’utilisateur non-root. Si vrai, le Kubelet validera l’image Ă  l’exĂ©cution pour s’assurer qu’elle ne s’exĂ©cute pas en tant que UID 0 (root) et Ă©chouera Ă  dĂ©marrer le conteneur si c’est le cas.

runAsUser
integer

Le UID pour exĂ©cuter le point d’entrĂ©e du processus du conteneur. Par dĂ©faut, il s’agit de l’utilisateur spĂ©cifiĂ© dans les mĂ©tadonnĂ©es de l’image si non spĂ©cifiĂ©.

seLinuxOptions
SELinuxOptions
Plus d’infos sur seLinux

Le contexte SELinux à appliquer au conteneur. Si non spécifié, le runtime du conteneur allouera un contexte SELinux aléatoire pour chaque conteneur.

seccompProfile
SeccompProfile

Les options seccomp Ă  utiliser par ce conteneur.

windowsOptions
WindowsSecurityContextOptions

Les paramÚtres spécifiques à Windows appliqués à tous les conteneurs.

Références

Tip

Apprenez & pratiquez AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Soutenez HackTricks