Collecter les journaux VMware vCenter

Compatible avec :

Ce document explique comment ingérer des journaux VMware vCenter dans Google Security Operations à l'aide de Bindplane. L'analyseur transforme les journaux bruts en modèle de données unifié (UDM). Il tente d'abord d'analyser les données de journaux au format JSON. En cas d'échec, il traite les données comme un message syslog, en extrait les champs à l'aide de modèles Grok et les mappe au schéma UDM.

Avant de commencer

Assurez-vous de remplir les conditions suivantes :

  • Instance Google SecOps
  • Windows 2016 ou version ultérieure, ou un hôte Linux avec systemd
  • Si vous exécutez le programme derrière un proxy, assurez-vous que les ports du pare-feu sont ouverts.
  • Accès privilégié à VMware vCenter

Obtenir le fichier d'authentification d'ingestion Google SecOps

  1. Connectez-vous à la console Google SecOps.
  2. Accédez à Paramètres du SIEM > Agents de collecte.
  3. Téléchargez le fichier d'authentification d'ingestion. Enregistrez le fichier de manière sécurisée sur le système sur lequel 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 de la section Informations sur 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 fenêtres

  1. Ouvrez l'invite de commandes 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
    

Installation de Linux

  1. Ouvrez un terminal avec les droits root 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
    

Ressources d'installation supplémentaires

Pour plus d'options d'installation, consultez le guide d'installation.

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

  1. Accédez au fichier de configuration :
    • Trouvez le fichier config.yaml. En règle générale, il se trouve dans le répertoire /etc/bindplane-agent/ sous Linux ou dans le répertoire d'installation sous Windows.
    • Ouvrez le fichier à l'aide d'un éditeur de texte (par exemple, nano, vi ou le Bloc-notes).
  2. Modifiez le fichier config.yaml comme suit :

    receivers:
        udplog:
            # Replace the port and IP address as required
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the path to the credentials file you downloaded in Step 1
            creds_file_path: '/path/to/ingestion-authentication-file.json'
            # Replace with your actual customer ID from Step 2
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # Add optional ingestion labels for better organization
            log_type: 'VMWARE_VCENTER'
            raw_log_field: body
            ingestion_labels:
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
    • Remplacez le port et l'adresse IP selon les besoins de votre infrastructure.
    • Remplacez <customer_id> par le numéro client réel.
    • Mettez à jour /path/to/ingestion-authentication-file.json en indiquant le chemin d'accès où le fichier d'authentification a été enregistré dans la section Obtenir le fichier d'authentification pour l'ingestion Google SecOps.

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 bindplane-agent
    
  • Pour redémarrer l'agent Bindplane sous Windows, vous pouvez utiliser la console Services ou saisir la commande suivante :

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Configurer Syslog pour VMware vCenter

  1. Connectez-vous à l'interface utilisateur Web vCenter Server Management.
  2. Accédez à Syslog > Configuration du transfert > Configurer.
  3. Sélectionnez Create Forwarding Configuration (Créer une configuration de transfert) et saisissez l'adresse IP de l'agent Bindplane.
  4. Dans le menu déroulant Protocole, sélectionnez UDP ou TCP, en fonction de la configuration réelle de votre agent Bindplane.
  5. Dans la section Port, saisissez le numéro de port de l'agent Bindplane.
  6. Cliquez sur Enregistrer.
  7. Cliquez sur Envoyer un message test et vérifiez qu'il a bien été reçu.

Table de mappage UDM

