Collecter les journaux Voltage

Compatible avec :

Ce document explique comment ingérer des journaux Voltage SecureMail dans Google Security Operations à l'aide de l'agent Bindplane.

Voltage SecureMail est une plate-forme de chiffrement des e-mails qui génère des messages syslog pour les événements de chiffrement/déchiffrement des e-mails, l'application des règles et les actions administratives.

Avant de commencer

Assurez-vous de remplir les conditions suivantes :

  • Une instance Google SecOps
  • Windows Server 2016 ou version ultérieure, ou hôte Linux avec systemd
  • Connectivité réseau entre l'agent Bindplane et le serveur Voltage SecureMail
  • Si vous exécutez l'agent derrière un proxy, assurez-vous que les ports du pare-feu sont ouverts conformément aux exigences de l'agent BindPlane.
  • Accès privilégié à la console de gestion Voltage SecureMail

Obtenir les identifiants Google SecOps pour l'agent Bindplane

Pour authentifier l'agent Bindplane auprès de Google SecOps, choisissez l'une des méthodes suivantes :

  • Nouveaux déploiements : utilisez l'API Chronicle (option 1).
  • Anciens déploiements : continuez à utiliser le fichier d'authentification d'ingestion (option 2) jusqu'à l'arrêt de l'API Ingestion le 20 juillet 2027.
  1. Connectez-vous à la consoleGoogle Cloud et sélectionnez le projet Google Cloud associé à votre instance Google SecOps.
  2. Accédez à IAM et administration > Comptes de service.
  3. Cliquez sur Créer un compte de service.
  4. Fournissez les informations de configuration suivantes :
    • Nom du compte de service : saisissez un nom pour le compte (par exemple, bindplane-ingest).
    • Description du compte de service : saisissez une description (par exemple, Bindplane agent log ingestion).
  5. Cliquez sur Créer et continuer.
  6. Dans la section Autoriser ce compte de service à accéder au projet, cliquez sur Sélectionner un rôle, puis sélectionnez Éditeur Chronicle.
  7. Cliquez sur Continue (Continuer), puis sur Done (OK).
  8. Cliquez sur le compte de service que vous avez créé, puis accédez à l'onglet Clés.
  9. Cliquez sur Ajouter une clé > Créer une clé.
  10. Sélectionnez JSON, puis cliquez sur Créer. Le fichier de clé est téléchargé sur votre ordinateur.
  11. Enregistrez le fichier de clé sous le nom ingestion-auth.json dans le répertoire du collecteur BindPlane (/opt/observiq-otel-collector/ingestion-auth.json sous Linux ou C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json sous Windows), ou mettez à jour creds_file_path dans config.yaml pour qu'il corresponde au chemin d'accès où vous l'enregistrez.
  12. Accédez à IAM et administration > Paramètres, puis copiez le numéro du projet. Vous en aurez besoin pour la configuration de l'exportateur.

Option 2 : Télécharger le fichier d'authentification d'ingestion (ancienne méthode)

  1. Connectez-vous à la console Google SecOps.
  2. Accédez à Paramètres SIEM> Agents de collecte.
  3. Téléchargez le fichier d'authentification d'ingestion.
  4. Enregistrez le fichier de manière sécurisée sur le système où l'agent BindPlane sera installé.

Obtenir l'ID client Google SecOps

  1. Connectez-vous à la console Google SecOps.
  2. Accédez à Paramètres SIEM > Profil.
  3. Copiez et enregistrez le numéro client dans la section Détails de l'organisation.

Installer l'agent BindPlane

Installez l'agent BindPlane sur votre système d'exploitation Windows ou Linux en suivant les instructions ci-dessous.

Installation de Windows

  1. Ouvrez l'invite de commande ou PowerShell en tant qu'administrateur.
  2. Exécutez la commande suivante :

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    
  3. Attendez la fin de l'installation.

  4. Vérifiez l'installation en exécutant la commande suivante :

    sc query observiq-otel-collector
    

    Le service doit s'afficher comme étant EN COURS D'EXÉCUTION.

