Collecter les journaux VMware Workspace ONE UEM

Compatible avec:

Cet analyseur extrait les journaux de VMware Workspace ONE UEM (anciennement VMware AirWatch) au format Syslog, CEF ou paire clé-valeur. Il normalise des champs tels que les noms d'utilisateur, les codes temporels et les détails des événements, en les mappant sur l'UDM. L'analyseur gère différents types d'événements Workspace ONE UEM, en remplissant les champs principal, cible et autres champs UDM en fonction de données d'événement et de logique spécifiques pour différents formats de journaux.

Avant de commencer

  • Assurez-vous de disposer d'une instance Google Security Operations.
  • Assurez-vous de disposer d'un accès privilégié à la console VMware Workspace ONE.
  • Assurez-vous de disposer d'un hôte Windows ou Linux avec systemd.
  • Si vous exécutez l'application derrière un proxy, assurez-vous que les ports du pare-feu sont ouverts.

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.

Obtenir le numéro client Google SecOps

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

Installer l'agent BindPlane

  1. Pour l'installation sous Windows, exécutez le script suivant:
    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
  2. Pour l'installation Linux, exécutez le script suivant:
    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
  3. Pour en savoir plus sur les options d'installation, consultez ce guide d'installation.

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

  1. Accédez à la machine sur laquelle BindPlane est installé.
  2. Modifiez le fichier config.yaml comme suit :

    receivers:
      tcplog:
        # Replace the below port <54525> and IP (0.0.0.0) with your specific values
        listen_address: "0.0.0.0:54525" 
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the creds location below according the placement of the credentials file you downloaded
            creds: '{ json file for creds }'
            # Replace <customer_id> below with your actual ID that you copied
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # You can apply ingestion labels below as preferred
            ingestion_labels:
            log_type: SYSLOG
            namespace: 
            raw_log_field: body
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - tcplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. Redémarrez l'agent BindPlane pour appliquer les modifications à l'aide de la commande suivante : sudo systemctl bindplane restart

Configurer Syslog dans VMware Workspace ONE UEM

  1. Connectez-vous à la console Workspace ONE UEM:
  2. Accédez à Paramètres > Système > Paramètres avancés > Syslog.
  3. Cochez l'option Activer Syslog.
  4. Spécifiez les valeurs des paramètres d'entrée suivants :
    • Adresse IP/Nom d'hôte: saisissez l'adresse de votre agent BindPlane.
    • Port: saisissez le port désigné (par défaut: 514).
    • Protocole: sélectionnez UDP ou TCP en fonction de la configuration de votre agent BindPlane.
    • Sélectionner des types de journaux : sélectionnez les journaux que vous souhaitez envoyer à Google SecOps : journaux de gestion des appareils, journaux d'activité de la console, journaux de conformité, journaux d'événements.
    • Définissez le niveau de journalisation (par exemple, Info, Warning ou Error).
  5. Cliquez sur Enregistrer pour appliquer les paramètres.

Tableau de mappage UDM

