Configurer Google Security Operations avec VMware Engine

Ce document explique comment configurer Google Security Operations (Google SecOps) pour améliorer la détection, l'analyse et la réponse aux menaces de cybersécurité pour les machines virtuelles (VM) exécutées sur VMware Engine. De plus, Google SecOps peut analyser les données télémétriques de votre infrastructure VMware et d'autres services compatibles. Google Cloud

Présentation

Google SecOps est un service cloud, conçu comme une couche spécialisée sur l'infrastructure Google, qui permet aux entreprises de conserver, d'analyser et de rechercher de manière privée les grandes quantités de télémétrie de sécurité et de réseau qu'elles génèrent. Google SecOps normalise, indexe, corrèle et analyse les données pour fournir une analyse instantanée et du contexte sur les activités à risque ou suspectes.

Mécanismes d'ingestion de données pour Google SecOps

Google SecOps propose plusieurs voies d'ingestion de données, comme indiqué dans la documentation sur l'ingestion Google SecOps. L'exemple de configuration de ce guide se concentre sur les principaux points d'intégration suivants dans une architecture représentative:

  • Journaux système des VM et des charges de travail: plusieurs modèles d'architecture existent pour capturer les journaux provenant des VM et des charges de travail. L'exemple de configuration de ce guide utilise un agent OpenTelemetry BindPlane déployé directement dans ces machines virtuelles. Cette méthode fournit un moyen flexible et standardisé de collecter et de transmettre les journaux système.

  • JournauxGoogle Cloud : en plus des environnements virtualisés, la plupart des projets client utilisent une gamme de services Google Cloud (à l'exception de VMware Engine dans ce contexte spécifique). Pour obtenir une visibilité complète sur la détection des menaces, les journaux de ces services compatibles peuvent être acheminés vers Google SecOps. L'exemple de configuration qui suit utilise le mécanisme d'ingestion directe, en configurant des filtres Cloud Logging pour acheminer de manière sélective les données de journal pertinentes.

Configurer Google Security Operations avec VMware Engine

Pour configurer Google Security Operations avec VMware Engine, procédez comme suit:

  1. Transférer les journaux système de la charge de travail
  2. Créer des règles personnalisées
  3. Transférer les journaux Google Cloud cloud

Transférer les journaux du système de charge de travail

Pour transférer les journaux système de la charge de travail des VM exécutées dans VMware Engine vers Google SecOps, vous pouvez utiliser un agent de collecte OpenTelemetry exécuté dans les charges de travail. Les étapes sont les suivantes :

  1. Suivez les instructions de l'agent Bindplane avant de commencer pour installer l'agent et télécharger le fichier d'authentification d'ingestion Google SecOps. Vous pouvez télécharger le fichier d'authentification Google SecOps sur le portail Google SecOps.
  2. Vérifiez la configuration du pare-feu pour vous assurer que les ports de pare-feu concernés sont ouverts.
  3. Installez l'agent Bindplane en suivant les instructions pour votre système d'exploitation, Linux ou Windows.
  4. Suivez la procédure pour configurer l'agent. Notez les informations suivantes lorsque vous effectuez ces étapes:

    • La section Récepteur indique les journaux que l'agent doit collecter et envoyer à Google SecOps.
    • La section Exporter spécifie la destination à laquelle les agents doivent envoyer les journaux.
    • Cette tâche utilise l'exportateur Google SecOps, qui envoie les journaux directement à l'API d'ingestion Google SecOps.
  5. Consultez les exemples de configuration de collecte des journaux supplémentaires pour obtenir des exemples de fichiers de configuration que vous pouvez utiliser. Voici un exemple spécifique de collecte des journaux des événements Windows (application, sécurité et système) et de leur envoi à Google SecOps. Il utilise le format de configuration du collecteur 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. Redémarrez le collecteur une fois la configuration terminée, puis vérifiez que les journaux sont renseignés dans le tableau de bord Google SecOps.

Créer des règles personnalisées pour la détection des menaces

Google SecOps fournit des règles et une détection sélectionnées par défaut, conçues pour identifier efficacement les menaces de cybersécurité. En plus des fonctionnalités par défaut, vous pouvez créer des règles personnalisées pour générer des alertes adaptées à un environnement spécifique et à ses problèmes de sécurité. Pour une détection des menaces plus sophistiquée, Google SecOps permet d'utiliser plusieurs règles d'événement. Cela permet de suivre et de corréler les événements de sécurité associés au fil du temps, ce qui facilite l'identification de modèles d'attaque complexes qui peuvent ne pas être apparents à partir d'incidents isolés.

Transférer des Google Cloud journaux cloud

Pour configurer l'ingestion de données Google Cloud dans Google SecOps à l'aide de l'ingestion directe, procédez comme suit:

  1. Pour configurer les journaux, suivez la procédure décrite dans Ingérer des données Google Cloud dans Google SecOps.
  2. Activez l'ingestion et l'analyse des données à partir de Cloud Logging dans l'onglet Paramètres d'ingestion globaux.
  3. Consultez la liste des services Google Cloud compatibles pour l'ingestion de journaux afin d'identifier les Google Cloud services les plus importants pour vos besoins de surveillance de la sécurité. Consultez Exporter les journaux gcp_name.
  4. Modifiez le filtre d'exportation par défaut si nécessaire dans l'onglet Paramètres du filtre d'exportation pour inclure les journaux spécifiques dont vous avez besoin. L'exemple suivant est une copie du filtre d'exportation utilisé pour ce document:
    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")

Étape suivante