Práticas recomendadas para proteção contra ataques de mineração de criptomoedas

Last reviewed 2023-10-20 UTC

A mineração de criptomoedas (também conhecida como mineração de bitcoin) é o processo usado para criar novas criptomoedas e verificar transações. Os ataques de mineração de criptomoedas ocorrem quando invasores que têm acesso ao seu ambiente também podem explorar recursos para executar operações de mineração próprias, por conta própria.

De acordo com o relatório de novembro de 2021 em horizontes de ameaças (em inglês), os ataques de mineração de criptomoedas são a maneira mais comum de explorar recursos de computação depois que eles comprometem o ambiente do Google Cloud. O relatório também diz que os invasores geralmente fazem o download de softwares de mineração de criptomoedas para seus recursos em até 22 segundos, comprometendo o sistema. A mineração de criptomoedas pode aumentar rapidamente os custos, e um ataque de mineração de criptomoedas pode gerar uma fatura muito maior do que o esperado. Como os custos podem aumentar rapidamente, defina medidas de proteção, detecção e mitigação para proteger sua organização.

Este documento é destinado a arquitetos e administradores de segurança. Ele descreve as práticas recomendadas que podem ser tomadas para proteger os recursos do Google Cloud contra ataques de mineração de criptomoeda e minimizar o impacto caso um ataque ocorra.

Identificar seus vetores de ameaças

Para determinar a exposição da sua organização a ataques de mineração de criptomoedas, identifique os vetores de ameaça que se aplicam à organização.

O relatório de ameaças de horizontes de novembro de 2021 indica que a maioria dos invasores explora vulnerabilidades, como as seguintes:

  • Senha fraca ou nenhuma senha para contas de usuário
  • Autenticação fraca ou nenhuma das APIs do Google Cloud
  • Vulnerabilidades em software de terceiros
  • Configurações incorretas no ambiente do Google Cloud ou em aplicativos de terceiros em execução no Google Cloud
  • Credenciais vazadas, como chaves de contas de serviço publicadas em repositórios públicos do GitHub

Além disso, é possível assinar e analisar os seguintes documentos para ver uma lista de vetores de ameaças:

Depois de identificar os vetores de ameaças que se aplicam a você, use as práticas recomendadas restantes neste documento para ajudar a resolvê-los.

Proteger contas e credenciais da conta

Os invasores podem explorar contas desprotegidas ou mal gerenciadas para ter acesso aos recursos do Compute Engine. O Google Cloud inclui opções diferentes que podem ser configuradas para gerenciar contas e grupos.

Restringir o acesso ao ambiente de nuvem

A tabela a seguir descreve as políticas organizacionais que podem ser usadas para definir quem pode acessar seu ambiente de nuvem.

Restrição da política da organização Descrição
Compartilhamento restrito de domínio Especifique quais IDs de cliente para o Cloud Identity ou o Google Workspace são válidos.
Contas da AWS permitidas que podem ser configuradas para a federação de identidade da carga de trabalho no Cloud IAM Em um ambiente de nuvem híbrida, defina quais contas da AWS podem usar a carga de trabalho para identificar federação.
Provedores de identidade externos permitidos para cargas de trabalho Em um ambiente de nuvem híbrida, defina quais provedores de identidade suas cargas de trabalho podem usar.

Configurar a MFA ou 2FA

O Cloud Identity é compatível com a autenticação multifator (MFA) usando vários métodos. Configure a MFA, especialmente para contas com privilégios. Para mais informações, consulte Aplicar MFA uniforme aos recursos da empresa.

Para ajudar a evitar ataques de phishing que possam levar a ataques de mineração de criptomoedas, use as chaves de segurança Titan na autenticação de dois fatores (2FA, na sigla em inglês).

Configure um privilégio mínimo

O privilégio mínimo garante que usuários e serviços tenham apenas o acesso necessário para realizar as tarefas específicas respectivas. O privilégio mínimo diminui a capacidade de ataques de se espalhar por uma organização porque um invasor não consegue escalonar os privilégios com facilidade.

Para atender às necessidades da sua organização, use as políticas, os papéis e as permissões detalhadas do Identity and Access Management (IAM). Além disso, analise suas permissões regularmente usando as ferramentas Recomendações de papéis e a Análise de políticas. O recomendador de papel usa machine learning para analisar configurações e fornecer recomendações para garantir que elas estejam em conformidade com o princípio do privilégio mínimo. A ferramenta Análise de políticas políticas permite ver quais contas têm acesso aos seus recursos da nuvem.

Monitorar contas