Champ de journal Mappage UDM Logique
AdminAccount principal.user.userid Le AdminAccount du journal brut est mappé sur le champ principal.user.userid.
Application target.application Le champ Application du journal brut est mappé sur le champ target.application.
ApplicationUUID additional.fields Le champ ApplicationUUID du journal brut est ajouté en tant que paire clé-valeur au tableau additional.fields dans l'UDM. La clé est "ApplicationUUID".
BytesReceived network.received_bytes Le champ BytesReceived du journal brut est mappé sur le champ network.received_bytes.
Device target.hostname Le champ Device du journal brut est mappé sur le champ target.hostname.
FriendlyName target.hostname Le champ FriendlyName du journal brut est mappé sur le champ target.hostname lorsque Device n'est pas disponible.
GroupManagementData security_result.description Le champ GroupManagementData du journal brut est mappé sur le champ security_result.description.
Hmac additional.fields Le champ Hmac du journal brut est ajouté en tant que paire clé-valeur au tableau additional.fields dans l'UDM. La clé est "Hmac".
LoginSessionID network.session_id Le champ LoginSessionID du journal brut est mappé sur le champ network.session_id.
LogDescription metadata.description Le champ LogDescription du journal brut est mappé sur le champ metadata.description.
MessageText metadata.description Le champ MessageText du journal brut est mappé sur le champ metadata.description.
OriginatingOrganizationGroup principal.user.group_identifiers Le champ OriginatingOrganizationGroup du journal brut est mappé sur le champ principal.user.group_identifiers.
OwnershipType additional.fields Le champ OwnershipType du journal brut est ajouté en tant que paire clé-valeur au tableau additional.fields dans l'UDM. La clé est "OwnershipType".
Profile target.resource.name Le champ Profile du journal brut est mappé sur le champ target.resource.name lorsque ProfileName n'est pas disponible.
ProfileName target.resource.name Le champ ProfileName du journal brut est mappé sur le champ target.resource.name.
Request Url target.url Le champ Request Url du journal brut est mappé sur le champ target.url.
SmartGroupName target.group.group_display_name Le champ SmartGroupName du journal brut est mappé sur le champ target.group.group_display_name.
Tags additional.fields Le champ Tags du journal brut est ajouté en tant que paire clé-valeur au tableau additional.fields dans l'UDM. La clé est "Tags".
User target.user.userid Le champ User du journal brut est mappé sur le champ target.user.userid. Le Event Category du journal brut est ajouté en tant que paire clé-valeur au tableau additional.fields dans l'UDM. La clé est "Catégorie d'événement". Le Event Module du journal brut est ajouté en tant que paire clé-valeur au tableau additional.fields dans l'UDM. La clé est "Module d'événement". Le Event Source du journal brut est ajouté en tant que paire clé-valeur au tableau additional.fields dans l'UDM. La clé est "Source de l'événement". Défini sur "SSO" par l'analyseur pour des événements spécifiques. Dérivé de l'horodatage du journal brut. L'analyseur extrait la date et l'heure du journal brut, puis les convertit en code temporel UDM. Déterminé par l'analyseur en fonction de event_name et d'autres champs. Consultez le code de l'analyseur pour la logique de mappage. Défini sur "AIRWATCH" par l'analyseur. Le event_name du journal brut est mappé sur le champ metadata.product_event_type. Défini sur "AirWatch" par l'analyseur. Défini sur "VMWare" par l'analyseur. Le domain du journal brut est mappé sur le champ principal.administrative_domain. Le hostname est extrait du champ device_name dans le journal brut ou mappé à partir des champs Device ou FriendlyName. Le sys_ip du journal brut est mappé sur le champ principal.ip. Extrait du journal brut pour certains types d'événements. Extrait du journal brut pour certains types d'événements. Le user_name du journal brut est mappé sur le champ principal.user.userid. Extrait du journal brut pour certains types d'événements. Défini par l'analyseur pour des événements spécifiques. Défini par l'analyseur pour des événements spécifiques. Le event_category du journal brut est mappé sur le champ security_result.category_details. Extrait du journal brut pour certains types d'événements. Extrait du journal brut pour certains types d'événements. Le domain du journal brut est mappé sur le champ target.administrative_domain. Construit en combinant DeviceSerialNumber et DeviceUdid à partir du journal brut pour l'événement "DeleteDeviceRequested". Extrait du journal brut pour certains types d'événements. Extrait du journal brut pour certains types d'événements. Les sys_ip ou autres adresses IP du journal brut sont mappées sur le champ target.ip. Extrait du journal brut pour certains types d'événements. Extrait du journal brut pour certains types d'événements. Défini par l'analyseur pour des événements spécifiques. Extrait du journal brut pour certains types d'événements. Extrait du journal brut pour certains types d'événements. Extrait du journal brut pour certains types d'événements.

Modifications

2024-11-15

  • Amélioration:
  • Ajout de modèles Grok pour de nouveaux types de journaux.

2024-10-17

  • Amélioration:
  • Ajout de la compatibilité avec de nouveaux types de journaux.

2024-10-07

  • Amélioration:
  • Ajout de la compatibilité avec un nouveau type de journaux.

2024-09-23

  • Amélioration:
  • Ajout de la possibilité d'analyser les journaux non analysés.

2024-06-25

  • Amélioration:
  • Correction du modèle Grok pour mapper "username" sur "principal.user.user_display_name".
  • "device_type" a été mappé sur "additional.fields".
  • Ajout des modèles Grok pour un nouveau type de journaux.

2023-09-05

  • Correction de bug:
  • Ajout d'un format Grok pour analyser les journaux abandonnés.

2023-05-05

  • Correction de bug:
  • Modèle Grok modifié pour analyser les journaux abandonnés.

2023-04-26

  • Correction de bug:
  • Ajout de la compatibilité avec différents types de journaux au format syslog.

2022-12-27

  • Correction de bug:
  • Ajout de la compatibilité avec différents types de journaux au format Syslog.
  • Ajout de vérifications conditionnelles spécifiques pour gérer plusieurs "nom_événement".

2022-09-02

  • Amélioration:
  • Écrit grok pour analyser les journaux au format ccf non analysés.

2022-06-29

  • Amélioration:
  • Journal analysé avec event_name défini sur "MergeGroupCompletedEvent"
  • a mappé "GroupManagementData" sur "security_result.description".
  • mappé "EventSource", "EventModule" sur "event.idm.read_only_udm.additional.fields".
  • a mappé "cat" sur "security_result.category_details".
  • Modification de "event.idm.read_only_udm.metadata.event_type" de "GENERIC_EVENT" en "USER_UNCATEGORIZED" si l'un des éléments "principal.user.userid" ou "target.user.userid" est présent.

2022-06-20

  • Amélioration:
  • Catégorie d'événement mappée sur _udm.additional.fields(event_category)
  • Ajout du type d'événement GENERIC_EVENT pour SecurityInformation, SecurityInformationConfirmed(nom_événement) afin de gérer le journal non analysé