Installation sous Linux

  1. Ouvrez un terminal avec des droits d'accès racine ou sudo.
  2. Exécutez la commande suivante :

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    
  3. Attendez la fin de l'installation.

  4. Vérifiez l'installation en exécutant la commande suivante :

    sudo systemctl status observiq-otel-collector
    

    Le service doit s'afficher comme actif (en cours d'exécution).

Autres ressources d'installation

Pour en savoir plus sur les options d'installation et le dépannage, consultez le guide d'installation de l'agent Bindplane.

Configurer l'agent Bindplane pour ingérer les journaux Syslog et les envoyer à Google SecOps

Localiser le fichier de configuration

  • Linux :

    sudo nano /opt/observiq-otel-collector/config.yaml
    
  • Windows :

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

Modifiez le fichier de configuration

  • Remplacez l'intégralité du contenu de config.yaml par la configuration suivante :

    receivers:
      udplog:
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/voltage:
        protocol: https
        # Region of your instance, for example us, europe, asia-southeast1
        location: <LOCATION>
        # Project number of the Google Cloud project linked to the instance
        project: '<PROJECT_NUMBER>'
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: '<customer_id>'
        endpoint: chronicle.googleapis.com
        log_type: VOLTAGE
        raw_log_field: body
    
    service:
      pipelines:
        logs/voltage_to_chronicle:
          receivers:
            - udplog
          exporters:
            - chronicle/voltage
    

Paramètres de configuration

Remplacez les espaces réservés suivants :

  • Configuration du récepteur :

    • listen_address : adresse IP et port d'écoute :
      • 0.0.0.0 pour écouter sur toutes les interfaces (recommandé)
      • Le port 514 est le port syslog standard (nécessite un accès racine sous Linux ; utilisez 1514 pour un accès non racine).
  • Configuration de l'exportateur :

    • creds_file_path : chemin d'accès complet au fichier de clé JSON du compte de service (option 1) :
      • Linux : /opt/observiq-otel-collector/ingestion-auth.json
      • Windows : C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • customer_id : ID client copié depuis la console Google SecOps
    • location : remplacez <LOCATION> par la région de votre instance Google SecOps (par exemple, us, europe ou asia-southeast1). L'exportateur ajoute cette valeur en préfixe à chronicle.googleapis.com. Pour obtenir la liste complète, consultez Points de terminaison régionaux.
    • project : remplacez <PROJECT_NUMBER> par le numéro de projet dans IAM et administration > Paramètres.
    • endpoint : laissez la valeur définie sur chronicle.googleapis.com.

Ancien exportateur d'API d'ingestion

  • Si vous utilisez le fichier d'authentification d'ingestion de l'option 2, remplacez le bloc exporters par le code suivant. Définissez creds_file_path sur le chemin d'accès au fichier d'authentification d'ingestion. Si votre instance se trouve en dehors des États-Unis, remplacez malachiteingestion-pa.googleapis.com par votre point de terminaison régional (par exemple, europe-malachiteingestion-pa.googleapis.com).

    exporters:
      chronicle/voltage:
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: '<customer_id>'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: VOLTAGE
        raw_log_field: body
    

Enregistrez le fichier de configuration.

  • Après avoir modifié le fichier, enregistrez-le :
    • Linux : appuyez sur Ctrl+O, puis sur Enter, puis sur Ctrl+X.
    • Windows : cliquez sur Fichier > Enregistrer.

Redémarrez l'agent Bindplane pour appliquer les modifications.

  • Pour redémarrer l'agent Bindplane sous Linux, exécutez la commande suivante :

    sudo systemctl restart observiq-otel-collector
    
    1. Vérifiez que le service est en cours d'exécution :

      sudo systemctl status observiq-otel-collector
      
    2. Recherchez les erreurs dans les journaux :

      sudo journalctl -u observiq-otel-collector -f
      
  • Pour redémarrer l'agent BindPlane sous Windows, choisissez l'une des options suivantes :

    • Invite de commande ou PowerShell en tant qu'administrateur :

      net stop observiq-otel-collector && net start observiq-otel-collector
      
    • Console Services :

      1. Appuyez sur Win+R, saisissez services.msc, puis appuyez sur Entrée.
      2. Recherchez observIQ OpenTelemetry Collector.
      3. Effectuez un clic droit, puis sélectionnez Redémarrer.
      4. Vérifiez que le service est en cours d'exécution :

        sc query observiq-otel-collector
        
      5. Recherchez les erreurs dans les journaux :

        type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
        

