Recoger registros de VMware Networking and Security Virtualization (NSX) Manager

Disponible en:

En este documento se describe cómo puede recoger los registros de VMware Networking and Security Virtualization (NSX) Manager. El analizador extrae campos mediante varios patrones grok basados en el formato del mensaje. A continuación, realiza un análisis de pares clave-valor y de JSON, así como una lógica condicional para asignar los campos extraídos al UDM, gestionar diferentes formatos de registro y enriquecer los datos con contexto adicional.

Antes de empezar

  • Asegúrate de que tienes una instancia de Google Security Operations.
  • Asegúrate de usar Windows 2016 o una versión posterior, o un host Linux con systemd.
  • Si se ejecuta a través de un proxy, asegúrate de que los puertos del cortafuegos estén abiertos.
  • Asegúrate de que tienes acceso de administrador a VMWare NSX.

Obtener el archivo de autenticación de ingestión de Google SecOps

  1. Inicia sesión en la consola de Google SecOps.
  2. Ve a Configuración de SIEM > Agentes de recogida.
  3. Descarga el archivo de autenticación de ingestión. Guarda el archivo de forma segura en el sistema en el que se instalará el agente de Bindplane.

Obtener el ID de cliente de Google SecOps

  1. Inicia sesión en la consola de Google SecOps.
  2. Ve a Configuración de SIEM > Perfil.
  3. Copia y guarda el ID de cliente de la sección Detalles de la organización.

Instalar el agente de Bindplane

Instalación de ventanas

  1. Abre el símbolo del sistema o PowerShell como administrador.
  2. Ejecuta el siguiente comando:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Instalación de Linux

  1. Abre un terminal con privilegios de superusuario o sudo.
  2. Ejecuta el siguiente comando:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    

Recursos de instalación adicionales

Configurar el agente de Bindplane para ingerir Syslog y enviarlo a Google SecOps

  1. Accede al archivo de configuración:

    • Busca el archivo config.yaml. Normalmente, se encuentra en el directorio /etc/bindplane-agent/ en Linux o en el directorio de instalación en Windows.
    • Abre el archivo con un editor de texto (por ejemplo, nano, vi o Bloc de notas).
  2. Edita el archivo config.yaml de la siguiente manera:

    receivers:
        udplog:
            # 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: vmware_nsx
            raw_log_field: body
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. Sustituye el puerto y la dirección IP según sea necesario en tu infraestructura.

  4. Sustituye <customer_id> por el ID de cliente real.

  5. Actualiza /path/to/ingestion-authentication-file.json a la ruta en la que se guardó el archivo de autenticación en la sección Obtener el archivo de autenticación de ingestión de Google SecOps.

Reinicia el agente de Bindplane para aplicar los cambios

  • En Linux, para reiniciar el agente de Bindplane, ejecuta el siguiente comando:

    sudo systemctl restart bindplane-agent
    
  • En Windows, para reiniciar el agente de Bindplane, puedes usar la consola Servicios o introducir el siguiente comando:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Configuración de Syslog para NSX Edge

  1. Inicia sesión en vSphere Web Client.
  2. Ve a Redes y seguridad > NSX Edges.
  3. Selecciona la instancia de NSX Edge específica que quieras configurar.
  4. Ve a Configuración de Syslog:
    1. Para NSX 6.4.4 y versiones posteriores:
      • Ve a Gestionar > Ajustes > Ajustes del electrodoméstico.
      • Haz clic en Configuración > Cambiar configuración de Syslog.
    2. En NSX 6.4.3 y versiones anteriores:
      • Vaya a Gestionar > Configuración > Configuración.
      • En el cuadro de diálogo Detalles, haga clic en Cambiar.
  5. Configura los detalles del servidor Syslog:
    • Servidor: introduce la dirección IP o el nombre de host del servidor Syslog (Bindplane).
    • Protocolo: selecciona UDP o TCP (en función de la configuración de Bindplane).
    • Puerto: introduce el número de puerto (depende de tu configuración de Bindplane).
  6. Haz clic en Aceptar para guardar la configuración.

