Seguridad y recopilación de datos del cliente de descubrimiento

En este documento, se abordan las inquietudes y preguntas sobre la instalación del cliente de descubrimiento de Migration Center en centros de datos. Se hace hincapié en la importancia de la seguridad, el cumplimiento y el rendimiento cuando se descubren y recopilan datos de los activos de TI de los clientes en entornos altamente regulados.

Cómo se realiza la recopilación de datos

El cliente de descubrimiento usa varios métodos para recopilar datos de las máquinas objetivo. Los datos recopilados varían según el método. A nivel del invitado, los datos se recopilan con las secuencias de comandos de recopilación; a nivel del hipervisor, los datos se recopilan con las APIs de la plataforma subyacente.

Servicio y proceso del cliente de descubrimiento

El cliente de descubrimiento se ejecuta como un servicio llamado GoogleMCDC en un proceso llamado mcdc_service.exe.

Secuencias de comandos de colección

Todos los métodos de recopilación a nivel del invitado que usa el cliente de detección ejecutan secuencias de comandos de recopilación en las máquinas de destino. Puedes revisar las secuencias de comandos reales que se usan para la recopilación en los siguientes vínculos:

Las secuencias de comandos de recopilación almacenan los resultados en un archivo (ZIP o TAR) que luego recupera el cliente de detección.

Mecanismos de recopilación

El cliente de descubrimiento puede usar uno o más de los mecanismos de recopilación que se describen en las siguientes secciones para recopilar datos de las máquinas de destino.

SSH (Linux)

Durante la recopilación de SSH, se produce el siguiente proceso:

  1. Se inicia una sesión de SSH entre la máquina recopiladora y el servidor de destino.
  2. Se crea un directorio temporal en ~/.mcdc-temp/.
  3. La secuencia de comandos de la colección se copia en ese directorio.
  4. Se ejecuta la secuencia de comandos de recopilación.
  5. El archivo de resultados se recupera con SCP.
  6. Se limpia el directorio temporal.

WMI (Windows)

De forma predeterminada, el cliente de descubrimiento usa llamadas WMI remotas para recopilar datos de las máquinas Windows de destino. Como alternativa, si habilitas la recopilación basada en secuencias de comandos, el cliente de descubrimiento copia y ejecuta una secuencia de comandos en la máquina de destino.

Durante la recopilación de WMI basada en secuencias de comandos, se produce el siguiente proceso:

  1. Se inicia una conexión WMI a la máquina de destino.
  2. Se crea una clave de registro temporal (volátil) en el equipo de destino en HKLM:\SOFTWARE\Google\Collector\data.
  3. La secuencia de comandos de recopilación se copia en la clave de registro.
  4. Se crea un directorio temporal en C:\temp.
  5. La secuencia de comandos de la colección se escribe en el directorio temporal.
  6. Se ejecuta la secuencia de comandos de recopilación.
  7. El resultado de la recopilación se escribe en la clave de registro volátil.
  8. El resultado se copia en la máquina del recopilador.

VMware Guest Tools (Linux y Windows)

Durante la recopilación de VMware para Linux y Windows, se produce el siguiente proceso:

  1. Se crea un directorio temporal con las herramientas para huéspedes de VMware.
  2. La secuencia de comandos de la colección se copia en ese directorio.
  3. Se ejecuta la secuencia de comandos de recopilación.
  4. El archivo de resultados se recupera con las herramientas para invitados de VMware.
  5. Se limpia el directorio temporal.

Recopilación de datos periódica

El cliente de descubrimiento recopila datos de todos los servidores configurados de forma periódica. Existen dos tipos de recopilación:

  • Recopilación completa: Se ejecuta una vez al día para cada servidor. Esta colección ejecuta la secuencia de comandos de recopilación completa que recopila diversa información sobre la VM, como el hardware, el entorno, el software instalado, los procesos en ejecución y mucho más.
  • Recopilación de rendimiento: Se ejecuta cada 10 minutos en cada servidor. Esta colección ejecuta la secuencia de comandos de recopilación de rendimiento que recopila datos sobre el uso de la CPU, la memoria, la red y el disco.

Qué datos se recopilan

Las secuencias de comandos de recopilación recopilan datos sobre las VMs de destino para comprender cómo están configuradas y qué recursos usan. Esto ayuda a evaluar y planificar su migración a la nube.