Se você usar grupos para atribuir políticas do IAM, monitore os registros do grupo para garantir que contas não corporativas não sejam adicionadas. Além disso, restrinja as identidades, com base nos domínios do Cloud Identity ou do Google Workspace, que podem acessar seus recursos. Para mais informações, consulte Como restringir identidades por domínio.

Verifique se os procedimentos de suspensão incluem processos para desativar contas e redefinir permissões quando os funcionários saem da organização ou alteram papéis. Para mais informações, consulte Como revogar o acesso ao Google Cloud.

Para auditar seus usuários e grupos, consulte Registros de auditoria do Google Workspace.

Reduza a exposição da Internet aos seus recursos do Compute Engine e do GKE

Reduzir a exposição à Internet significa que os invasores têm menos oportunidades para encontrar e explorar vulnerabilidades. Nesta seção, você verá as práticas recomendadas que ajudam a proteger as VMs do Compute Engine e os clusters do Google Kubernetes Engine (GKE) contra a exposição na Internet.

Restrinja o tráfego externo

Não atribua endereços IP externos às VMs. É possível usar a páginaDesativar o uso do IPv6 externo da VPC restrição de política da organização para negar endereços IP externos a todas as VMs. Para ver quais VMs têm endereços IP acessíveis publicamente, consulte Como localizar endereços IP para uma instância. Se a arquitetura exigir endereços IP externos para as VMs, use a política da organização Definir os IPs externos permitidos para instâncias de VM, que permitem definir uma lista de nomes de instâncias que podem ter endereços IP externos.

Restrinja os nós do GKE apenas a endereços IP internos. Para mais informações, consulte Como criar um cluster de usuário.

Restrinja o tráfego de entrada (recebimento) e de saída (envio) para a Internet para todos os recursos nos seus projetos. Para mais informações, consulte Regras de firewall da VPC e Políticas de firewall hierárquicas.

Para mais informações sobre como restringir o tráfego externo, como configurar o Cloud NAT para permitir comunicações de saída para VMs sem endereço IP externo ou usar um balanceador de carga de proxy para comunicações de entrada, consulte Como se conectar à VM com segurança instâncias.

Usar perímetros de serviço

Crie um perímetro de serviço para os recursos do Compute Engine e do GKE usando o VPC Service Controls. O VPC Service Controls permite o controle de comunicações com os recursos do Compute Engine de fora do perímetro. Os perímetros de serviço permitem a comunicação livre dentro do perímetro, bloqueiam a exfiltração de dados e bloqueiam a comunicação de serviços de fora do perímetro. Use atributos de acesso baseado no contexto, como endereços IP e identidades dos usuários, para controlar ainda mais o acesso aos serviços do Google Cloud pela Internet.

Configurar a segurança de confiança zero

Configure uma segurança de confiança zero com o BeyondCorp Enterprise. O BeyondCorp Enterprise oferece proteção contra dados e ameaças e outros controles de acesso. Se as cargas de trabalho estiverem no local e no Google Cloud, configure o Identity-Aware Proxy (IAP). Configure o encaminhamento de TCP para controlar quem pode acessar serviços administrativos, como SSH e RDP, nos recursos do Google Cloud pela Internet pública. O encaminhamento de TCP impede que esses serviços sejam expostos livremente à Internet.

Proteger os recursos do Compute Engine e do GKE

A mineração de criptomoedas requer acesso aos recursos do Compute Engine e do GKE. Nesta seção, você verá as práticas recomendadas que ajudarão a proteger seus recursos do Compute Engine e do GKE.

Proteger as imagens da VM

Use imagens de VM com aumento da proteção e selecionadas configurando a VM protegida. A VM protegida foi projetada para evitar que códigos maliciosos, como malware no nível do kernel ou rootkits, sejam carregados durante o ciclo de inicialização. Ela fornece segurança de inicialização, monitora a integridade e usa o Módulo de plataforma confiável virtual (vTPM).

Para restringir quais imagens podem ser implantadas, é possível implementar políticas de imagem confiáveis. A política da organização Definir projetos de imagens confiáveis define quais projetos podem armazenar imagens e discos permanentes. Garanta que apenas imagens confiáveis e mantidas estejam nesses projetos.

No GKE, verifique se os contêineres usam imagens de base, que são atualizadas regularmente com patches de segurança. Além disso, considere imagens de contêiner distroless que incluam apenas o aplicativo e as dependências de tempo de execução dele.

Proteger o acesso SSH às VMs

Configure o Login do SO para gerenciar o acesso SSH às VMs em execução no Compute Engine. O login do SO simplifica o gerenciamento do acesso SSH porque vincula a conta de usuário do Linux do administrador à identidade do Google. O Login do SO funciona com o IAM para que você defina os privilégios que os administradores têm.