Configurer syslog dans Voltage SecureMail

  1. Connectez-vous à la console de gestion Voltage SecureMail.
  2. Accédez à System> Syslog Settings (Système > Paramètres Syslog).
  3. Fournissez les informations de configuration suivantes :
    • Adresse du serveur : saisissez l'adresse IP de l'agent Bindplane.
    • Port : saisissez 514.
    • Protocole : sélectionnez UDP.
    • Facility (Fonction) : sélectionnez la fonction syslog appropriée.
    • Niveau de journalisation : sélectionnez le niveau de journalisation souhaité.
  4. Cliquez sur Enregistrer.

Table de mappage UDM

Champ du journal Mappage UDM Logique
attemptedAuthMethods_label additional.fields Fusionné
authTokens_label additional.fields Fusionné
elapsedTimeMillis_label additional.fields Fusionné
isUserPassSet_label additional.fields Fusionné
keyId_label additional.fields Fusionné
leadingDigits_label additional.fields Fusionné
masked_label additional.fields Fusionné
merchantId_label additional.fields Fusionné
out_label additional.fields Fusionné
phaseBit_label additional.fields Fusionné
proxyType_label additional.fields Fusionné
rollover_label additional.fields Fusionné
trailingDigits_label additional.fields Fusionné
AuthenticationMethod extensions.auth.mechanism Mappé : USER_PASSWORD → mechanism
mechanism extensions.auth.mechanism Fusionné
has_principal extensions.auth.type Mappé : true → AUTHTYPE_UNSPECIFIED
proxyConnectionIp intermediary.asset.ip Fusionné
inter_hostname intermediary.hostname Mappé directement
proxyConnectionIp intermediary.ip Fusionné
description metadata.description Mappé directement
has_principal metadata.event_type Mappé : true → USER_LOGIN, true → NETWORK_CONNECTION, true → STATUS_UPDATE
has_user metadata.event_type Mappé : true → USER_UNCATEGORIZED
prod_event_name metadata.product_event_type Mappé directement
event_id metadata.product_log_id Mappage direct
cef_product metadata.product_name Mappage direct
version metadata.product_version Mappage direct
request network.http.referral_url Mappage direct
length network.received_bytes Mappage direct
requestTimeMillis network.session_duration.nanos Mappage direct
timeMillis network.session_duration.seconds Mappage direct
sessionid network.session_id Mappage direct
cvProduct observer.application Mappage direct
cvapi_label observer.labels Fusionné
cvdevice_label observer.labels Fusionné
cvframework_label observer.labels Fusionné
cvos observer.platform Mapped: Li → LINUX, Win → WINDOWS
requestClientApplication principal.application Mappage direct
src_hostname principal.asset.hostname Mappage direct
ip principal.asset.ip Fusionné
src_ip principal.asset.ip Fusionné
src_hostname principal.hostname Mappé directement
ip principal.ip Fusionné
src_ip principal.ip Fusionné
src_port principal.port Renommé/Mappé
identity principal.user.email_addresses Mappé : (.*)@(.*) → identity
user principal.user.userid Mappé directement
username principal.user.userid Mappage direct
sec_action security_result.action Fusionné
msg security_result.description Mappé directement
CachedAuthentication_label security_result.detection_fields Fusionné
acceptBadData_label security_result.detection_fields Fusionné
algorithm_label security_result.detection_fields Fusionné
authMethodName_label security_result.detection_fields Fusionné
authTimeMillis_label security_result.detection_fields Fusionné
authType_label security_result.detection_fields Fusionné
format_label security_result.detection_fields Fusionné
fullIdentity_label security_result.detection_fields Fusionné
hsmEnabled_label security_result.detection_fields Fusionné
returnEncryptedKeyOption_label security_result.detection_fields Fusionné
returnFullIdentity_label security_result.detection_fields Fusionné
wrappedMode_label security_result.detection_fields Fusionné
severity security_result.severity Mappé : "0", "1", "2" → INFORMATIONAL, "3", "4" → LOW, "5", "6" → MEDIUM, `"7", ...
severity security_result.severity_details Mappage direct
district target.administrative_domain Mappage direct
shost target.asset.hostname Mappage direct
dst_ip target.asset.ip Fusionné
shost target.hostname Mappé directement
dst_ip target.ip Fusionné
cmd_line target.process.command_line Mappage direct
pid target.process.pid Mappage direct
path target.resource.name Mappage direct
tar_user target.user.userid Mappage direct
N/A extensions.auth.type Constante : AUTHTYPE_UNSPECIFIED
N/A metadata.event_type Constante : USER_LOGIN
N/A metadata.product_name Constante : VOLTAGE
N/A metadata.vendor_name Constante : VOLTAGE
N/A observer.platform Constante : LINUX
N/A security_result.severity Constante : INFORMATIONAL
district event.idm.read_only_udm.target.administrative_domain Mappé à partir du journal des modifications
identity event.idm.read_only_udm.principal.user.email_addresses Mappé à partir du journal des modifications
src event.idm.read_only_udm.principal.ip et event.idm.read_only_udm.principal.asset.ip Mappé à partir du journal des modifications
username event.idm.read_only_udm.principal.user.userid Mappé à partir du journal des modifications
shost event.idm.read_only_udm.target.hostname et event.idm.read_only_udm.target.asset.hostname Mappé à partir du journal des modifications
requestClientApplication event.idm.read_only_udm.principal.application Mappé à partir du journal des modifications
length event.idm.read_only_udm.network.received_bytes Mappé à partir du journal des modifications
AuthenticationMethod event.idm.read_only_udm.extensions.auth.mechanism Mappé à partir du journal des modifications
cvProduct event.idm.read_only_udm.observer.application Mappé à partir du journal des modifications
cvapi event.idm.read_only_udm.observer.labels Mappé à partir du journal des modifications
cvframework event.idm.read_only_udm.observer.labels Mappé à partir du journal des modifications
cvdevice event.idm.read_only_udm.observer.labels Mappé à partir du journal des modifications
cvos event.idm.read_only_udm.observer.platform Mappé à partir du journal des modifications
msg event.idm.read_only_udm.security_result.description Mappé à partir du journal des modifications
proxyConnectionIp event.idm.read_only_udm.intermediary.ip et event.idm.read_only_udm.intermediary.asset.ip Mappé à partir du journal des modifications
: event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
, event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
and event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
cached event.idm.read_only_udm.security_result.detection_fields Mappé à partir du journal des modifications
fullIdentity event.idm.read_only_udm.security_result.detection_fields Mappé à partir du journal des modifications
algorithm event.idm.read_only_udm.security_result.detection_fields Mappé à partir du journal des modifications
returnEncryptedKeyOption event.idm.read_only_udm.security_result.detection_fields Mappé à partir du journal des modifications
authMethodName event.idm.read_only_udm.security_result.detection_fields Mappé à partir du journal des modifications
authType event.idm.read_only_udm.security_result.detection_fields Mappé à partir du journal des modifications
authTimeMillis event.idm.read_only_udm.security_result.detection_fields Mappé à partir du journal des modifications
hsmEnabled event.idm.read_only_udm.security_result.detection_fields Mappé à partir du journal des modifications
wrappedMode event.idm.read_only_udm.security_result.detection_fields Mappé à partir du journal des modifications
format event.idm.read_only_udm.security_result.detection_fields Mappé à partir du journal des modifications
returnFullIdentity event.idm.read_only_udm.security_result.detection_fields Mappé à partir du journal des modifications
acceptBadData event.idm.read_only_udm.security_result.detection_fields Mappé à partir du journal des modifications
CachedAuthentication event.idm.read_only_udm.security_result.detection_fields Mappé à partir du journal des modifications

Journal des modifications

Afficher le journal des modifications de ce parseur

Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.