Champ de journal Mappage UDM Logique
Access Mask principal.process.access_mask Converti en décimal à partir de l'hexadécimal.
Account Domain principal.administrative_domain
Account Name principal.user.userid
ApplicationProtocol additional.fields
Authentication Package security_result.about.resource.name
Client Address principal.ip, principal.asset.ip Analysé en tant qu'adresse IP.
Client Port principal.port Converti en entier.
cmd target.process.command_line
date timestamp Analysé en tant que aaaa-MM-jj et fusionné avec l'heure en tant que aaaa-MM-jj HH:mm:ss pour "quand", analysé en tant que date.
date_time timestamp Analysé en tant que date avec les formats RFC 3339, TIMESTAMP_ISO8601 et SYSLOGTIMESTAMP.
desc metadata.description
eventid metadata.product_event_type Fusionné avec la tâche en tant qu'ID d'événement : tâche.
host_name principal.hostname, principal.asset.hostname
http_method network.http.method
ip target.ip, target.asset.ip
kv_data1 Analysé sous forme de paires clé-valeur.
kv_data2 Analysé sous forme de paires clé-valeur.
kv_msg1.cipher network.tls.cipher
kv_msg1.ctladdr intermediary.labels
kv_msg1.daemon security_result.about.labels
kv_msg1.from network.email.from Si mail_from ne contient pas de @, il est ajouté avec @local.
kv_msg1.msgid network.email.mail_id
kv_msg1.proto security_result.about.labels
kv_msg1.relay intermediary.hostname, intermediary.ip Analysé en tant que (HOSTNAME) ? [IP] ou HOSTNAME. Si relay_domain est présent, la valeur est définie sur intermediary.hostname. Si relay_ip est présent, la valeur est fusionnée avec intermediary.ip.
kv_msg1.size network.sent_bytes Converti en entier non signé.
kv_msg1.stat security_result.summary
kv_msg1.verify security_result.description, security_result.action Si kv_msg1.verify est défini sur FAIL, security_result.action est défini sur BLOCK.
kv_msg1.version network.tls.version
labels.log_type metadata.product_event_type
labels.net.host.ip principal.ip, principal.asset.ip
labels.net.host.port principal.port
labels.net.peer.ip target.ip, target.asset.ip
labels.net.peer.port target.port
labels.net.transport network.ip_protocol Si labels.net.transport est défini sur TCP, alors TCP.
level security_result.severity Si le niveau est INFO/Informational/DEBUG/info/Information, la gravité est INFORMATIONAL. Si le niveau est ERROR/error, la gravité est ERROR. Si le niveau est WARNING, la gravité est LOW.
log.file.path target.process.file.full_path
logName security_result.category_details
Logon Account principal.user.userid
Logon Type extensions.auth.mechanism Si logon_type est défini sur 2/Interactive, la valeur est INTERACTIVE. Si logon_type est défini sur 3/8, la valeur est NETWORK. Si logon_type est défini sur 4, la valeur est BATCH. Si logon_type est défini sur 5, la valeur est SERVICE. Si logon_type est défini sur 7, la valeur est UNLOCK. Si logon_type est défini sur 9, la valeur est NEW_CREDENTIALS. Si logon_type est défini sur 10, la valeur est REMOTE_INTERACTIVE. Si logon_type est défini sur 11, la valeur est CACHED_INTERACTIVE. Sinon, la valeur est MECHANISM_UNSPECIFIED.
mail_from network.email.from Si mail_from ne contient pas de @, il est ajouté avec @local.
mail_to network.email.to Si mail_to ne contient pas de @, il est ajouté avec @local.
message Analysé avec des modèles grok.
namespace principal.namespace
port target.port Converti en entier.
process_id target.process.pid
providername principal.application
Relative Target Name target.file.full_path
resource.labels.project_id src.cloud.project.id
resource.type src.labels
response_status network.http.response_code Converti en entier.
sec_desc security_result.description
Security ID target.user.windows_sid
security_result_action_detail security_result.action_details
server_name target.hostname, target.asset.hostname
Share Name target.resource.name
Source Network Address principal.ip, principal.asset.ip Analysé en tant qu'adresse IP.
Source Port principal.port Converti en entier.
summary security_result.summary
target_host target.hostname, target.asset.hostname
target_url target.url
target_userid target.user.userid
time timestamp Analysé au format HH:mm:ss et fusionné avec la date au format yyyy-MM-dd HH:mm:ss pour "quand", analysé en tant que date.
upn_name intermediary.url
URL target.url
User ID target.user.windows_sid
user_id principal.user.userid
UserAgent network.http.user_agent
metadata.event_type Définissez la valeur sur STATUS_UPDATE si msg contient API_HEALTH ou JobDispatcher, sur USER_LOGIN si msg contient logged in as et que target_userid n'est pas vide, sur SCAN_HOST si msg contient Leave Validate., sur NETWORK_UNCATEGORIZED si msg contient Getting IP Address from host, sur RESOURCE_WRITTEN si msg contient Wrote vpxd health, sur NETWORK_HTTP si has_principal et has_target sont définis sur "true" et que application_protocol n'est pas vide, sur PROCESS_LAUNCH si process_id et cmd ne sont pas vides, sur USER_UNCATEGORIZED si user_id n'est pas vide ou si eventid est défini sur 4776, sur USER_LOGIN si eventid est défini sur 4624/4768/4769, sur USER_LOGOUT si eventid est défini sur 4634/4647, sur USER_RESOURCE_ACCESS si eventid est défini sur 5145, sur STATUS_UPDATE si host_name n'est pas vide, et sur GENERIC_EVENT dans le cas contraire.
extensions.auth.type Définissez sur MACHINE si eventid est 4624/4768/4769.
metadata.log_type Définissez-le sur VMWARE_VCENTER.
metadata.vendor_name Définissez la valeur sur VMWARE.
metadata.product_name Définissez-le sur VCENTER.
security_result.action Définissez sur "ALLOW" si response_status est défini sur 200 ou si l'action est définie sur "Autoriser".

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