Aplicação de patches de segurança

Este documento descreve como a Google gere as vulnerabilidades de segurança e as correções para o Google Kubernetes Engine (GKE).

Esta página destina-se a especialistas de segurança que apoiam a resolução de problemas ou vulnerabilidades de segurança que precisam de assistência estratégica, como incidentes e problemas encaminhados do apoio técnico. Para saber mais sobre as funções comuns e exemplos de tarefas que referimos no conteúdo, consulte o artigo Funções e tarefas comuns do utilizador do GKE. Google Cloud

Aplicação de patches à responsabilidade partilhada

A aplicação de patches é uma responsabilidade partilhada entre a Google e o cliente. As diferentes plataformas têm responsabilidades partilhadas diferentes. Consulte os seguintes tópicos em cada plataforma para ver mais detalhes:

Como descobrimos vulnerabilidades

A Google fez grandes investimentos na conceção e no reforço da segurança proativa, mas mesmo os sistemas de software mais bem concebidos podem ter vulnerabilidades. Para encontrar essas vulnerabilidades e aplicar-lhes patches antes de poderem ser exploradas, a Google fez investimentos significativos em várias frentes.

Para fins de aplicação de patches, o GKE é uma camada do sistema operativo (SO) com contentores em execução na parte superior. Os sistemas operativos, o SO otimizado para contentores ou o Ubuntu, são reforçados e contêm a quantidade mínima de software necessária para executar contentores. As funcionalidades do GKE são executadas como contentores sobre as imagens base.

A Google identifica e corrige vulnerabilidades e patches em falta das seguintes formas:

  • SO otimizado para contentores: a Google analisa as imagens para identificar potenciais vulnerabilidades e patches em falta. A equipa do SO otimizado para contentores revisa e resolve os problemas.

  • Ubuntu: a Canonical fornece à Google compilações do SO com todos os patches de segurança disponíveis aplicados.

A Google analisa contentores através da análise de artefactos do registo de contentores para descobrir vulnerabilidades e patches em falta em contentores geridos pela Google e pelo Kubernetes. Se estiverem disponíveis correções, o scanner inicia automaticamente o processo de aplicação de patches e lançamento.

Além da análise automática, a Google descobre e corrige vulnerabilidades desconhecidas dos scanners das seguintes formas.

A Google realiza as suas próprias auditorias, testes de penetração e deteção de vulnerabilidades em todas as plataformas. Para ver uma lista de plataformas, consulte a secção anterior Aplicação de patches à responsabilidade partilhada.

As equipas especializadas da Google e os fornecedores de segurança de terceiros fidedignos realizam a sua própria investigação de ataques. A Google também colaborou com a CNCF para fornecer grande parte da organização e experiência de consultoria técnica para a auditoria de segurança do Kubernetes.

A Google interage ativamente com a comunidade de investigação de segurança através de vários programas de recompensas por vulnerabilidades. Um programa de recompensas por vulnerabilidades dedicado oferece recompensas significativas, incluindo 133 337 $pela melhor vulnerabilidade na nuvem encontrada todos os anos. Google Cloud Para o GKE, existe um programa que recompensa os investigadores de segurança se conseguirem violar os nossos controlos de segurança. O programa abrange todas as dependências de software do GKE.

A Google colabora com outros parceiros da indústria e de software de código aberto que partilham vulnerabilidades, investigação de segurança e patches antes do lançamento público da vulnerabilidade. O objetivo desta colaboração é corrigir grandes partes da infraestrutura da Internet antes de a vulnerabilidade ser anunciada ao público. Em alguns casos, a Google contribui com vulnerabilidades encontradas para esta comunidade. Por exemplo, o Project Zero da Google descobriu e publicitou as vulnerabilidades Spectre e Meltdown. A Google Cloud equipa de segurança também encontra e corrige regularmente vulnerabilidades na máquina virtual baseada em Kernel (KVM).

A colaboração em segurança da Google ocorre a vários níveis. Por vezes, ocorre formalmente através de programas em que as organizações se inscrevem para receber notificações de pré-lançamento sobre vulnerabilidades de software para produtos como o Kubernetes e o Envoy. A colaboração também ocorre de forma informal devido à nossa interação com muitos projetos de código aberto, como o kernel do Linux, os tempos de execução de contentores, a tecnologia de virtualização e outros.

Para o Kubernetes, a Google é um membro ativo e fundador do Security Response Committee (SRC) e escreveu grande parte do Security Release Process. A Google é membro da Kubernetes Distributors List que recebe notificação prévia de vulnerabilidades e tem estado envolvida na triagem, aplicação de patches, desenvolvimento de mitigação e comunicação de quase todas as vulnerabilidades de segurança graves do Kubernetes. A Google também descobriu várias vulnerabilidades do Kubernetes por si própria.

Embora sejam descobertas e corrigidas vulnerabilidades menos graves fora destes processos, a maioria das vulnerabilidades de segurança críticas é comunicada de forma privada através de um dos canais indicados anteriormente. Os relatórios antecipados dão tempo à Google antes de a vulnerabilidade se tornar pública para pesquisar como afeta o GKE, desenvolver correções ou mitigações e preparar conselhos e comunicações para os clientes. Sempre que possível, a Google aplica patches a todos os clusters antes do lançamento público da vulnerabilidade.

Como são classificadas as vulnerabilidades

O GKE faz grandes investimentos na proteção de segurança de toda a pilha, incluindo o SO, o contentor, o Kubernetes e as camadas de rede, além de definir boas predefinições, configurações protegidas e componentes geridos. Em conjunto, estes esforços ajudam a reduzir o impacto e a probabilidade de vulnerabilidades.

