Recopila registros de la UEM de VMware Workspace ONE
Este analizador extrae registros de VMware Workspace ONE UEM (antes conocido como VMware AirWatch) en formatos Syslog, CEF o par clave-valor. Normaliza campos como nombres de usuario, marcas de tiempo y detalles de eventos, y los asigna a la UDM. El analizador controla varios tipos de eventos de Workspace ONE UEM y propaga los campos principal, objetivo y otros de la AUA según los datos y la lógica de eventos específicos para diferentes formatos de registro.
Antes de comenzar
- Asegúrate de tener una instancia de Google Security Operations.
- Asegúrate de tener acceso con privilegios a la consola de VMware Workspace ONE.
- Asegúrate de tener un host de Windows o Linux con systemd.
- Si se ejecuta detrás de un proxy, asegúrate de que los puertos del firewall estén abiertos.
Obtén el archivo de autenticación de transferencia de Google SecOps
- Accede a la consola de Google SecOps.
- Ve a Configuración de SIEM > Agentes de recopilación.
- Descarga el archivo de autenticación de transferencia.
Obtén el ID de cliente de Google SecOps
- Accede a la consola de Google SecOps.
- Ve a Configuración de SIEM > Perfil.
- Copia y guarda el ID de cliente de la sección Detalles de la organización.
Instala el agente de BindPlane
- Para la instalación de Windows, ejecuta la siguiente secuencia de comandos:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
- Para la instalación de Linux, ejecuta la siguiente secuencia de comandos:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
- Puedes encontrar opciones de instalación adicionales en esta guía de instalación.
Configura el agente de BindPlane para transferir Syslog y enviarlo a Google SecOps
- Accede a la máquina en la que está instalado BindPlane.
Edita el archivo
config.yaml
de la siguiente manera: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
Reinicia el agente de BindPlane para aplicar los cambios con el siguiente comando:
sudo systemctl bindplane restart
Cómo configurar syslog en VMware Workspace ONE UEM
- Accede a la consola de UEM de Workspace ONE:
- Ve a Configuración > Sistema > Avanzado > Syslog.
- Marca la opción para habilitar Syslog.
- Especifica valores para los siguientes parámetros de entrada:
- Dirección IP o nombre de host: Ingresa la dirección de tu agente de BindPlane.
- Puerto: Ingresa el puerto designado (predeterminado: 514).
- Protocolo: Selecciona UDP o TCP según la configuración de tu agente de BindPlane.
- Seleccionar tipos de registro: Selecciona los registros que deseas enviar a Google SecOps: registros de administración de dispositivos, registros de actividad de la consola, registros de cumplimiento y registros de eventos.
- Establece el nivel de registro (por ejemplo, Info, Advertencia, Error).
- Haz clic en Guardar para aplicar la configuración.
Tabla de asignación de UDM
Campo de registro | Asignación de UDM | Lógica |
---|---|---|
AdminAccount |
principal.user.userid |
El AdminAccount del registro sin procesar se asigna al campo principal.user.userid . |
Application |
target.application |
El campo Application del registro sin procesar se asigna al campo target.application . |
ApplicationUUID |
additional.fields |
El campo ApplicationUUID del registro sin procesar se agrega como un par clave-valor al array additional.fields en la UDM. La clave es "ApplicationUUID". |
BytesReceived |
network.received_bytes |
El campo BytesReceived del registro sin procesar se asigna al campo network.received_bytes . |
Device |
target.hostname |
El campo Device del registro sin procesar se asigna al campo target.hostname . |
FriendlyName |
target.hostname |
El campo FriendlyName del registro sin procesar se asigna al campo target.hostname cuando Device no está disponible. |
GroupManagementData |
security_result.description |
El campo GroupManagementData del registro sin procesar se asigna al campo security_result.description . |
Hmac |
additional.fields |
El campo Hmac del registro sin procesar se agrega como un par clave-valor al array additional.fields en la UDM. La clave es "Hmac". |
LoginSessionID |
network.session_id |
El campo LoginSessionID del registro sin procesar se asigna al campo network.session_id . |
LogDescription |
metadata.description |
El campo LogDescription del registro sin procesar se asigna al campo metadata.description . |
MessageText |
metadata.description |
El campo MessageText del registro sin procesar se asigna al campo metadata.description . |
OriginatingOrganizationGroup |
principal.user.group_identifiers |
El campo OriginatingOrganizationGroup del registro sin procesar se asigna al campo principal.user.group_identifiers . |
OwnershipType |
additional.fields |
El campo OwnershipType del registro sin procesar se agrega como un par clave-valor al array additional.fields en la UDM. La clave es "OwnershipType". |
Profile |
target.resource.name |
El campo Profile del registro sin procesar se asigna al campo target.resource.name cuando ProfileName no está disponible. |
ProfileName |
target.resource.name |
El campo ProfileName del registro sin procesar se asigna al campo target.resource.name . |
Request Url |
target.url |
El campo Request Url del registro sin procesar se asigna al campo target.url . |
SmartGroupName |
target.group.group_display_name |
El campo SmartGroupName del registro sin procesar se asigna al campo target.group.group_display_name . |
Tags |
additional.fields |
El campo Tags del registro sin procesar se agrega como un par clave-valor al array additional.fields en la UDM. La clave es "Etiquetas". |
User |
target.user.userid |
El campo User del registro sin procesar se asigna al campo target.user.userid . El Event Category del registro sin procesar se agrega como un par clave-valor al array additional.fields en la UDM. La clave es "Categoría del evento". El Event Module del registro sin procesar se agrega como un par clave-valor al array additional.fields en la UDM. La clave es "Módulo de eventos". El Event Source del registro sin procesar se agrega como un par clave-valor al array additional.fields en la UDM. La clave es "Fuente del evento". El analizador lo establece en "SSO" para eventos específicos. Se deriva de la marca de tiempo del registro sin procesar. El analizador extrae la fecha y la hora del registro sin procesar y los convierte en una marca de tiempo de la AUA. El analizador lo determina en función de event_name y otros campos. Consulta el código del analizador para ver la lógica de asignación. El analizador lo establece en "AIRWATCH". El event_name del registro sin procesar se asigna al campo metadata.product_event_type . El analizador lo establece en "AirWatch". El analizador lo establece en “VMWare”. El domain del registro sin procesar se asigna al campo principal.administrative_domain . El hostname se extrae del campo device_name en el registro sin procesar o se asigna desde los campos Device o FriendlyName . El sys_ip del registro sin procesar se asigna al campo principal.ip . Se extraen del registro sin procesar para ciertos tipos de eventos. Se extraen del registro sin procesar para ciertos tipos de eventos. El user_name del registro sin procesar se asigna al campo principal.user.userid . Se extraen del registro sin procesar para ciertos tipos de eventos. Establecido por el analizador para eventos específicos. Establecido por el analizador para eventos específicos. El event_category del registro sin procesar se asigna al campo security_result.category_details . Se extraen del registro sin procesar para ciertos tipos de eventos. Se extraen del registro sin procesar para ciertos tipos de eventos. El domain del registro sin procesar se asigna al campo target.administrative_domain . Se construye combinando DeviceSerialNumber y DeviceUdid del registro sin procesar del evento "DeleteDeviceRequested". Se extraen del registro sin procesar para ciertos tipos de eventos. Se extraen del registro sin procesar para ciertos tipos de eventos. sys_ip o cualquier otra dirección IP del registro sin procesar se asignan al campo target.ip . Se extraen del registro sin procesar para ciertos tipos de eventos. Se extraen del registro sin procesar para ciertos tipos de eventos. Establecido por el analizador para eventos específicos. Se extraen del registro sin procesar para ciertos tipos de eventos. Se extraen del registro sin procesar para ciertos tipos de eventos. Se extraen del registro sin procesar para ciertos tipos de eventos. |
Cambios
2024-11-15
- Mejora:
- Se agregaron patrones de Grok para nuevos tipos de registros.
2024-10-17
- Mejora:
- Se agregó compatibilidad con nuevos tipos de registros.
2024-10-07
- Mejora:
- Se agregó compatibilidad con un nuevo tipo de registros.
2024-09-23
- Mejora:
- Se agregó compatibilidad para analizar registros sin analizar.
2024-06-25
- Mejora:
- Se corrigió el patrón Grok para asignar "nombre de usuario" a "principal.user.user_display_name".
- Se asignó "device_type" a "additional.fields".
- Se agregaron los patrones de Grok para un nuevo tipo de registros.
2023-09-05
- Corrección de errores:
- Se agregó un patrón Grok para analizar los registros descartados.
2023-05-05
- Corrección de errores:
- Se modificó el patrón de Grok para analizar los registros descartados.
26-04-2023
- Corrección de errores:
- Se agregó compatibilidad con diferentes tipos de registros con formato syslog.
2022-12-27
- Corrección de errores:
- Se agregó compatibilidad con diferentes tipos de registros de formato Syslog.
- Se agregaron verificaciones condicionales específicas para controlar varios "event_name".
2022-09-02
- Mejora:
- Se escribió grok para analizar los registros de formato ccf sin analizar.
2022-06-29
- Mejora:
- Registro analizado con event_name como "MergeGroupCompletedEvent"
- Se asignó "GroupManagementData" a "security_result.description".
- Se asignan "EventSource" y "EventModule" a "event.idm.read_only_udm.additional.fields".
- Se asignó "cat" a "security_result.category_details".
- Se modificó "event.idm.read_only_udm.metadata.event_type" de "GENERIC_EVENT" a "USER_UNCATEGORIZED" en caso de que esté presente alguno de "principal.user.userid" o "target.user.userid".
2022-06-20
- Mejora:
- Categoría del evento asignada a _udm.additional.fields(event_category)
- Se agregó el tipo de evento GENERIC_EVENT para SecurityInformation y SecurityInformationConfirmed(event_name) para controlar el registro sin analizar.