Para mais informações, consulte Proteger VMs e contêineres.

Restringir contas de serviço

Uma conta de serviço é uma conta do Google Cloud que as cargas de trabalho usam para chamar a API de um serviço do Google.

Não permitir que o Google Cloud atribua papéis da conta de serviço padrão aos recursos quando eles forem criados. Para mais informações, consulte Como restringir o uso da conta de serviço.

Se os aplicativos estiverem sendo executados fora do Google Cloud e ainda precisarem de acesso aos recursos do Google Cloud, não use chaves de conta de serviço. Em vez disso, implemente a federação de identidades de carga de trabalho para gerenciar identidades externas e as permissões associadas a elas. No GKE, é possível implementar identidades de carga de trabalho. Para mais informações, consulte Escolha o método de autenticação certo para seu caso de uso.

Para ver mais práticas recomendadas que ajudam a proteger contas de serviço, consulte Práticas recomendadas para trabalhar com contas de serviço.

Monitorar o uso de contas de serviço e chaves de contas de serviço

Configure o monitoramento para rastrear como contas de serviço e chaves de contas de serviço estão sendo usadas na sua organização. Para ganhar visibilidade de padrões de uso importantes, use insights de conta de serviço. Por exemplo, é possível usar insights de conta de serviço para rastrear como as permissões são usadas nos seus projetos e identificar contas de serviço não utilizadas. Para ver quando suas contas de serviço e chaves foram usadas pela última vez para chamar uma API do Google para atividades de autenticação, ver o uso recente de contas de serviço e chaves de contas de serviço; de dados.

Monitorar e corrigir VMs e contêineres

Para iniciar um ataque de mineração de criptomoeda, os invasores geralmente exploram configurações incorretas e vulnerabilidades de software para ter acesso aos recursos do Compute Engine e do GKE.

Para conseguir insights sobre as vulnerabilidades e configurações incorretas aplicáveis ao ambiente, use o Security Health Analytics para verificar os recursos. Especificamente, se você usar o Security Command Center Premium, revise qualquer descoberta de instância do Compute Engine e descobertas de contêiner e configurar processos para resolvê-los rapidamente.

Use o Artifact Analysis para verificar vulnerabilidades nas imagens de contêiner que você armazena no Artifact Registry ou no Container Registry.

Garanta que sua organização possa implantar patches assim que eles estiverem disponíveis. É possível usar o Gerenciamento de correções do SO no Compute Engine. O Google corrige vulnerabilidades automaticamente no GKE. Para mais informações, consulte Manter suas imagens e clusters atualizados.

Proteger seus aplicativos usando um WAF

Os invasores podem tentar acessar sua rede encontrando as vulnerabilidades da Camada 7 nos seus aplicativos implantados. Para ajudar a atenuar esses ataques, configure o Google Cloud Armor, que é um firewall de aplicativos da Web (WAF) que usa políticas de segurança e filtragem da Camada 7. O Google Cloud Armor oferece proteção de negação de serviço (DoS) e WAF para aplicativos e serviços hospedados no Google Cloud, no local ou em outras nuvens.

O Google Cloud Armor inclui uma regra do WAF para ajudar a lidar com as vulnerabilidades do Apache Log4j. Os invasores podem usar as vulnerabilidades do Log4j para introduzir malware que executa a mineração de criptomoedas não autorizada. Saiba mais em A regra do WAF do Google Cloud Armor para ajudar a lidar com a vulnerabilidade do Apache Log4j

Proteja sua cadeia de suprimentos

A integração e a entrega contínuas (CI/CD, na sigla em inglês) oferecem um mecanismo para disponibilizar a funcionalidade mais recente com rapidez aos clientes. Para ajudar a evitar ataques de mineração de criptomoedas ao pipeline, faça uma análise de código e monitore o pipeline em busca de ataques maliciosos.

Implemente a autorização binária para garantir que todas as imagens sejam assinadas por autoridades confiáveis durante o processo de desenvolvimento e, em seguida, aplique a validação de assinatura ao implantar as imagens.

Mova as verificações de segurança o mais cedo possível no processo de CI/CD (às vezes chamada de mudança para a esquerda). Para mais informações, consulte Mudança para a esquerda na segurança: proteger cadeias de suprimentos de software. Para informações sobre como configurar uma cadeia de suprimentos segura com o GKE, consulte Segurança da cadeia de suprimentos de software.

Gerenciar secrets e chaves

Um vetor de ataque importante para ataques de mineração de criptomoedas não autorizados é uma chave secreta que não é segura ou vazou. Nesta seção, você verá as práticas recomendadas que podem ser usadas para ajudar a proteger seus secrets e chaves de criptografia.