A equipa de segurança do GKE classifica as vulnerabilidades de acordo com o sistema de classificação de vulnerabilidades do Kubernetes. As classificações têm em conta muitos fatores, incluindo a configuração do GKE e o reforço da segurança. Devido a estes fatores e aos investimentos que o GKE faz em segurança, as classificações de vulnerabilidades do GKE podem diferir de outras origens de classificação.

A tabela seguinte descreve as categorias de gravidade das vulnerabilidades:

Gravidade Descrição
Crítico Uma vulnerabilidade facilmente explorável em todos os clusters por um atacante remoto não autenticado que leva ao comprometimento total do sistema.
Alto Uma vulnerabilidade facilmente explorável para muitos clusters que leva à perda de confidencialidade, integridade ou disponibilidade.
Médio Uma vulnerabilidade explorável para alguns clusters em que a perda de confidencialidade, integridade ou disponibilidade é limitada por configurações comuns, dificuldade da própria exploração, acesso necessário ou interação do utilizador.
Baixo Todas as outras vulnerabilidades. A exploração é improvável ou as consequências da exploração são limitadas.

Consulte os boletins de segurança para ver exemplos de vulnerabilidades, correções e mitigações, bem como as respetivas classificações.

Como as vulnerabilidades são corrigidas para clusters do GKE

A aplicação de patches a uma vulnerabilidade envolve a atualização para um novo número de versão do GKE. As versões do GKE incluem componentes com versões para o sistema operativo, os componentes do Kubernetes e outros contentores que compõem a plataforma GKE. A correção de algumas vulnerabilidades requer apenas uma atualização do plano de controlo, que é realizada automaticamente pela Google no GKE, enquanto outras requerem atualizações do plano de controlo e dos nós.

Para manter os clusters corrigidos e protegidos contra vulnerabilidades de todas as gravidades, recomendamos a utilização da atualização automática de nós no GKE (ativada por predefinição). Para clusters inscritos em canais de lançamento, os lançamentos de patches são promovidos à medida que cumprem os requisitos de qualificação de cada canal. Se precisar de um lançamento de patch do GKE antes de chegar ao canal do seu cluster, pode atualizar manualmente para a versão de patch se o lançamento de patch estiver na mesma versão secundária que uma disponível no canal de lançamento do seu cluster.

Noutras plataformas onde os clusters são executados, a Google recomenda a atualização, pelo menos, mensalmente. Para ver uma lista de plataformas, consulte a secção anterior Aplicação de patches à responsabilidade partilhada.

Alguns scanners de segurança ou verificações manuais de versões podem assumir incorretamente que um componente, como o runc ou o containerd, não tem um patch de segurança específico a montante. O GKE aplica patches regularmente aos componentes e só faz atualizações das versões dos pacotes quando necessário, o que significa que os componentes do GKE são funcionalmente semelhantes aos seus equivalentes upstream, mesmo que o número da versão do componente do GKE não corresponda ao número da versão upstream. Para ver detalhes sobre uma CVE específica, consulte os boletins de segurança do GKE.

Linhas cronológicas de aplicação de patches

O objetivo da Google é mitigar as vulnerabilidades detetadas num período adequado aos riscos que representam. O GKE está incluído no ATO provisório do FedRAMP daGoogle Cloud, que exige que as vulnerabilidades conhecidas sejam corrigidas dentro de prazos específicos de acordo com o respetivo nível de gravidade, conforme especificado no controlo RA-5(d) da tabela "Resumo das atividades e dos resultados da monitorização contínua" no guia de estratégia de monitorização contínua do FedRAMP.

Para cada vulnerabilidade conhecida, o objetivo do GKE é lançar versões de patch que resolvam a vulnerabilidade no prazo correspondente. O Google Cloud ATO provisório do FedRAMP não inclui o Google Distributed Cloud, o GKE na AWS nem o GKE no Azure, mas pretendemos alcançar os mesmos prazos de correção nesses produtos. Depois de o GKE disponibilizar versões de patch para corrigir uma vulnerabilidade conhecida, atualize os seus clusters para essas versões de modo a cumprir os prazos de aplicação de patches da sua organização.

Como são comunicadas as vulnerabilidades e as correções

A melhor fonte de informações atuais sobre vulnerabilidades e patches de segurança encontra-se no feed de boletins de segurança para os seguintes produtos:

  • GKE
  • Google Distributed Cloud
  • GKE no AWS
  • GKE no Azure
  • Google Distributed Cloud

Estes boletins seguem um esquema de numeração de vulnerabilidades Google Cloud comum e têm links na página de boletins Google Cloud principal e nas notas de lançamento do GKE. Cada página de boletins de segurança tem um feed RSS onde os utilizadores podem subscrever atualizações.

Por vezes, as vulnerabilidades são mantidas privadas sob embargos por um período limitado. Os embargos ajudam a evitar a publicação antecipada de vulnerabilidades que possam levar a tentativas de exploração generalizadas antes de serem tomadas medidas para as resolver. Em situações de embargo, as notas de lançamento referem-se a "atualizações de segurança" até o embargo ser levantado. Após o levantamento do embargo, a Google atualiza as notas de lançamento para incluir as vulnerabilidades específicas.

A equipa de segurança do GKE publica boletins de segurança para vulnerabilidades de gravidade elevada e crítica. Quando é necessária a ação do cliente para resolver estas vulnerabilidades de gravidade elevada e crítica, a Google contacta os clientes por email. Além disso, a Google também pode contactar os clientes com contratos de apoio técnico através dos canais de apoio técnico.