Coleta e segurança de dados do Discovery client

Este documento aborda dúvidas e preocupações sobre a instalação do cliente de descoberta da Central de migração em data centers. Ele enfatiza a importância da segurança, conformidade e desempenho ao descobrir e coletar dados dos ativos de TI do cliente em ambientes altamente regulamentados.

Como a coleta de dados é realizada

O discovery client usa vários métodos para coletar dados de máquinas alvo. Os dados coletados variam de acordo com o método. No nível do convidado, os dados são coletados usando os scripts de coleta. No nível do hipervisor, os dados são coletados usando as APIs da plataforma.

Serviço e processo do discovery client

O cliente de descoberta é executado como um serviço chamado GoogleMCDC em um processo chamado mcdc_service.exe.

Scripts de coleções

Todos os métodos de coleta de convidados usados pelo cliente de descoberta executam scripts de coleta nas máquinas de destino. Confira os scripts reais usados para a coleta nos links abaixo:

Os scripts de coleta armazenam os resultados em um arquivo de arquivamento (ZIP ou TAR) que o cliente de descoberta recupera.

Mecanismos de coleta

O Discovery Client pode usar um ou mais mecanismos de coleta descritos nas seções a seguir para coletar dados das máquinas de destino.

SSH (Linux)

Durante a coleta de SSH, ocorre o seguinte processo:

  1. Uma sessão SSH é iniciada entre a máquina coletora e o servidor de destino.
  2. Um diretório temporário é criado em ~/.mcdc-temp/.
  3. O script de coleta é copiado para esse diretório.
  4. O script de coleta é executado.
  5. O arquivo de resultado é buscado usando o SCP.
  6. O diretório temporário é limpo.

WMI (Windows)

Durante a coleta do WMI no Windows, ocorre o seguinte processo:

  1. Uma conexão WMI é iniciada na máquina de destino.
  2. Uma chave de registro temporária (volátil) é criada na máquina de destino em HKLM:\SOFTWARE\Google\Collector\data.
  3. O script de coleta é copiado para a chave de registro.
  4. Um diretório temporário é criado em C:\temp.
  5. O script de coleta é gravado no diretório temporário.
  6. O script de coleta é executado.
  7. O resultado da coleta é gravado na chave de registro volátil.
  8. O resultado é copiado para a máquina coletora.

Ferramentas do convidado do VMware (Linux e Windows)

Durante a coleta da VMware para Linux e Windows, ocorre o seguinte processo:

  1. Um diretório temporário é criado usando as ferramentas de convidado do VMware.
  2. O script de coleta é copiado para esse diretório.
  3. O script de coleta é executado.
  4. O arquivo de resultados é buscado usando ferramentas de convidados do VMware.
  5. O diretório temporário é limpo.

Coleta de dados periódica

O discovery client coleta dados de todos os servidores configurados de maneira periódica. Há dois tipos de coleta:

  • Coleção completa:é executada uma vez por dia para cada servidor. Essa coleta executa o script de coleta completo, que coleta várias informações na VM, como hardware, ambiente, software instalado, processos em execução e muito mais.
  • Coleta de performance:é executada a cada 10 minutos em cada servidor. Essa coleção executa o script de coleta de desempenho que coleta dados sobre a CPU, a memória, a rede e a utilização do disco.

Quais dados são coletados

Os scripts de coleta coletam dados sobre as VMs de destino para entender como elas são configuradas e quais recursos elas usam. Isso ajuda a avaliar e planejar a migração para a nuvem.

A lista a seguir descreve os dados coletados:

  • Informações do sistema: informações básicas que são cruciais para determinar o tamanho da VM, os requisitos de desempenho e as dependências de hardware ou drivers específicos. Ele inclui:
    • Sistema operacional (versão e lançamento)
    • Hardware (CPU, memória, detalhes da BIOS)
    • Configuração de rede (interfaces de rede, endereços IP, tabelas de roteamento)
    • Armazenamento (unidades de disco, partições, pontos de montagem)
  • Software e serviços instalados: os scripts coletam uma lista de pacotes instalados e serviços em execução para entender a pilha de software da VM e a função dela. Ele inclui:
    • Servidores da Web (Apache, Tomcat, JBoss)
    • Bancos de dados (as evidências do SQL Server são coletadas no script do Windows)
    • Outros aplicativos que podem exigir configurações específicas durante a migração.
  • Configurações do aplicativo: os scripts também reúnem arquivos de configuração para servidores da Web (IIS, Apache, Tomcat, JBoss, WordPress). Isso ajuda a entender as configurações e dependências específicas desses aplicativos, o que é vital para garantir uma transição tranquila para o ambiente de nuvem.
  • Detecção do ambiente do VMWare e da nuvem: os scripts do Linux e do Windows tentam detectar se a VM já está em execução em um ambiente de nuvem (AWS ou Google Cloud) ou em um cluster do VCenter. Para isso, eles fazem solicitações aos servidores de metadados desses provedores de nuvem. Se a VM já estiver na nuvem, os scripts vão coletar metadados relevantes, como o ID, o tipo e outros detalhes da instância.
  • Métricas de performance:os scripts de coleta de performance medem a utilização de recursos. Isso inclui o seguinte:
    • CPU
    • Memória
    • Operações de E/S
    • Rede
  • Conexões de rede:os scripts coletam conexões abertas para ajudar a criar uma imagem das diferentes dependências de recursos de rede.