Alternar chaves de criptografia regularmente

Verifique se todas as chaves de criptografia são trocadas regularmente. Se o Cloud KMS gerenciar suas chaves de criptografia, será possível alternar as chaves de criptografia automaticamente.

Se você usa contas de serviço que têm pares de chaves gerenciadas pelo Google, as chaves também serão alternadas automaticamente.

Evite fazer o download de secrets

Os secrets expostos são um vetor de ataque importante para invasores. Se possível, não faça o download das chaves de criptografia ou outros secrets, incluindo as chaves de contas de serviço. Se você precisar fazer o download das chaves, verifique se sua organização tem um processo de rotação de chaves em vigor.

Se você estiver usando o GitHub ou outro repositório público, evite vazamento de credenciais. Implemente ferramentas como a verificação secreta, que avisa sobre secrets expostos nos seus repositórios GitHub. Para impedir que as chaves sejam confirmadas nos repositórios do GitHub, use ferramentas como git-secrets.

Use soluções de gerenciamento de secrets, como Gerenciador de secrets e Hashicorp Vault para armazenar seus secrets, fazer a rotação deles regularmente e aplicar o menor privilégio de dados.

Detecte atividade anômala

Para monitorar atividades anômalas, configure ferramentas de monitoramento do Google Cloud e de terceiros e defina alertas. Por exemplo, configure alertas com base na atividade do administrador nas informações de geração de registros de auditoria do Compute Engine e nos registros de auditoria do GKE.

Além disso, use o Event Threat Detection no Security Command Center para identificar ameaças baseadas em atividades do administrador, mudanças no Grupos do Google e mudanças nas permissões do IAM. Use a Detecção de ameaças a máquinas virtuais no Security Command Center para identificar ameaças relacionadas às suas VMs do Compute Engine. Para mais informações sobre os serviços do Security Command Center, consulte os Níveis de serviço do Security Command Center.

Para ajudar a detectar ameaças baseadas em rede, como malware, configure o Cloud IDS.

Participe do Programa de Proteção de Mineração de Criptomoedas do Security Command Center

Se você é cliente Premium do Security Command Center e usa o Compute Engine, participe do Programa de Proteção de Mineração de Criptomoedas do Security Command Center. Esse programa permite custear a VM do Compute Engine em relação a ataques de mineração de criptomoedas não detectados e não autorizados no seu ambiente de VM do Compute Engine. É preciso implementar as práticas recomendadas para detecção de mineração de criptomoedas, e algumas delas se sobrepõem a outras descritas nesta página.

Atualizar o plano de resposta a incidentes

Verifique se o plano de resposta a incidentes e os manuais fornecem orientações sobre como a organização responderá a ataques de mineração de criptomoedas. Por exemplo, verifique se o plano inclui o seguinte:

  • Como registrar um caso de suporte no Cloud Customer Care e entrar em contato com seu gerente técnico de contas (TAM) do Google. Se você não tiver uma conta de suporte, revise os planos de suporte disponíveis e crie um.
  • Como distinguir entre cargas de trabalho legítimas de computação de alto desempenho (HPC, na sigla em inglês) e ataques de mineração de criptomoeda. Por exemplo, é possível marcar quais projetos têm a HPC ativada e configurar alertas para aumentos de custo inesperados.
  • como lidar com credenciais comprometidas do Google Cloud;
  • Como colocar sistemas infectados em quarentena e restaurar backups íntegros.
  • Quem na sua organização precisa ser notificado para investigar e responder ao ataque.
  • Quais informações precisam ser registradas para suas atividades retrospectivas.
  • Como verificar se as atividades de remediação removeram efetivamente as atividades de mineração e resolveram a vulnerabilidade inicial que levou ao ataque.
  • Como responder a um alerta enviado pelo Cloud Customer Care. Para ver mais informações, consulte Perguntas frequentes sobre violações de política.

Para mais informações, consulte Responder e recuperar ataques.

Implementar um plano de recuperação de desastres

Para se preparar para um ataque de mineração de criptomoedas, conclua os planos de continuidade de negócios e planos de recuperação de desastres, crie um manual de resposta a incidentes e faça exercícios de mesa.

Se a mineração não autorizada de criptomoedas ocorrer, verifique se é possível lidar com o vetor de ameaça que causou a violação inicial e se é possível reconstruir o ambiente a partir de um estado conhecido. Seu plano de recuperação de desastres precisa fornecer a capacidade de determinar o que é um bom estado conhecido para que o invasor não possa usar repetidamente as mesmas vulnerabilidades para explorar seus recursos.

A seguir