Sobre a detecção de ameaças do GKE


Nesta página, descrevemos a detecção de ameaças do GKE, que permite verificar se há ameaças ativas nos clusters qualificados do GKE no painel de postura de segurança do GKE. O painel de postura de segurança do GKE permite ativar vários recursos de verificação e auditoria em clusters qualificados do GKE e exibe recomendações acionáveis para ajudar você a resolver problemas de segurança.

Como funciona

A detecção de ameaças do GKE é um recurso avançado do painel de postura de segurança do GKE que está disponível para os usuários do GKE Enterprise. Quando seus clusters do GKE são registrados em uma frota, a detecção de ameaças do GKE avalia seus registros de auditoria do GKE no Cloud Logging em relação a um conjunto de regras predefinidas para ameaças a clusters e cargas de trabalho. Se uma ameaça for encontrada, você verá uma descoberta no painel de postura de segurança do GKE com uma descrição da ameaça, o possível impacto e as ações recomendadas para mitigá-la.

Todos os clusters do GKE registrados em toda a frota são verificados continuamente em busca de ameaças ativas. Classificamos as ameaças detectadas usando as táticas MITRE ATT&CK®.

A detecção de ameaças do GKE é feita pelo serviço de detecção de ameaças a eventos do Security Command Center. No painel de postura de segurança do GKE, apenas o subconjunto de regras que se aplicam ao GKE é avaliado.

Recursos de postura de segurança do GKE incluídos

A detecção de ameaças do GKE está incluída no nível avançado de verificação de postura de segurança do Kubernetes. Ao ativar a detecção de ameaças do GKE em um cluster, você também ativa os seguintes recursos de verificação:

Uso como parte de uma estratégia de segurança ampla

A detecção de ameaças do GKE é um dos vários produtos de observabilidade de segurança que precisam ser usados no seu ambiente. Recomendamos que você use outros recursos do painel de postura de segurança do GKE, como a verificação de vulnerabilidades, para garantir que esteja monitorando seus clusters em busca de diversos problemas de segurança. Para mais informações, consulte Sobre o painel de postura de segurança na documentação do GKE.

Também recomendamos que você implemente o máximo possível de medidas de segurança em Aumente a segurança do cluster nos seus clusters e cargas de trabalho.

Preços

O GKE Threat Detection é oferecido sem custo financeiro adicional pelo GKE Enterprise.

Regras predefinidas de detecção de ameaças do GKE

Na tabela a seguir, descrevemos as regras de avaliação em que o GKE Threat Detection avalia seus registros de auditoria do GKE:

Nome de exibição Nome da API Tipos de origem do registro Descrição
Evasão de defesa: implantação forçada da carga de trabalho criada (pré-lançamento) BINARY_AUTHORIZATION_BREAKGLASS_WORKLOAD_CREATE Registros de auditoria do Cloud:
Registros de atividade do administrador
Detecta a implantação de cargas de trabalho implantadas usando a flag de acesso imediato para modificar os controles da autorização binária.
Evasão de defesa: implantação forçada da carga de trabalho atualizada (pré-lançamento). BINARY_AUTHORIZATION_BREAKGLASS_WORKLOAD_UPDATE Registros de auditoria do Cloud:
Registros de atividade do administrador
Detecta quando as cargas de trabalho são atualizadas usando a flag de implantação forçada para modificar os controles da autorização binária.
Descoberta: pode receber verificações de objetos sensíveis do Kubernetes. GKE_CONTROL_PLANE_CAN_GET_SENSITIVE_OBJECT Registros de auditoria do Cloud:
Registros de acesso a dados do GKE

Uma pessoa mal-intencionada tentou determinar quais objetos sensíveis no GKE eles podem consultar usando o comando kubectl auth can-i get. Especificamente, a regra detecta se a pessoa verificou o acesso à API nos seguintes objetos:

