Nesta página, mostramos como verificar automaticamente os pacotes de linguagens e o sistema operacional (SO) do contêiner nas cargas de trabalho em execução para encontrar vulnerabilidades conhecidas e receber estratégias de mitigação acionáveis, se disponíveis. A verificação de vulnerabilidades da carga de trabalho faz parte do painel de postura de segurança, um conjunto de recursos que apresentam informações e recomendações opinativas para melhorar a segurança dos clusters e cargas de trabalho do Google Kubernetes Engine (GKE).
Para saber mais, consulte Sobre a verificação de vulnerabilidades da carga de trabalho.
Preços
Para informações sobre preços, consulte Preços do painel de postura de segurança do GKE
Antes de começar
Antes de começar, verifique se você realizou as tarefas a seguir:
- Ativar a API Google Kubernetes Engine. Ativar a API Google Kubernetes Engine
- Se você quiser usar a Google Cloud CLI para essa tarefa,
instale e, em seguida,
inicialize a
CLI gcloud. Se você instalou a CLI gcloud anteriormente, instale a versão
mais recente executando
gcloud components update
.
Ative a API Container Security.
Para usar o Advanced Vulnerability Insights, ative a API Container Analysis.
Requisitos
-
Para receber as permissões necessárias para usar a verificação de vulnerabilidades da carga de trabalho, peça ao administrador para conceder a você o papel do IAM de Leitor de postura de segurança (
roles/containersecurity.viewer
) no seu projeto do Google Cloud. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.Esse papel predefinido contém as permissões necessárias para usar a verificação de vulnerabilidades da carga de trabalho. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
As permissões a seguir são necessárias para usar a verificação de vulnerabilidades da carga de trabalho:
-
resourcemanager.projects.get
-
resourcemanager.projects.list
-
containersecurity.locations.list
-
containersecurity.locations.get
-
containersecurity.clusterSummaries.list
-
containersecurity.findings.list
Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.
-
- O Advanced Vulnerability Insights requer a versão 1.27 ou posterior do GKE.
Níveis de verificação de vulnerabilidades da carga de trabalho
Ative a verificação de vulnerabilidades em níveis. Cada um deles adiciona recursos de verificação da seguinte maneira. Se você usa o Google Kubernetes Engine (GKE) Enterprise para gerenciar frotas de clusters, você também pode definir configurações de verificação de vulnerabilidades no nível de frota aplicáveis a todos os clusters membros. Para instruções, consulte Configurar recursos do painel de postura de segurança do GKE no nível da frota.
Nível | Recursos ativados | Requisito da versão do GKE |
---|---|---|
Standardstandard |
Verificação de vulnerabilidades do SO do contêiner |
|
Advanced Vulnerability Insightsenterprise |
|
|
Para mais informações sobre cada recurso, consulte Sobre a verificação de vulnerabilidades de carga de trabalho.
Ativar a verificação de vulnerabilidades do SO do contêiner
A verificação de vulnerabilidades do Container OS é ativada por padrão em novos clusters do Autopilot que executam a versão 1.27 e mais recentes. Nesta seção, mostramos como ativar esse recurso em novos clusters padrão e em clusters do Autopilot que executam versões anteriores à 1.27.
Ativar a verificação do SO do contêiner em um novo cluster
gcloud
Crie um novo cluster do GKE usando a gcloud CLI:
gcloud container clusters create CLUSTER_NAME \ --location=LOCATION \ --workload-vulnerability-scanning=standard
Substitua:
CLUSTER_NAME
: o nome do novo cluster.LOCATION
: o local do Compute Engine do cluster.
Console
Acesse a página Google Kubernetes Engine no console do Google Cloud.
Acessar o Google Kubernetes Engine- Clique em Criar.
- Na seção GKE Padrão, clique em Configurar.
- No painel de navegação, clique em Segurança.
- Na seção Segurança, marque a caixa de seleção Verificação de vulnerabilidades.
- Selecione a opção Básico.
- Configure outras opções para o cluster e clique em Criar quando estiver tudo pronto.
Ativar a verificação do SO do contêiner em um cluster atual
gcloud
Atualize o cluster:
gcloud container clusters update CLUSTER_NAME \ --location=LOCATION \ --workload-vulnerability-scanning=standard
Substitua:
CLUSTER_NAME
: o nome do cluster.LOCATION
: o local do Compute Engine do cluster.
Console
Acesse a página Postura de segurança no console do Google Cloud.
Acessar a postura de segurança- Clique na guia Configurações.
- Na seção Clusters ativados de verificação de vulnerabilidades, clique em Selecionar clusters.
- Marque as caixas de seleção dos clusters que você quer adicionar.
- No menu suspenso Selecionar ação, escolha Definir como básico.
- Clique em Aplicar.
Ativar o Advanced Vulnerability Insights
O Advanced Vulnerability Insights permite a verificação contínua dos aplicativos em execução quanto aos seguintes tipos de vulnerabilidades:
- Vulnerabilidades do SO do contêiner
- Vulnerabilidades no pacote de linguagens
Quando você ativa o Advanced Vulnerability Insights, o recurso de verificação de vulnerabilidades do SO do contêiner é ativado automaticamente e não pode ser desativado separadamente.
Requisitos
Verifique se você ativou a API Container Analysis no seu projeto.
Ativar a API Container Analysis
Ativar insights avançados sobre vulnerabilidades em um novo cluster
gcloud
Crie um novo cluster do GKE usando a gcloud CLI:
gcloud container clusters create-auto CLUSTER_NAME \ --location=LOCATION \ --workload-vulnerability-scanning=enterprise
Substitua:
CLUSTER_NAME
: o nome do novo cluster.LOCATION
: o local do Compute Engine do cluster.
Console
Acesse a página Google Kubernetes Engine no console do Google Cloud.
Acessar o Google Kubernetes Engine- Clique em Criar.
- Na seção Autopilot do GKE, clique em Configurar.
- No painel de navegação, clique em Configurações avançadas. Se você estiver criando um cluster Standard, clique em Segurança.
- Na seção Segurança, marque a caixa de seleção Verificação de vulnerabilidades.
- Selecione a opção Avançado.
- Configure outras opções para o cluster e clique em Criar quando estiver tudo pronto.
Ativar o Advanced Vulnerability Insights em um cluster atual
gcloud
Atualize o cluster:
gcloud container clusters update CLUSTER_NAME \ --location=LOCATION \ --workload-vulnerability-scanning=enterprise
Substitua:
CLUSTER_NAME
: o nome do cluster.LOCATION
: o local do Compute Engine do cluster.
Console
Acesse a página Postura de segurança no console do Google Cloud.
Acessar a postura de segurança- Clique na guia Configurações.
- Na seção Clusters ativados de verificação de vulnerabilidades, clique em Selecionar clusters.
- Marque as caixas de seleção dos clusters que você quer adicionar.
- No menu suspenso Selecionar ação, escolha Definir como avançado.
- Clique em Aplicar.
Implantar uma carga de trabalho de teste
Os manifestos de exemplo a seguir têm vulnerabilidades conhecidas para fins de demonstração. Na prática, se você souber que um aplicativo é vulnerável, provavelmente não precisará executá-lo.
Salve o seguinte manifesto como
os-vuln-sample.yaml
:apiVersion: apps/v1 kind: Deployment metadata: name: frontend spec: replicas: 1 selector: matchLabels: app: guestbook tier: frontend template: metadata: labels: app: guestbook tier: frontend spec: containers: - name: php-redis image: us-docker.pkg.dev/google-samples/containers/gke/gb-frontend@sha256:dc8de8e0d569d2f828b187528c9317bd6b605c273ac5a282aebe471f630420fc env: - name: GET_HOSTS_FROM value: "dns" resources: requests: cpu: 100m memory: 100Mi ports: - containerPort: 80
Analise o seguinte manifesto, que contém uma vulnerabilidade conhecida do Maven:
Se quiser, consiga as credenciais do cluster:
gcloud container clusters get-credentials CLUSTER_NAME \ --region=COMPUTE_REGION
Implante os aplicativos no cluster:
kubectl apply -f os-vuln-sample.yaml kubectl apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/kubernetes-engine-samples/main/security/language-vulns/maven/deployment.yaml
Para testar outras vulnerabilidades, implante versões mais recentes de imagens em ambientes de teste, como
nginx
.
Ver e realizar os resultados
A verificação inicial leva pelo menos 15 minutos para retornar os resultados, dependendo do número de cargas de trabalho verificadas. O GKE exibe os resultados no painel de postura de segurança e adiciona automaticamente entradas ao Logging.
Ver resultados
Para uma visão geral das preocupações descobertas nos clusters e nas cargas de trabalho do seu projeto, faça o seguinte:
Acesse a página Postura de segurança no console do Google Cloud.
Clique na guia Preocupações.
No painel Filtrar preocupações, na seção Tipo de preocupação, marque a caixa de seleção Vulnerabilidade.
Ver detalhes e recomendações de problemas
Para ver informações detalhadas sobre uma vulnerabilidade específica, clique na linha que contém essa preocupação.
O painel Preocupação de vulnerabilidade mostra as seguintes informações:
- Descrição: uma descrição da preocupação, incluindo um número de CVE, se aplicável, e uma descrição detalhada da vulnerabilidade e o possível impacto dela.
- Ação recomendada: ações que você pode realizar para lidar com a vulnerabilidade, como versões fixas do pacote e onde aplicar a correção.
Ver registros de problemas descobertos
O GKE adiciona entradas ao bucket de registro _Default
no Logging para cada problema descoberto. Esses registros são mantidos apenas por um período específico. Para mais detalhes, consulte
Períodos de armazenamento dos registros.
No console do Google Cloud, acesse a página do Análise de registros:
Acessar a Análise de registrosNo campo Consulta, insira a seguinte consulta:
resource.type="k8s_cluster" jsonPayload.@type="type.googleapis.com/cloud.kubernetes.security.containersecurity_logging.Finding" jsonPayload.type="FINDING_TYPE_VULNERABILITY"
Clique em Executar consulta.
Para receber notificações quando o GKE adicionar novas descobertas ao Logging, configure alertas com base em registros para essa consulta. Para mais informações, consulte Como gerenciar alertas com base em registros.
Limpar
Exclua a carga de trabalho de amostra que você implantou:
kubectl delete deployment frontend
Como opção, exclua o cluster usado:
gcloud container clusters delete CLUSTER_NAME \ --region=COMPUTE_REGION
Desativar a verificação de vulnerabilidades da carga de trabalho
É possível desativar a verificação de vulnerabilidades da carga de trabalho usando a gcloud CLI ou o console do Google Cloud.
gcloud
Execute este comando:
gcloud container clusters update CLUSTER_NAME \ --region=LOCATION \ --workload-vulnerability-scanning=disabled
Substitua:
CLUSTER_NAME
: o nome do cluster.LOCATION
: a região ou zona do Compute Engine para o novo cluster.
Console
Acesse a página Postura de segurança no console do Google Cloud.
Acessar a postura de segurança- Clique na guia Configurações.
- Na seção Clusters ativados de verificação de vulnerabilidades, clique em Selecionar clusters.
- Marque as caixas de seleção dos clusters que você quer remover.
- No menu suspenso Selecionar ação, escolha Definir como desativado.
- Clique em Aplicar.
A seguir
- Saiba mais sobre o painel de postura de segurança.
- Saiba como verificar as cargas de trabalho em busca de preocupações com a configuração.