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
|
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 |
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:
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
- Saiba mais sobre o painel de postura de segurança do GKE
- Encontrar ameaças em clusters usando o GKE Threat Detection