Configuración de Syslog para NSX Manager

  1. Inicia sesión en la interfaz web de NSX Manager con las credenciales de administrador de la siguiente manera:
    • https://<NSX-Manager-IP> o https://<NSX-Manager-Hostname>.
  2. Ve a Gestionar ajustes del dispositivo > General.
  3. Haz clic en Editar para configurar los ajustes del servidor Syslog.
  4. Introduce los detalles del servidor Syslog:
    • Servidor: introduce la dirección IP o el nombre de host del servidor Syslog (Bindplane).
    • Protocolo: selecciona UDP o TCP (en función de la configuración de Bindplane).
    • Puerto: introduce el número de puerto (depende de tu configuración de Bindplane).
  5. Haz clic en Aceptar para guardar la configuración.

Configuración de Syslog para el controlador de NSX

  1. Inicia sesión en vSphere Web Client.
  2. Vaya a Redes y seguridad > Instalación y actualización > Gestión > Nodos de controlador de NSX.
  3. Selecciona el NSX Manager que gestiona los nodos del controlador.
  4. Haz clic en Editar atributos de controlador comunes.
  5. En el cuadro de diálogo Servidores Syslog, haga clic en Añadir:
    1. Introduce el nombre o la dirección IP del servidor Syslog.
    2. Selecciona el protocolo UDP (en función de tu configuración de Bindplane).
    3. Define el Nivel de registro (por ejemplo, INFO).
  6. Haz clic en Aceptar para guardar la configuración.

Tabla de asignación de UDM

