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
- Consultez les subscription plans!
- Rejoignez le đŹ Discord group ou le telegram group ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des hacking tricks en soumettant des PRs aux HackTricks et HackTricks Cloud github repos.
PodSecurityContext
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
runAsGroup
integer
runAsNonRoot
boolean
runAsUser
integer
seLinuxOptions
SELinuxOptions
Plus dâinfos sur seLinux
seccompProfile
SeccompProfile
Plus dâinfos sur Seccomp
supplementalGroups
integer array
sysctls
Sysctl array
Plus dâinfos sur sysctls
windowsOptions
WindowsSecurityContextOptions
SecurityContext
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 | 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 | 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 | 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 | 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 | Indique si ce conteneur a un systÚme de fichiers racine en lecture seule. La valeur par défaut est fausse. |
|
runAsGroup | 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 | 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 | 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 | Le contexte SELinux à appliquer au conteneur. Si non spécifié, le runtime du conteneur allouera un contexte SELinux aléatoire pour chaque conteneur. |
| Les options seccomp Ă utiliser par ce conteneur. | |
| Les paramÚtres spécifiques à Windows appliqués à tous les conteneurs. |
Références
- 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
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
- Consultez les subscription plans!
- Rejoignez le đŹ Discord group ou le telegram group ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des hacking tricks en soumettant des PRs aux HackTricks et HackTricks Cloud github repos.
HackTricks Cloud

