Acerca da análise da postura de segurança do Kubernetes

Esta página descreve a análise da postura de segurança do Kubernetes, uma funcionalidade do painel de controlo da postura de segurança que ajuda a identificar e resolver proativamente vulnerabilidades de segurança nos seus clusters do Google Kubernetes Engine (GKE). Esta página explica a auditoria da configuração da carga de trabalho e a apresentação do boletim de segurança para encontrar e mitigar riscos de segurança no GKE.

Esta página destina-se a especialistas em segurança que monitorizam clusters para detetar problemas de segurança. Para saber mais sobre as funções comuns e as tarefas de exemplo a que fazemos referência no Trusted Cloud by S3NS conteúdo, consulte Funções e tarefas comuns de utilizadores do GKE.

Para ativar e usar a análise da postura de segurança do Kubernetes, consulte o artigo Audite automaticamente as cargas de trabalho para detetar problemas de configuração

A análise da postura de segurança do Kubernetes oferece as seguintes funcionalidades:

Preços

Oferecido sem custos adicionais no GKE.

As entradas adicionadas ao Cloud Logging estão sujeitas aos preços do Cloud Logging.

Acerca da auditoria da configuração da carga de trabalho

As cargas de trabalho que implementa no GKE devem ter uma configuração reforçada que limite a respetiva superfície de ataque. Verificar cargas de trabalho em vários clusters quanto a problemas de configuração pode ser difícil de fazer manualmente em grande escala. Pode usar o painel de controlo da postura de segurança para auditar automaticamente a configuração de todas as suas cargas de trabalho em execução em vários clusters e devolver resultados acionáveis e com classificação, bem como recomendações baseadas em opiniões para melhorar a sua postura de segurança.

A auditoria da configuração da carga de trabalho verifica cada carga de trabalho implementada em relação a um subconjunto de políticas nas normas de segurança de pods. A auditoria da configuração da carga de trabalho ocorre na infraestrutura da Google e não usa recursos de computação nos seus nós.

Vantagens da auditoria da configuração da carga de trabalho

  • Automatize a deteção de problemas de configuração conhecidos em todas as cargas de trabalho.
  • Receba recomendações acionáveis para melhorar a postura de segurança.
  • Use a Trusted Cloud consola para ter uma vista geral dos problemas de configuração.
  • Use o registo para obter um rasto auditável de preocupações para uma melhor criação de relatórios e observabilidade.

Como funciona a auditoria da configuração da carga de trabalho

Para cada carga de trabalho implementada elegível, o GKE analisa continuamente a especificação da carga de trabalho e compara os campos e os valores com os controlos definidos na política de segurança subjacente. Por exemplo, um Pod com spec.containers.securityContext.privileged=true viola a norma de segurança do Pod de base e um Pod com o campo spec.securityContext.runAsNonRoot definido como false viola a norma restrita. Para ver uma lista das políticas de segurança que o GKE verifica, consulte o artigo O que é que a auditoria da configuração da carga de trabalho verifica?.

Após a análise e a deteção de preocupações, o GKE classifica a gravidade dos problemas de configuração detetados com base nas medidas de reforço da segurança incorporadas. O GKE atribui uma classificação de gravidade que pode informar a velocidade com que responde à preocupação. A Trusted Cloud consola apresenta os resultados e as ações recomendadas que pode realizar para resolver os problemas. O GKE também adiciona entradas ao Cloud Logging para rastreio e auditoria.

O que é que a auditoria da configuração da carga de trabalho verifica?

Preocupação Campos Valores permitidos Gravidade

Espaços de nomes de anfitriões

Os pods que partilham espaços de nomes de anfitriões permitem que os processos de pods comuniquem com processos de anfitriões e recolham informações de anfitriões, o que pode levar a uma fuga de contentores.

  • spec.hostNetwork
  • spec.hostIPC
  • spec.hostPID
  • Indefinido ou nulo
  • false
Alto

Contentores privilegiados

Os contentores privilegiados permitem um acesso quase ilimitado ao anfitrião. Partilham namespaces com o anfitrião e não têm grupo de controlo, seccomp, AppArmor e restrições de capacidade.

  • spec.containers[*].securityContext.privileged
  • spec.initContainers[*].securityContext.privileged
  • spec.ephemeralContainers[*].securityContext.privileged
  • Indefinido ou nulo
  • false
Alto

Acesso à porta do anfitrião

A exposição de uma porta de anfitrião a um contentor permite potencialmente que o contentor intercete o tráfego de rede para um serviço de anfitrião através dessa porta ou ignore as regras de controlo de acesso à rede, como as regras numa NetworkPolicy.

  • spec.containers[*].ports[*].hostPort
  • spec.initContainers[*].ports[*].hostPort
  • spec.ephemeralContainers[*].ports[*].hostPort
  • Indefinido ou nulo
  • 0
Alto

Capacidades não predefinidas

Um contentor tem capacidades atribuídas que podem permitir uma fuga do contentor.

  • spec.containers[*].securityContext.capabilities.add
  • spec.initContainers[*].securityContext.capabilities.add
  • spec.ephemeralContainers[*].securityContext.capabilities.add
  • Indefinido ou nulo
  • AUDIT_WRITE
  • CHOWN
  • DAC_OVERRIDE
  • FOWNER
  • FSETID
  • KILL
  • MKNOD
  • NET_BIND_SERVICE
  • SETFCAP
  • SETGID
  • SETPCAP
  • SETUID
  • SYS_CHROOT