En la siguiente lista, se describen los datos que se recopilan:

  • Información del sistema: Es la información básica que es fundamental para determinar el tamaño de la VM, los requisitos de rendimiento y las dependencias de hardware o controladores específicos. Encontrarás la siguiente información:
    • Sistema operativo (versión y lanzamiento)
    • Hardware (CPU, memoria, detalles del BIOS)
    • Configuración de red (interfaces de red, direcciones IP, tablas de enrutamiento)
    • Almacenamiento (unidades de disco, particiones, puntos de activación)
  • Software y servicios instalados: Las secuencias de comandos recopilan una lista de los paquetes instalados y los servicios en ejecución para comprender la pila de software de la VM y su rol. Encontrarás la siguiente información:
    • Servidores web (Apache, Tomcat, JBoss)
    • Bases de datos (se recopila evidencia de SQL Server en la secuencia de comandos de Windows)
    • Otras aplicaciones que podrían requerir configuraciones específicas durante la migración
  • Configuraciones de aplicaciones: Las secuencias de comandos también recopilan archivos de configuración para servidores web (IIS, Apache, Tomcat, JBoss, WordPress). Esto ayuda a comprender la configuración y las dependencias específicas de estas aplicaciones, lo que es fundamental para garantizar una transición sin problemas al entorno de nube.
  • Detección de entornos de VMWare y de nube: Los secuencias de comandos de Linux y Windows intentan detectar si la VM ya se está ejecutando en un entorno de nube (AWS o Google Cloud) o en un clúster de vCenter. Para ello, realizan solicitudes a los servidores de metadatos de estos proveedores de servicios en la nube. Si la VM ya está en la nube, las secuencias de comandos recopilan metadatos relevantes, como el ID de instancia, el tipo de instancia y otros detalles.
  • Métricas de rendimiento: Los secuencias de comandos de recopilación de rendimiento miden el uso de recursos. Esto incluye lo siguiente:
    • CPU
    • Memoria
    • Operaciones de E/S
    • Redes
  • Conexiones de red: Las secuencias de comandos recopilan conexiones abiertas para ayudar a crear una imagen de las diferentes dependencias de los recursos de red.

Impacto en el rendimiento de las máquinas de destino

Evaluación del uso de recursos

El uso de recursos de los secuencias de comandos de recopilación en la máquina de destino depende de parámetros como la cantidad de procesos en ejecución, la cantidad de aplicaciones implementadas, la cantidad de conexiones de red activas y otros.

En Windows, la secuencia de comandos de recopilación se ejecuta con la prioridad más baja disponible a través de la API de subprocesos. En Linux, se usa un valor de nice de 5 para minimizar la interferencia con las cargas de trabajo de producción y garantizar que tengan una mayor prioridad que la secuencia de comandos de recopilación.

Una recopilación típica puede tardar entre 5 y 20 segundos de uso elevado de CPU de un solo núcleo en una máquina sin carga. Puede tardar más si hay otras cargas de trabajo presentes, ya que estas tienen mayor prioridad.

Estrategias de mitigación

El cliente de descubrimiento proporciona un mecanismo para evitar la recopilación de servidores específicos durante horas específicas. Esta función se puede usar para evitar la recopilación de datos de servidores que ejecutan cargas de trabajo críticas durante las horas pico.

Consideraciones de seguridad

Autenticación y autorización

Comunicación con las máquinas de destino

  • El cliente de descubrimiento usa canales seguros para autenticarse y comunicarse con las máquinas de destino. Esto incluye las conexiones de SSH, WMI, VMware Tools y vCenter. El cliente de detección usa las medidas de seguridad integradas como parte de estos protocolos.
  • En SSH, el cliente de detección permite la autenticación basada en claves y en nombre de usuario y contraseña. Para obtener una lista completa de los tipos de pares de claves admitidos, consulta Requisitos de los activos de destino.

Comunicación con Google Cloud

  • Los clientes de descubrimiento registrados se comunican con Migration Center de Google Cloud durante su funcionamiento normal. La comunicación se realiza a través de una cuenta de servicio con la vinculación de rol roles/migrationcenter.discoveryClient. La cuenta de servicio se crea automáticamente o la proporciona el usuario durante el proceso de registro.
  • La clave privada de la cuenta de servicio se encripta en la máquina cliente de descubrimiento con el mecanismo de encriptación que se describe en la siguiente sección.
  • Toda la comunicación con Google Cloud se autentica con esta cuenta de servicio y se encripta con SSL/TLS.

Encriptación de datos

  • En tránsito: Todos los canales de comunicación del cliente de descubrimiento usan encriptación para proteger los datos en tránsito. Esto incluye la comunicación con las máquinas de destino a través de los diferentes protocolos (SSH/WMI) y la comunicación con Google Cloud a través de HTTPS.
  • En reposo: La PII, la SPII y los secretos del cliente de descubrimiento se encriptan en reposo con el algoritmo AES128_GCM y la DPAPI de Windows para almacenar de forma segura las claves de encriptación.

Detección y prevención de intrusiones

Como el cliente de descubrimiento se usa para conectar y ejecutar secuencias de comandos en muchas VMs de tu organización, es posible que active alertas de EDR o XDR. Esto depende en gran medida de la forma en que se configuran tus herramientas de seguridad y de las herramientas específicas que utilizas. Ten en cuenta la posibilidad de crear exenciones para las alertas y los dispositivos específicos.

Registro y capacidad de asistencia

El cliente de descubrimiento recopila registros durante su funcionamiento para permitir la depuración y la asistencia. Los registros del cliente de descubrimiento se recopilan con dos mecanismos:

  • Registros locales: Los registros se escriben en el archivo C:\ProgramData\Google\mcdc\logs. Los archivos de registro se rotan y comprimen.
  • Registros de Cloud: Los clientes registrados también envían los registros a Google Cloud para que el equipo de asistencia al cliente los pueda usar cuando se informen problemas de los clientes. Google Cloud