Configura Google Security Operations con VMware Engine

En este documento, se describe cómo configurar Google Security Operations (Google SecOps) para mejorar la detección, la investigación y la respuesta a las amenazas de seguridad cibernética de las máquinas virtuales (VM) que se ejecutan en VMware Engine. Además, Google SecOps puede analizar la telemetría de tu infraestructura de VMware y otros Google Cloud servicios compatibles.

Descripción general

Google SecOps es un servicio en la nube, creado como una capa especializada sobre la infraestructura de Google, diseñado para que las empresas retengan, analicen y busquen de forma privada las grandes cantidades de telemetría de seguridad y de red que generan. Google SecOps normaliza, indexa, correlaciona y analiza los datos para proporcionar un análisis y contexto instantáneos sobre la actividad riesgosa o sospechosa.

Mecanismos de transferencia de datos para Google SecOps

Google SecOps ofrece varias vías para la transferencia de datos, como se detalla en la documentación de transferencia de Google SecOps. El ejemplo de configuración de esta guía se enfoca en los siguientes puntos de integración clave dentro de una arquitectura representativa:

  • Registros del sistema de VMs y cargas de trabajo: Para capturar registros que provienen de VMs y cargas de trabajo, existen varios patrones de arquitectura. En el ejemplo de configuración de esta guía, se usa un agente de OpenTelemetry BindPlane implementado directamente dentro de estas máquinas virtuales. Este método proporciona una forma flexible y estandarizada de recopilar y reenviar registros del sistema.

  • Google Cloud Registros: Además de los entornos virtualizados, la mayoría de los proyectos de clientes usan una variedad de servicios de Google Cloud (sin incluir VMware Engine en este contexto específico). Para obtener una visibilidad exhaustiva de la detección de amenazas, los registros de estos servicios compatibles se pueden canalizar a Google SecOps. En el siguiente ejemplo de configuración, se emplea el mecanismo de transferencia directa y se configuran los filtros de Cloud Logging para enrutar de forma selectiva los datos de registro relevantes.

Configura Google Security Operations con VMware Engine

Para configurar Google Security Operations con VMware Engine, completa los siguientes pasos:

  1. Reenvía los registros del sistema de la carga de trabajo
  2. Cómo crear reglas personalizadas
  3. Reenvía Google Cloud los registros de Cloud

Reenvía los registros del sistema de la carga de trabajo

Para reenviar los registros del sistema de cargas de trabajo de las VMs que se ejecutan en VMware Engine a Google SecOps, puedes usar un agente de recopilación de OpenTelemetry que se ejecute dentro de las cargas de trabajo. Los pasos son los siguientes:

  1. Sigue las instrucciones del agente de Bindplane antes de comenzar para instalar el agente y descargar el archivo de autenticación de transferencia de SecOps de Google. Puedes descargar el archivo de autenticación de Google SecOps desde el portal de Google SecOps.
  2. Verifica la configuración del firewall para asegurarte de que los puertos relevantes estén abiertos.
  3. Instala el agente de Bindplane siguiendo las instrucciones para tu SO, ya sea Linux o Windows.
  4. Completa los pasos para configurar el agente. Ten en cuenta los siguientes detalles mientras completas estos pasos:

    • En la sección Receptor, se especifican los registros que el agente debe recopilar y enviar a Google SecOps.
    • La sección Exportador especifica el destino al que los agentes deben enviar los registros.
    • En esta tarea, se usa el exportador de Google SecOps, que envía los registros directamente a la API de transferencia de Google SecOps.
  5. Consulta los ejemplos de configuración de recopilación de registros adicionales para ver archivos de configuración de muestra que puedes usar. El siguiente es un ejemplo específico para recopilar registros de eventos de Windows (aplicación, seguridad y sistema) y enviarlos a Google SecOps. Usa el formato de configuración del recopilador de OpenTelemetry:

    receivers:
    windowseventlog/source001HZ7NFAB5HZY6TPMGEYRN4XGZ_application:
        attributes:
           log_type: windows_event.application
        channel: application
        max_reads: 100
        poll_interval: 1s
        raw: true
        start_at: end
    windowseventlog/source001HZ7NFAB5HZY6TPMGEYRN4XGZ_security:
        attributes:
           log_type: windows_event.security
        channel: security
        max_reads: 100
        poll_interval: 1s
        raw: true
        start_at: end
    windowseventlog/source001HZ7NFAB5HZY6TPMGEYRN4XGZ_system:
        attributes:
           log_type: windows_event.system
        channel: system
        max_reads: 100
        poll_interval: 1s
        raw: true
        start_at: end
    processors:
    resourcedetection/source0_01HZ7NFAB5HZY6TPMGEYRN4XGZ:
        detectors:
            -   system
        system:
            hostname_sources:
                 -   os
    transform/source001HZ7NFAB5HZY6TPMGEYRN4XGZprocessor0_logs:
        error_mode: ignore
        log_statements:
            -   context: log
              statements:
                  -   set(attributes["chronicle_log_type"], "WINEVTLOG") where true
    exporters:
    chronicle/NA-SDL:
        compression: none
        creds: '{  "type": "service_account",
            "project_id": "malachite-previewamericassdl",
            "private_key_id": "a9c8d8f0b081c09bcf92621804ba19fc6529ecce",
            "private_key": "----BEGIN PRIVATE KEY-----abcdefg-----END PRIVATE KEY-----\n",
            "client_email": "previewamericassdl-1710772997@malachite-previewamericassdl.iam.gserviceaccount.com",
            "client_id": "114604545528934473681",
            "auth_uri": "https://accounts.google.com/o/oauth2/auth",
            "token_uri": "https://oauth2.googleapis.com/token",
            "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
            "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/previewamericassdl-1710772997%40malachite-previewamericassdl.iam.gserviceaccount.com",
            "universe_domain": "googleapis.com" }'
        customer_id: a556547c-1cff-43ef-a2e4-cf5b12a865df
        endpoint: malachiteingestion-pa.googleapis.com
        ingestion_labels:
            env: takeshi
        log_type: CATCH_ALL
        namespace: null
        raw_log_field: body
        retry_on_failure:
            enabled: true
            initial_interval: 5s
            max_elapsed_time: 300s
            max_interval: 30s
        sending_queue:
            enabled: true
            num_consumers: 10
            queue_size: 5000
            storage: file_storage/NA-SDL
    extensions:
    file_storage/NA-SDL:
        compaction:
            directory: $OIQ_OTEL_COLLECTOR_HOME/storage
            on_rebound: true
        directory: $OIQ_OTEL_COLLECTOR_HOME/storage
    service:
    extensions:
        -   file_storage/NA-SDL
    pipelines:
        logs/source001HZ7NFAB5HZY6TPMGEYRN4XGZ_NA-SDL-0:
            receivers:
                -   windowseventlog/source001HZ7NFAB5HZY6TPMGEYRN4XGZ_application
                -   windowseventlog/source001HZ7NFAB5HZY6TPMGEYRN4XGZ_security
                -   windowseventlog/source001HZ7NFAB5HZY6TPMGEYRN4XGZ_system
            processors:
                -   resourcedetection/source0_01HZ7NFAB5HZY6TPMGEYRN4XGZ
                -   transform/source001HZ7NFAB5HZY6TPMGEYRN4XGZprocessor0_logs
            exporters:
                -   chronicle/NA-SDL

  6. Reinicia el recopilador una vez que se complete la configuración y verifica que los registros se propaguen en el panel de SecOps de Google.

