Neste documento, descrevemos como usar a verificação de postura de segurança do Kubernetes para encontrar e reduzir os riscos de segurança no GKE. Este documento pressupõe que você conheça o seguinte:
A triagem de postura de segurança do Kubernetes é um recurso do painel de postura de segurança que ajuda a identificar e resolver de forma proativa vulnerabilidades de segurança nos clusters do Google Kubernetes Engine (GKE). A verificação de postura de segurança do Kubernetes oferece os seguintes recursos:
Este documento é destinado a especialistas em segurança que monitoram clusters em busca de problemas de segurança. Para saber mais sobre papéis comuns e tarefas de exemplo que mencionamos no conteúdo doGoogle Cloud , consulte Tarefas e funções de usuário comuns do GKE.
Para saber como ativar e usar a verificação de postura de segurança do Kubernetes, consulte Auditar automaticamente as cargas de trabalho em busca de problemas de configuração.
Preços
Oferecido sem custo adicional no GKE.
As entradas adicionadas ao Cloud Logging estão sujeitas aos preços do Cloud Logging.
Sobre a auditoria de configuração da carga de trabalho
As cargas de trabalho implantadas no GKE precisam ter uma configuração com aumento da proteção que limite a superfície de ataque. A verificação de problemas em cargas de trabalho em clusters de maneira manual e em escala pode ser difícil. É possível usar o painel de postura de segurança para auditar automaticamente a configuração de todas as cargas de trabalho em execução em vários clusters e retornar resultados de ação úteis e pontuados, além de recomendações opinativas para melhorar a postura de segurança.
A auditoria de configuração de carga de trabalho verifica cada carga de trabalho implantada em relação a um subconjunto de políticas nos Padrões de segurança de pods. A auditoria de configuração de carga de trabalho ocorre na infraestrutura do Google e não usa recursos de computação nos nós.
Benefícios da auditoria de configuração da carga de trabalho
- Automatize a detecção de problemas de configuração conhecidos em todas as cargas de trabalho.
- Receba recomendações úteis para melhorar a postura de segurança.
- Use o console do Google Cloud para ter uma visão geral das questões de configuração.
- Use o Logging para ter uma noção de problemas auditável a fim de melhorar a geração de relatórios e a observabilidade.
Como funciona a auditoria de configuração da carga de trabalho
Para cada carga de trabalho implantada e qualificada, o GKE verifica continuamente a
especificação dela e compara os campos e valores aos controles
definidos na política de segurança subjacente. Por exemplo, um pod com
spec.containers.securityContext.privileged=true viola o padrão de
segurança de referência do pod, e um pod com o campo spec.securityContext.runAsNonRoot definido como false viola o padrão restrito. Para ver uma lista das políticas de segurança que o GKE verifica, consulte O que a auditoria de configuração da carga de trabalho verifica?.
Depois de verificar e descobrir problemas, o GKE avalia a gravidade dos problemas de configuração descobertos com base nas medidas integradas de aumento da segurança. O GKE atribui uma classificação de gravidade que pode informar a velocidade com que você responde à preocupação. O console doGoogle Cloud mostra os resultados e as ações recomendadas que você pode realizar para corrigir os problemas. O GKE também adiciona entradas ao Cloud Logging para o rastreamento e auditoria.
O que a auditoria de configuração da carga de trabalho verifica?
| Problema | Campos | Valores permitidos | Gravidade |
|---|---|---|---|
Namespaces do host Os pods que compartilham namespaces do host permitem que os processos do pod se comuniquem com os processos do host e coletem informações do host, o que pode levar a um escape de contêiner. |
|
|
Alta |
Contêineres privilegiados Os contêineres privilegiados permitem o acesso ao host quase irrestrito. Eles compartilham namespaces com o host e não têm restrições de grupo de controle, seccomp, AppArmor e de recursos. |
|
|
Alta |
Acesso à porta do host A exposição de uma porta de host a um contêiner pode permitir que esse contêiner intercepte o tráfego de rede para um serviço de host por meio dessa porta ou que ignore as regras de controle de acesso à rede, como as regras de um NetworkPolicy. |
|
|
Alta |
Recursos não padrão Um contêiner tem recursos atribuídos que podem permitir o escape de um contêiner. |
|
|
Média |
Como montar volumes de caminho de host Os volumes |
spec.volumes[*].hostPath |
Indefinido ou nulo | Média |
Máscara O tipo de montagem |
|
|
Média |
Máscara sysctls não segura É possível configurar um pod para permitir a modificação de parâmetros do kernel
não seguros com o sistema de arquivos virtual |
spec.securityContext.sysctls[*].name |
|
Média |
Execução como não raiz Será possível permitir explicitamente que um contêiner seja executado como o usuário raiz se a diretiva
|
|
true |
Média |
Escalonamento de privilégios Um contêiner pode ser configurado explicitamente para permitir o escalonamento de privilégios na execução. Isso permite que um processo criado no contêiner execute um set-user-id, set-group-id ou um recurso de arquivo para ter os privilégios especificados pelo executável. A falta de controle de segurança preventivo aumenta o risco de escape do contêiner. |
|
false |
Média |
Perfil AppArmor não confinado Um contêiner pode ser explicitamente configurado para não ser confinado pelo AppArmor. Isso garante que nenhum perfil AppArmor seja aplicado ao contêiner e, portanto, não seja restrito por eles. O controle de segurança preventivo desativado aumenta o risco de escape do contêiner. |
metadata.annotations["container.apparmor.security.beta.kubernetes.io/*"] |
false |
Baixo |
Além disso, o GKE verifica se há RoleBindings ou ClusterRoleBindings do RBAC que fazem referência a um dos seguintes usuários ou grupos:
system:anonymoussystem:authenticatedsystem:unauthenticated
Se houver vinculações do RBAC que referenciam esses usuários ou grupos, uma descoberta chamada Usuários efetivamente anônimos receberam acesso ao cluster do GKE com uma gravidade Média vai aparecer no painel de postura de segurança. Esses usuários e grupos são efetivamente anônimos e não devem ser usados em RoleBindings ou ClusterRoleBindings. Para mais informações, consulte Evitar papéis e grupos padrão.
Sobre a exibição do boletim de segurança
Quando uma vulnerabilidade é descoberta no GKE, corrigimos a vulnerabilidade e publicamos um boletim de segurança para a vulnerabilidade. Para informações sobre identificação, aplicação de patches e cronogramas, consulte Patches de segurança do GKE.
O painel de postura de segurança exibe boletins de segurança que afetam os clusters, as cargas de trabalho e os pools de nós do modo padrão. Esse recurso faz parte da capacidade de postura de segurança do Kubernetes do painel de postura de segurança e é ativado automaticamente quando você cria um cluster do Autopilot ou padrão. Para ativar a verificação de postura de segurança do Kubernetes, use as instruções em Auditar automaticamente as cargas de trabalho em busca de problemas de configuração.
O console Google Cloud mostra detalhes como clusters afetados, versões e versões de patch recomendadas para upgrades, para mitigar a vulnerabilidade. Você só vai ver boletins para os quais uma mitigação está disponível na Google Cloud região ou zona do cluster.
Para visualizar os boletins dos clusters registrados na verificação de postura de segurança do Kubernetes, acesse o painel de postura de segurança:
Os boletins disponíveis que afetam seu ambiente são exibidos na seção Boletins de segurança.
A seguir
- Saiba mais sobre o painel de postura de segurança.
- Saiba como implementar a auditoria de configuração da carga de trabalho.