Escalonamento de privilégios: mudanças em objetos sensíveis com RBAC do Kubernetes. GKE_CONTROL_PLANE_EDIT_SENSITIVE_RBAC_OBJECT Registros de auditoria do Cloud:
Registros de atividade do administrador do GKE
Para escalonar o privilégio, um usuário possivelmente mal-intencionado tentou modificar um objeto de controle de acesso baseado em papel (RBAC) ClusterRole, RoleBinding ou ClusterRoleBinding do papel sensível cluster-admin usando uma solicitação PUT ou PATCH.
Escalonamento de privilégios: crie uma CSR do Kubernetes para o certificado mestre. GKE_CONTROL_PLANE_CSR_FOR_MASTER_CERT Registros de auditoria do Cloud:
Registros de atividade do administrador do GKE
Um usuário possivelmente malicioso criou uma solicitação de assinatura de certificado (CSR) mestre do Kubernetes, o que concede a ele acesso cluster-admin.
Escalonamento de privilégios: criação de vinculações sensíveis do Kubernetes. GKE_CONTROL_PLANE_CREATE_SENSITIVE_BINDING Registros de auditoria do Cloud:
Registros de auditoria da atividade do administrador do IAM
Para escalonar o privilégio, um usuário possivelmente mal-intencionado tentou criar um novo objeto RoleBinding ou ClusterRoleBinding para o papel cluster-admin.
Escalonamento de privilégios: receba a CSR do Kubernetes com credenciais de inicialização comprometidas. GKE_CONTROL_PLANE_GET_CSR_WITH_COMPROMISED_BOOTSTRAP_CREDENTIALS Registros de auditoria do Cloud:
Registros de acesso a dados do GKE
Uma pessoa mal-intencionada consultou uma solicitação de assinatura de certificado (CSR), com o comando kubectl, usando credenciais de inicialização comprometida.
Escalonamento de privilégios: lançamento de contêiner com privilégios do Kubernetes. GKE_CONTROL_PLANE_LAUNCH_PRIVILEGED_CONTAINER Registros de auditoria do Cloud:
Registros de atividade do administrador do GKE

Uma pessoa possivelmente mal-intencionada criou um pod com contêineres privilegiados ou contêineres com recursos de escalonamento de privilégios.

Um contêiner privilegiado tem o campo privileged definido como true. Um contêiner com recursos de escalonamento de privilégios tem o campo allowPrivilegeEscalation definido como true. Para mais informações, consulte a referência da API SecurityContext v1 core na documentação do Kubernetes.

Acesso credencial: segredos acessados no namespace do Kubernetes SECRETS_ACCESSED_IN_KUBERNETES_NAMESPACE Registros de auditoria do Cloud:
Registros de acesso a dados do GKE
Detecta quando secrets ou tokens de conta de serviço são acessados por uma conta de serviço no namespace atual do Kubernetes.
Acesso inicial: recurso anônimo do GKE criado na Internet (pré-lançamento) GKE_RESOURCE_CREATED_ANONYMOUSLY_FROM_INTERNET Registros de auditoria do Cloud:
Registros de atividade do administrador do GKE
Detecta eventos de criação de recursos de usuários da Internet efetivamente anônimos.
Acesso inicial: recurso do GKE modificado anonimamente pela Internet (pré-lançamento) GKE_RESOURCE_MODIFIED_ANONYMOUSLY_FROM_INTERNET Registros de auditoria do Cloud:
Registros de atividade do administrador do GKE
Detecta eventos de manipulação de recursos de usuários da Internet efetivamente anônimos.
Escalonamento de privilégios: usuários efetivamente anônimos receberam acesso ao cluster do GKE (pré-lançamento) GKE_ANONYMOUS_USERS_GRANTED_ACCESS Registros de auditoria do Cloud:
Registros de atividade do administrador do GKE

Alguém criou uma vinculação do RBAC que faz referência a um dos seguintes usuários ou grupos:

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