Crea reglas personalizadas para la detección de amenazas

Google SecOps proporciona reglas y detección seleccionadas y predeterminadas diseñadas para identificar amenazas de seguridad cibernética de manera eficaz. Además de las funciones predeterminadas, puedes crear reglas personalizadas para generar alertas adaptadas a un entorno específico y sus problemas de seguridad. Para una detección de amenazas más sofisticada, Google SecOps permite el uso de varias reglas de eventos. Esto permite hacer un seguimiento y correlacionar eventos de seguridad relacionados a lo largo del tiempo, lo que facilita la identificación de patrones de ataque complejos que pueden no ser evidentes en incidentes aislados.

Reenvía Google Cloud registros de Cloud

Para configurar la transferencia de Google Cloud datos a Google SecOps con la transferencia directa, haz lo siguiente:

  1. Sigue los pasos que se indican en Cómo transferir Google Cloud datos a Google SecOps para configurar los registros.
  2. Habilita la opción para transferir y analizar datos desde Cloud Logging en la pestaña Configuración de transferencia global.
  3. Revisa la lista de Google Cloud servicios compatibles para la transferencia de registros y así identificar los Google Cloud servicios más importantes para tus necesidades de supervisión de seguridad. Consulta Cómo exportar registros de gcp_name.
  4. Modifica el filtro de exportación predeterminado según sea necesario en la pestaña Configuración del filtro de exportación para incluir los registros específicos que necesites. El siguiente ejemplo es una copia del filtro de exportación que se usó para este documento:
    log_id("dns.googleapis.com/dns_queries") OR log_id("cloudaudit.googleapis.com/activity") OR log_id("cloudaudit.googleapis.com/system_event") OR
    ( log_id("cloudaudit.googleapis.com/data_access")
    AND NOT protoPayload.methodName =~ "^storage.(buckets|objects).(get|list)$"
    AND NOT protoPayload.request.cmd = "select" ) OR
    log_id("cloudaudit.googleapis.com/policy") OR
    log_id("cloudaudit.googleapis.com/access_transparency") OR
    log_id("compute.googleapis.com/nat_flows") OR
    log_id("compute.googleapis.com/firewall") OR
    log_id("requests") OR
    logName =~ "^projects/[\w-]+/logs/syslog$" OR
    logName =~ "^projects/[\w-]+/logs/authlog$" OR
    log_id("securelog") OR
    log_id("sysmon.raw") OR
    logName =~ "^projects/[\w-]+/logs/windows_event_log$" OR
    log_id("windows_event_log") OR
    log_id("events") OR
    log_id("stdout") OR
    log_id("stderr") OR
    log_id("audit_log") OR
    log_id("recaptchaenterprise.googleapis.com/assessment") OR
    log_id("recaptchaenterprise.googleapis.com/annotation") OR
    log_id("cloudaudit.googleapis.com/activity")

¿Qué sigue?