Security
medium

Security Question #019e3a4f

Question Statement
Security
#kubernetes
#security
#privilege-escalation
#container-security
Medium

Qual das seguintes opções é um hábito de segurança recomendado no Kubernetes?

A

Executar os containers como o usuário com ID de grupo 0 (root) e qualquer ID de usuário.

B

Desabilitar a escalação de privilégios dentro de um container como opção padrão.

Correct
C

Executar os containers como o usuário com ID de usuário 0 (root) e qualquer ID de grupo.

D

Permitir a escalação de privilégios dentro de um container como opção padrão.

Official Explanation / Community Explanations

Resumo

Desabilitar a escalação de privilégios dentro de um container é um hábito de segurança recomendado no Kubernetes. Essa configuração impede que processos dentro do container obtenham mais privilégios do que seu processo pai, o que é uma defesa fundamental contra ataques de fuga do container.

Como Funciona

No Kubernetes, o campo SecurityContext na especificação de um Pod ou container permite que administradores controlem configurações relacionadas à segurança. A flag AllowPrivilegeEscalation, quando definida como false, garante que nenhum processo no container possa ganhar privilégios adicionais (por exemplo, via binários setuid ou capabilities) além daqueles inicialmente concedidos. Isso é aplicado pelo kernel Linux através da flag no_new_privs, que bloqueia operações como setuid ou setgid que elevariam privilégios.

Por que a Resposta Correta está Correta

Definir allowPrivilegeEscalation: false é uma prática recomendada de segurança porque limita o impacto de um container comprometido. Mesmo que um invasor obtenha acesso ao container, ele não pode escalar para root ou obter capabilities adicionais. Isso é recomendado pela documentação do Kubernetes e por benchmarks de segurança como o CIS Kubernetes Benchmark.

Por que as Respostas Incorretas estão Erradas

  • Executar containers como root (ID de usuário 0): Isso é inseguro porque o root dentro de um container tem amplas capabilities e pode potencialmente escapar para o host se não for devidamente restrito. As práticas recomendadas de segurança do Kubernetes sugerem executar containers com um usuário não root.
  • Permitir escalação de privilégios como padrão: Isso é perigoso porque permite que processos ganhem mais privilégios, aumentando o risco de fuga do container. O padrão no Kubernetes é permitir a escalação de privilégios, mas deve ser explicitamente desabilitado por segurança.
  • Executar containers com ID de grupo 0 (root): Similar a executar como usuário root, usar o grupo root pode conceder privilégios desnecessários. O princípio do menor privilégio determina o uso de um grupo não root.

Conclusão Principal

Sempre desabilite a escalação de privilégios (allowPrivilegeEscalation: false) nos contextos de segurança do seu Pod e evite executar containers como root ou com associação ao grupo root. Use um usuário e grupo não root, e remova todas as capabilities desnecessárias para uma implantação Kubernetes mais segura.