Kubernetes SecurityContext(s)
Reading time: 9 minutes
tip
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao đŹ grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter đŠ @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositĂłrios do github.
PodSecurityContext
Ao especificar o contexto de segurança de um Pod, vocĂȘ pode usar vĂĄrios atributos. Do ponto de vista da segurança defensiva, vocĂȘ deve considerar:
- Ter runASNonRoot como True
- Configurar runAsUser
- Se possĂvel, considere limitar permissĂ”es indicando seLinuxOptions e seccompProfile
- NĂO conceda acesso ao grupo de privilegio via runAsGroup e supplementaryGroups
| Parùmetro | Descrição | |
fsGroup
inteiro
Um grupo suplementar especial que se aplica a todos os contĂȘineres em um pod. Alguns tipos de volume permitem que o Kubelet mude a propriedade desse volume para ser de propriedade do pod:
1. O GID proprietĂĄrio serĂĄ o FSGroup
2. O bit setgid Ă© definido (novos arquivos criados no volume serĂŁo de propriedade do FSGroup)
3. Os bits de permissão são OR'd com rw-rw---- Se não definido, o Kubelet não modificarå a propriedade e permissÔes de nenhum volume
|
fsGroupChangePolicy
string
runAsGroup
inteiro
runAsNonRoot
booleano
runAsUser
inteiro
seLinuxOptions
SELinuxOptions
Mais informaçÔes sobre seLinux
seccompProfile
SeccompProfile
Mais informaçÔes sobre Seccomp
supplementalGroups
array de inteiros
sysctls
Sysctl array
Mais informaçÔes sobre sysctls
windowsOptions
WindowsSecurityContextOptions
SecurityContext
Este contexto Ă© definido dentro das definiçÔes de contĂȘineres. Do ponto de vista da segurança defensiva, vocĂȘ deve considerar:
- allowPrivilegeEscalation como False
- NĂŁo adicione capacidades sensĂveis (e remova as que vocĂȘ nĂŁo precisa)
- privileged como False
- Se possĂvel, defina readOnlyFilesystem como True
- Defina runAsNonRoot como True e defina um runAsUser
- Se possĂvel, considere limitar permissĂ”es indicando seLinuxOptions e seccompProfile
- NĂO conceda acesso ao grupo de privilegio via runAsGroup.
Observe que os atributos definidos em ambos SecurityContext e PodSecurityContext, o valor especificado em SecurityContext tem precedĂȘncia.
allowPrivilegeEscalation | AllowPrivilegeEscalation controla se um processo pode ganhar mais privilĂ©gios do que seu processo pai. Este booleano controla diretamente se a flag no_new_privs serĂĄ definida no processo do contĂȘiner. AllowPrivilegeEscalation Ă© sempre verdadeiro quando o contĂȘiner Ă© executado como Privileged ou tem CAP_SYS_ADMIN |
---|---|
capabilities | As capacidades a serem adicionadas/removidas ao executar contĂȘineres. PadrĂŁo para o conjunto padrĂŁo de capacidades. |
privileged | Executar contĂȘiner em modo privilegiado. Processos em contĂȘineres privilegiados sĂŁo essencialmente equivalentes ao root no host. PadrĂŁo Ă© falso. |
procMount | procMount denota o tipo de montagem proc a ser usado para os contĂȘineres. O padrĂŁo Ă© DefaultProcMount, que usa os padrĂ”es de tempo de execução do contĂȘiner para caminhos somente leitura e caminhos mascarados. |
readOnlyRootFilesystem | Se este contĂȘiner tem um sistema de arquivos raiz somente leitura. O padrĂŁo Ă© falso. |
runAsGroup | O GID para executar o ponto de entrada do processo do contĂȘiner. Usa o padrĂŁo de tempo de execução se nĂŁo definido. |
runAsNonRoot | Indica que o contĂȘiner deve executar como um usuĂĄrio nĂŁo-root. Se verdadeiro, o Kubelet validarĂĄ a imagem em tempo de execução para garantir que nĂŁo seja executada como UID 0 (root) e falharĂĄ ao iniciar o contĂȘiner se o for. |
runAsUser | O UID para executar o ponto de entrada do processo do contĂȘiner. PadrĂŁo para o usuĂĄrio especificado nos metadados da imagem se nĂŁo especificado. |
seLinuxOptions | O contexto SELinux a ser aplicado ao contĂȘiner. Se nĂŁo especificado, o tempo de execução do contĂȘiner alocarĂĄ um contexto SELinux aleatĂłrio para cada contĂȘiner. |
As opçÔes seccomp a serem usadas por este contĂȘiner. | |
As configuraçÔes especĂficas do Windows aplicadas a todos os contĂȘineres. |
ReferĂȘncias
- 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
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao đŹ grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter đŠ @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositĂłrios do github.