Campo de registro Asignación de UDM Lógica
DST event.idm.read_only_udm.target.ip La dirección IP de destino se extrae del campo DST del registro sin procesar.
ID event.idm.read_only_udm.metadata.product_log_id El ID de registro del producto se extrae del campo ID del registro sin procesar.
MAC event.idm.read_only_udm.principal.mac La dirección MAC se extrae del campo MAC del registro sin procesar.
ModuleName event.idm.read_only_udm.metadata.product_event_type El tipo de evento de producto se extrae del campo ModuleName del registro sin procesar.
Operation event.idm.read_only_udm.principal.resource.attribute.labels.value La operación se extrae del campo Operation del registro sin procesar y se añade como una etiqueta con la clave "Operation".
PROTO event.idm.read_only_udm.network.ip_protocol El protocolo IP se extrae del campo PROTO del registro sin procesar.
RES event.idm.read_only_udm.target.resource.name El nombre de recurso de destino se extrae del campo RES del registro sin procesar.
SRC event.idm.read_only_udm.principal.ip La dirección IP de origen se extrae del campo SRC del registro sin procesar.
SPT event.idm.read_only_udm.principal.port El puerto de origen se extrae del campo SPT del registro sin procesar.
UserName event.idm.read_only_udm.principal.user.userid El ID de usuario se extrae del campo UserName del registro sin procesar.
app_type event.idm.read_only_udm.principal.application La aplicación principal se extrae del campo app_type del registro sin procesar.
application event.idm.read_only_udm.target.application La aplicación de destino se extrae del campo application del registro sin procesar.
audit event.idm.read_only_udm.principal.resource.attribute.labels.value El valor de auditoría se extrae del campo audit del registro sin procesar y se añade como una etiqueta con la clave "audit".
cancelTimeUTC event.idm.read_only_udm.principal.resource.attribute.last_update_time La hora de la última actualización se obtiene del campo cancelTimeUTC del registro sin procesar.
client event.idm.read_only_udm.principal.ip o event.idm.read_only_udm.principal.administrative_domain Si el campo client es una dirección IP, se asigna a la IP principal. De lo contrario, se asignará al dominio administrativo principal.
comp event.idm.read_only_udm.principal.resource.attribute.labels.value El valor del componente se extrae del campo comp del registro sin procesar y se añade como una etiqueta con la clave "Comp".
datetime event.idm.read_only_udm.metadata.event_timestamp La marca de tiempo del evento se extrae del campo datetime del registro sin procesar.
description event.idm.read_only_udm.metadata.description La descripción se extrae del campo description del registro sin procesar.
details event.idm.read_only_udm.principal.resource.attribute.labels Los detalles se extraen del campo details del registro sin procesar y se añaden como etiquetas.
direction event.idm.read_only_udm.network.direction Si el campo direction es "OUT", se asigna a "OUTBOUND".
dst_ip event.idm.read_only_udm.target.ip La dirección IP de destino se extrae del campo dst_ip del registro sin procesar.
DPT event.idm.read_only_udm.target.port El puerto de destino se extrae del campo DPT del registro sin procesar.
errorCode event.idm.read_only_udm.security_result.detection_fields El código de error se extrae del campo errorCode del registro sin procesar y se añade como campo de detección.
eventType event.idm.read_only_udm.metadata.product_event_type El tipo de evento de producto se extrae del campo eventType del registro sin procesar.
filepath event.idm.read_only_udm.principal.process.file.full_path La ruta del archivo se extrae del campo filepath del registro sin procesar.
hostname event.idm.read_only_udm.principal.ip El nombre de host se extrae del campo hostname del registro sin procesar y, si es una dirección IP, se asigna a la IP principal.
kv_data Varios campos de UDM Los pares clave-valor de kv_data se asignan a varios campos de UDM en función de sus claves.
kv_data1 Varios campos de UDM Los pares clave-valor de kv_data1 se asignan a varios campos de UDM en función de sus claves.
kv_data2 Varios campos de UDM Los pares clave-valor de kv_data2 se asignan a varios campos de UDM en función de sus claves.
kv_data3 Varios campos de UDM Los pares clave-valor de kv_data3 se asignan a varios campos de UDM en función de sus claves.
kv_data4 Varios campos de UDM Los pares clave-valor de kv_data4 se asignan a varios campos de UDM en función de sus claves.
level event.idm.read_only_udm.security_result.severity Si el campo level es "INFO", se asigna a "INFORMATIONAL". Si es "ERROR", se asigna a "ERROR".
managedExternally event.idm.read_only_udm.principal.resource.attribute.labels.value El valor de managedExternally se extrae del campo managedExternally del registro sin procesar y se añade como etiqueta con la clave "managedExternally".
message Varios campos de UDM El campo de mensaje se analiza para extraer varios campos de UDM.
message_data event.idm.read_only_udm.principal.resource.attribute.labels.value Los datos del mensaje se extraen del campo message_data del registro sin procesar y se añaden como una etiqueta con la clave "message".
network_status event.idm.read_only_udm.additional.fields El estado de la red se extrae del campo network_status del registro sin procesar y se añade como un campo adicional con la clave "Network_Connection_Status".
new_value Varios campos event.idm.read_only_udm.target El nuevo valor se extrae del campo new_value del registro sin procesar y se usa para rellenar varios campos de destino.
node event.idm.read_only_udm.principal.resource.attribute.labels.value El valor del nodo se extrae del campo node del registro sin procesar y se añade como una etiqueta con la clave "node".
old_value Varios campos de UDM El valor antiguo se extrae del campo old_value del registro sin procesar y se usa para rellenar varios campos de UDM.
payload Varios campos de UDM La carga útil se extrae del campo payload del registro sin procesar y se usa para rellenar varios campos de UDM.
pid event.idm.read_only_udm.target.process.pid El ID de proceso se extrae del campo pid del registro sin procesar.
reqId event.idm.read_only_udm.metadata.product_log_id El ID de registro del producto se extrae del campo reqId del registro sin procesar.
resourceId event.idm.read_only_udm.principal.resource.product_object_id El ID de objeto de producto se extrae del campo resourceId del registro sin procesar.
s2comp event.idm.read_only_udm.principal.resource.attribute.labels.value El valor de s2comp se extrae del campo s2comp del registro sin procesar y se añade como una etiqueta con la clave "s2comp".
ses event.idm.read_only_udm.network.session_id El ID de sesión se extrae del campo ses del registro sin procesar.
src_host event.idm.read_only_udm.principal.hostname El nombre de host principal se extrae del campo src_host del registro sin procesar.
src_ip event.idm.read_only_udm.principal.ip La dirección IP de origen se extrae del campo src_ip del registro sin procesar.
src_ip1 event.idm.read_only_udm.principal.ip La dirección IP de origen se extrae del campo src_ip1 del registro sin procesar.
src_port event.idm.read_only_udm.principal.port El puerto de origen se extrae del campo src_port del registro sin procesar.
startTimeUTC event.idm.read_only_udm.principal.resource.attribute.creation_time La hora de creación se obtiene del campo startTimeUTC del registro sin procesar.
subcomp event.idm.read_only_udm.network.application_protocol o event.idm.read_only_udm.principal.resource.attribute.labels.value Si el campo subcomp es "http", se asigna a "HTTP". De lo contrario, se añade como una etiqueta con la clave "Sub Comp".
tname event.idm.read_only_udm.principal.resource.attribute.labels.value El valor de tname se extrae del campo tname del registro sin procesar y se añade como etiqueta con la clave "tname".
type event.idm.read_only_udm.metadata.product_event_type El tipo de evento de producto se extrae del campo type del registro sin procesar.
uid event.idm.read_only_udm.principal.user.userid El ID de usuario se extrae del campo uid del registro sin procesar.
update event.idm.read_only_udm.principal.resource.attribute.labels.value El valor de actualización se extrae del campo update del registro sin procesar y se añade como una etiqueta con la clave "update".
user event.idm.read_only_udm.principal.user.user_display_name El nombre visible del usuario se extrae del campo user del registro sin procesar.
vmw_cluster event.idm.read_only_udm.target.resource.name El nombre de recurso de destino se extrae del campo vmw_cluster del registro sin procesar.
vmw_datacenter event.idm.read_only_udm.target.resource.attribute.labels.value El valor de vmw_datacenter se extrae del campo vmw_datacenter del registro sin procesar y se añade como etiqueta con la clave "vmw_datacenter".
vmw_host event.idm.read_only_udm.target.hostname o event.idm.read_only_udm.target.ip Si el campo vmw_host es un nombre de host, se asigna al nombre de host de destino. De lo contrario, si se trata de una dirección IP, se asigna a la IP de destino.
vmw_object_id event.idm.read_only_udm.target.resource.product_object_id El ID de objeto de producto se extrae del campo vmw_object_id del registro sin procesar.
vmw_product event.idm.read_only_udm.target.application La aplicación de destino se extrae del campo vmw_product del registro sin procesar.
vmw_vcenter event.idm.read_only_udm.target.cloud.availability_zone La zona de disponibilidad se extrae del campo vmw_vcenter del registro sin procesar.
vmw_vcenter_id event.idm.read_only_udm.target.resource.attribute.labels.value El valor de vmw_vcenter_id se extrae del campo vmw_vcenter_id del registro sin procesar y se añade como etiqueta con la clave "vmw_vcenter_id".
vmw_vr_ops_appname event.idm.read_only_udm.intermediary.application La aplicación intermediaria se extrae del campo vmw_vr_ops_appname del registro sin procesar.
vmw_vr_ops_clustername event.idm.read_only_udm.intermediary.resource.name El nombre del recurso intermediario se extrae del campo vmw_vr_ops_clustername del registro sin procesar.
vmw_vr_ops_clusterrole event.idm.read_only_udm.intermediary.resource.attribute.roles.name El nombre del rol de recurso intermediario se extrae del campo vmw_vr_ops_clusterrole del registro sin procesar.
vmw_vr_ops_hostname event.idm.read_only_udm.intermediary.hostname El nombre de host intermediario se extrae del campo vmw_vr_ops_hostname del registro sin procesar.
vmw_vr_ops_id event.idm.read_only_udm.intermediary.resource.product_object_id El ID del objeto de producto intermediario se extrae del campo vmw_vr_ops_id del registro sin procesar.
vmw_vr_ops_logtype event.idm.read_only_udm.intermediary.resource.attribute.labels.value El valor de vmw_vr_ops_logtype se extrae del campo vmw_vr_ops_logtype del registro sin procesar y se añade como etiqueta con la clave "vmw_vr_ops_logtype".
vmw_vr_ops_nodename event.idm.read_only_udm.intermediary.resource.attribute.labels.value El valor de vmw_vr_ops_nodename se extrae del campo vmw_vr_ops_nodename del registro sin procesar y se añade como etiqueta con la clave "vmw_vr_ops_nodename". Se determina mediante una serie de instrucciones condicionales basadas en los valores de otros campos. Los valores posibles son USER_LOGIN, NETWORK_CONNECTION, STATUS_UPDATE y GENERIC_EVENT. Codificado como "VMWARE_NSX". Codificado como "VMWARE_NSX". Codificado como "VMWARE_NSX". Se asigna el valor "AUTHTYPE_UNSPECIFIED" si Operation es "LOGIN" y target_details no está vacío, o si message contiene "authentication failure" y application no está vacío. Se asigna el valor "SSH" si PROTO es "ssh2" o "HTTP" si subcomp es "http". Se determina mediante una serie de instrucciones condicionales basadas en los valores de otros campos. Los valores posibles son ALLOW y BLOCK. Se asigna el valor "VIRTUAL_MACHINE" si vmw_cluster no está vacío.

¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.