Médio

Montar volumes de caminhos de anfitriões

Os volumes hostPath montam ficheiros ou diretórios a partir do anfitrião. Estes volumes apresentam riscos de segurança que podem levar à fuga do contentor.

spec.volumes[*].hostPath Indefinido ou nulo Médio

Máscara /proc não predefinida

O tipo de montagem /proc predefinido oculta determinados caminhos em /proc para evitar a exposição de caminhos que possam levar à fuga de informações ou à saída do contentor. A utilização de um tipo não predefinido aumenta estes riscos.

  • spec.containers[*].securityContext.procMount
  • spec.initContainers[*].securityContext.procMount
  • spec.ephemeralContainers[*].securityContext.procMount
  • Indefinido ou nulo
  • Predefinição
Médio

Unsafe sysctls mask

Um Pod pode ser configurado para permitir a modificação de parâmetros do kernel não seguros através do sistema de ficheiros virtual /proc/sys. Os parâmetros não seguros não suportam a utilização de espaços de nomes, não isolam corretamente o respetivo efeito entre os pods, podem prejudicar o estado de funcionamento do nó ou podem permitir que o pod obtenha recursos além dos respetivos limites.

spec.securityContext.sysctls[*].name
  • Indefinido ou nulo
  • kernel.shm_rmid_forced
  • net.ipv4.ip_local_port_range
  • net.ipv4.ip_unprivileged_port_start
  • net.ipv4.tcp_syncookies
  • net.ipv4.ping_group_range
Médio

Execução como não raiz

Pode permitir explicitamente que um contentor seja executado como o utilizador root se a diretiva runAsUser ou USER na imagem especificar o utilizador root. A falta de controlos de segurança preventivos quando executado como utilizador root aumenta o risco de fuga do contentor.

  • spec.securityContext.runAsNonRoot
  • spec.containers[*].securityContext.runAsNonRoot
  • spec.initContainers[*].securityContext.runAsNonRoot
  • spec.ephemeralContainers[*].securityContext.runAsNonRoot
true Médio

Escalamento de privilégios

Um contentor pode ser configurado explicitamente para permitir a escalada de privilégios na execução. Isto permite que um processo criado no contentor através da execução de um ficheiro executável set-user-id, set-group-id ou de capacidade de ficheiro obtenha os privilégios especificados pelo ficheiro executável. A falta de controlo de segurança preventivo aumenta o risco de fuga do contentor.

  • spec.containers[*].securityContext.allowPrivilegeEscalation
  • spec.initContainers[*].securityContext.allowPrivilegeEscalation
  • spec.ephemeralContainers[*].securityContext.allowPrivilegeEscalation
false Médio

Perfil do AppArmor não restrito

Um contentor pode ser configurado explicitamente para não ter restrições do AppArmor. Isto garante que não é aplicado nenhum perfil do AppArmor ao contentor e, por isso, não está sujeito a restrições. O controlo de segurança preventivo desativado aumenta o risco de fuga do contentor.

metadata.annotations["container.apparmor.security.beta.kubernetes.io/*"] false Baixo

Além disso, o GKE verifica se existem RoleBindings ou ClusterRoleBindings do RBAC que referenciam um dos seguintes utilizadores ou grupos:

  • system:anonymous
  • system:authenticated
  • system:unauthenticated

Se existirem associações de RBAC que referenciem estes utilizadores ou grupos, é apresentada uma descoberta denominada Eficazmente, os utilizadores anónimos têm acesso ao cluster do GKE com uma gravidade de Média no painel de controlo da postura de segurança. Estes utilizadores e grupos são efetivamente anónimos e não devem ser usados em RoleBindings nem ClusterRoleBindings. Para mais informações, consulte o artigo Evite funções e grupos predefinidos.

Acerca da apresentação do boletim de segurança

Quando é descoberta uma vulnerabilidade no GKE, aplicamos uma correção à vulnerabilidade e publicamos um boletim de segurança para a vulnerabilidade. Para informações sobre identificação, aplicação de patches e cronogramas, consulte Aplicação de patches de segurança do GKE.

O painel de controlo da postura de segurança apresenta boletins de segurança que afetam os seus clusters, cargas de trabalho e conjuntos de nós do modo padrão. Esta funcionalidade faz parte da capacidade de postura de segurança do Kubernetes do painel de controlo da postura de segurança e é ativada automaticamente quando cria um cluster do Autopilot ou Standard. Para ativar a análise da postura de segurança do Kubernetes, siga as instruções em Audite automaticamente as cargas de trabalho para detetar problemas de configuração.

A Trusted Cloud consola apresenta detalhes como clusters afetados, versões e versões de patch recomendadas para atualizações de forma a mitigar a vulnerabilidade. Só vê boletins para os quais está disponível uma mitigação na região ou na zona do seu cluster. Trusted Cloud

Para ver boletins de clusters nos quais se inscreveu na análise da postura de segurança do Kubernetes, aceda ao painel de controlo da postura de segurança:

Aceda à postura de segurança

Todos os boletins disponíveis que afetam o seu ambiente aparecem na secção Boletins de segurança.

O que se segue?