Esses usuários e grupos são efetivamente anônimos e devem ser evitados ao criar vinculações de papéis ou de funções de cluster para qualquer papel do RBAC. Verifique se a vinculação é necessária. Se não for necessário, remova a vinculação.

Execução: execução ou anexamento suspeito a um pod do sistema (pré-lançamento) GKE_SUSPICIOUS_EXEC_ATTACH Registros de auditoria do Cloud:
Registros de atividade do administrador do GKE
Alguém usou os comandos exec ou attach para receber um shell ou executar um comando em um contêiner em execução no namespace kube-system. Esses métodos às vezes são usados para fins legítimos de depuração. No entanto, o namespace kube-system é destinado a objetos do sistema criados pelo Kubernetes, e a execução de comandos ou a criação de shells inesperadas precisa ser analisada.
Escalonamento de privilégios: carga de trabalho criada com uma montagem de caminho de host sensível (pré-lançamento) GKE_SENSITIVE_HOSTPATH Registros de auditoria do Cloud:
Registros de atividade do administrador do GKE
Alguém criou uma carga de trabalho que contém uma montagem de volume hostPath para um caminho confidencial no sistema de arquivos do nó host. O acesso a esses caminhos no sistema de arquivos do host pode ser usado para acessar informações privilegiadas ou sensíveis no nó e para escapar do contêiner. Se possível, não permita volumes hostPath no cluster.
Escalonamento de privilégios: carga de trabalho com shareProcessNamespace ativado (pré-lançamento) GKE_SHAREPROCESSNAMESPACE_POD Registros de auditoria do Cloud:
Registros de atividade do administrador do GKE
Alguém implantou uma carga de trabalho com a opção shareProcessNamespace definida como true, permitindo que todos os contêineres compartilhem o mesmo namespace de processo do Linux. Isso pode permitir que um contêiner não confiável ou comprometido aumente privilégios acessando e controlando variáveis de ambiente, memória e outros dados sensíveis de processos executados em outros contêineres.
Escalonamento de privilégios: ClusterRole com verbos privilegiados (pré-lançamento) GKE_CLUSTERROLE_PRIVILEGED_VERBS Registros de auditoria do Cloud:
Registros de atividade do administrador do GKE
Alguém criou uma ClusterRole do RBAC que contém os verbos bind, escalate ou impersonate. Um sujeito vinculado a uma função com esses verbos pode se passar por outros usuários com privilégios mais altos, se vincular a outros Roles ou ClusterRoles que contêm permissões adicionais ou modificar as próprias permissões de ClusterRole. Isso pode fazer com que esses indivíduos ganhem privilégios de administrador do cluster.
Escalonamento de privilégios: ClusterRoleBinding para função privilegiada (pré-lançamento) GKE_CRB_CLUSTERROLE_AGGREGATION_CONTROLLER Registros de auditoria do Cloud:
Registros de atividade do administrador do GKE
Alguém criou uma ClusterRoleBinding do RBAC que faz referência à system:controller:clusterrole-aggregation-controller ClusterRole padrão. Esse ClusterRole padrão tem o verbo escalate, que permite aos sujeitos modificar os privilégios das próprias funções, o que permite o escalonamento de privilégios.
Evasão de defesa: solicitação de assinatura de certificado (CSR) excluída manualmente (pré-lançamento) GKE_MANUALLY_DELETED_CSR Registros de auditoria do Cloud:
Registros de atividade do administrador do GKE
Alguém excluiu manualmente uma solicitação de assinatura de certificado (CSR, na sigla em inglês). Os CSRs são removidos automaticamente por um controlador de coleta de lixo, mas agentes mal-intencionados podem excluí-los manualmente para evitar a detecção. Se a CSR excluída era de um certificado aprovado e emitido, o usuário potencialmente malicioso agora tem um método de autenticação adicional para acessar o cluster. As permissões associadas ao certificado variam dependendo do assunto incluído, mas podem ser altamente privilegiadas. O Kubernetes não permite a revogação de certificados.
Acesso às credenciais: falha na tentativa de aprovar a solicitação de assinatura de certificado (CSR) do Kubernetes (Pré-lançamento) GKE_APPROVE_CSR_FORBIDDEN Registros de auditoria do Cloud:
Registros de atividade do administrador do GKE
Alguém tentou aprovar manualmente uma solicitação de assinatura de certificado (CSR), mas a ação falhou. A criação de um certificado para autenticação de cluster é um método comum de acesso persistente a um cluster comprometido. As permissões associadas ao certificado variam dependendo do assunto incluído, mas podem ser altamente privilegiadas.
Acesso às credenciais: solicitação de assinatura de certificado (CSR) do Kubernetes aprovada manualmente (Visualização) GKE_CSR_APPROVED Registros de auditoria do Cloud:
Registros de atividade do administrador do GKE
Alguém aprovou manualmente uma solicitação de assinatura de certificado (CSR, na sigla em inglês). A criação de um certificado para autenticação de cluster é um método comum de acesso persistente a um cluster comprometido. As permissões associadas ao certificado variam dependendo do assunto incluído, mas podem ser altamente privilegiadas.
Execução: pod do Kubernetes criado com possíveis argumentos de shell reverso (pré-lançamento). GKE_REVERSE_SHELL_POD Registros de auditoria do Cloud:
Registros de atividade do administrador do GKE
Alguém criou um pod com comandos ou argumentos geralmente associados a um shell reverso. Os invasores usam shells reversos para expandir ou manter o acesso inicial a um cluster e executar comandos arbitrários.
Evasão de defesa: possível mascaramento de pods do Kubernetes (pré-lançamento) GKE_POD_MASQUERADING Registros de auditoria do Cloud:
Registros de atividade do administrador do GKE
Alguém implantou um pod com uma convenção de nomenclatura semelhante às cargas de trabalho padrão que o GKE cria para a operação normal do cluster. Essa técnica é chamada de mascaramento.
Escalonamento de privilégios: nomes de contêiner do Kubernetes suspeitos: exploração e escape (Visualização) GKE_SUSPICIOUS_EXPLOIT_POD Registros de auditoria do Cloud:
Registros de atividade do administrador do GKE
Alguém implantou um pod com uma convenção de nomenclatura semelhante a ferramentas comuns usadas para escapar de contêineres ou para executar outros ataques no cluster.
Impacto: nomes de contêineres do Kubernetes suspeitos: mineração de moedas (Visualização) GKE_SUSPICIOUS_CRYPTOMINING_POD Registros de auditoria do Cloud:
Registros de atividade do administrador do GKE
Alguém implantou um pod com uma convenção de nomenclatura semelhante a dos mineradores de moedas de criptomoedas comuns. Isso pode ser uma tentativa de um invasor que obteve acesso inicial ao cluster para usar os recursos dele na mineração de criptomoedas.

Como ativar a detecção de ameaças do GKE

Para ativar a detecção de ameaças do GKE, registre um cluster qualificado no nível avançado da verificação de postura de segurança do Kubernetes. Isso também ativa todos os recursos incluídos no nível básico de verificação de postura de segurança do Kubernetes, como auditoria de configuração de carga de trabalho e exibição do boletim de segurança.

Para saber mais, consulte Encontrar ameaças em clusters usando o GKE Threat Detection.

Limitações

As seguintes limitações se aplicam ao GKE Threat Detection:

  • Disponível apenas no GKE Enterprise
  • Disponível apenas para projetos em organizações
  • Não oferece suporte às opções do Security Command Center, como a configuração de residência de dados
  • Mostra apenas resultados de clusters registrados em uma frota
  • O GKE retém as descobertas de ameaças que não têm mais recursos afetados associados por até 180 dias
  • Mostra apenas resultados de clusters atuais. Se você excluir um cluster, o GKE Threat Detection não mostrará mais a descoberta no painel de postura de segurança do GKE.

A seguir