Impacto no desempenho das máquinas de destino

Avaliação do uso de recursos

A utilização de recursos dos scripts de coleta na máquina de destino depende de parâmetros como o número de processos em execução, o número de aplicativos implantados, o número de conexões de rede ativas e outros.

No Windows, o script de coleta é executado usando a prioridade mais baixa disponível pela API de linha de execução. No Linux, um valor de nice igual a 5 é usado para minimizar a interferência nas cargas de trabalho de produção e garantir que elas tenham prioridade maior que o script de coleta.

Uma coleta típica pode levar de 5 a 20 segundos de uso de CPU de núcleo único em alta em uma máquina sem carga. Pode levar mais tempo se outras cargas de trabalho estiverem presentes, porque elas têm prioridade mais alta.

Estratégias de mitigação

O cliente de descoberta fornece um mecanismo para impedir a coleta de servidores específicos em horários específicos. Esse recurso pode ser usado para impedir a coleta de servidores que executam cargas de trabalho críticas durante os horários de pico.

Considerações sobre segurança

Autenticação e autorização

Comunicação com as máquinas de destino

  • O cliente de descoberta usa canais seguros para autenticar e se comunicar com as máquinas de destino. Isso inclui SSH, WMI, ferramentas VMware e conexões do VCenter. O cliente de descoberta usa as medidas de segurança integradas como parte desses protocolos.
  • No SSH, o cliente de descoberta permite a autenticação baseada em chave e nome de usuário e senha. Para conferir uma lista completa dos tipos de pares de chaves aceitos, consulte Requisitos de recursos de destino.

Comunicação com o Google Cloud

  • Os discovery clients registrados se comunicam com a Migration Center do Google Cloud durante a operação normal. A comunicação acontece por meio de uma conta de serviço com a vinculação de papel roles/migrationcenter.discoveryClient. A conta de serviço é criada automaticamente ou fornecida pelo usuário durante o processo de registro.
  • A chave privada da conta de serviço é criptografada na máquina cliente de descoberta usando o mecanismo de criptografia descrito na seção a seguir.
  • Toda a comunicação com o Google Cloud é autenticada usando essa conta de serviço e criptografada com SSL/TLS.

Criptografia de dados

  • Em trânsito:todos os canais de comunicação do cliente de descoberta usam criptografia para proteger os dados em trânsito. Isso inclui a comunicação com as máquinas de destino usando os diferentes protocolos (SSH/WMI) e a comunicação com o Google Cloud usando HTTPS.
  • Em repouso:o PII, o SPII e os segredos do discovery client são criptografados em repouso usando o algoritmo AES128_GCM e a DPAPI do Windows para armazenar as chaves de criptografia com segurança.

Detecção e prevenção contra invasões

Como o cliente de descoberta é usado para conectar e executar scripts em muitas VMs na sua organização, ele pode acionar alertas de EDR ou XDR. Isso depende muito da forma como as ferramentas de segurança estão configuradas e das ferramentas específicas que você está usando. Considere criar exceções para alertas e dispositivos específicos.

Geração de registros e suporte

O cliente de descoberta coleta registros durante a operação para permitir depuração e suporte. Os registros do discovery client são coletados usando dois mecanismos:

  • Registros locais:os registros são gravados em um arquivo em C:\ProgramData\Google\mcdc\logs. Os arquivos de registro são alternados e compactados.
  • Registros do Cloud:os clientes registrados também enviam os registros para o Google Cloud para que eles possam ser usados pela equipe de suporte do Google Cloud quando problemas do cliente forem relatados.