Recopila registros de VMware vCenter

Compatible con:

En este documento, se explica cómo transferir registros de VMware vCenter a Google Security Operations con Bindplane. El analizador transforma los registros sin procesar en un modelo de datos unificado (UDM). Primero, intenta analizar los datos de registro como JSON y, si no lo logra, trata los datos como un mensaje de syslog, extrae los campos con patrones de Grok y los asigna al esquema de UDM.

Antes de comenzar

Asegúrate de cumplir con los siguientes requisitos previos:

  • Instancia de Google SecOps
  • Windows 2016 o versiones posteriores, o un host de Linux con systemd
  • Si ejecutas la herramienta detrás de un proxy, asegúrate de que los puertos del firewall estén abiertos.
  • Acceso con privilegios a VMware vCenter

Obtén el archivo de autenticación de transferencia de Google SecOps

  1. Accede a la consola de Google SecOps.
  2. Ve a SIEM Settings > Collection Agents.
  3. Descarga el archivo de autenticación de transferencia. Guarda el archivo de forma segura en el sistema en el que se instalará BindPlane.

Obtén el ID de cliente de Google SecOps

  1. Accede a la consola de Google SecOps.
  2. Ve a SIEM Settings > Profile.
  3. Copia y guarda el ID de cliente de la sección Detalles de la organización.

Instala el agente de BindPlane

Instala el agente de Bindplane en tu sistema operativo Windows o Linux según las siguientes instrucciones.

Instalación en Windows

  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 en Linux

  1. Abre una terminal con privilegios de raíz 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

Para obtener más opciones de instalación, consulta la guía de instalación.

Configura el agente de BindPlane para transferir Syslog y enviarlo a Google SecOps

  1. Accede al archivo de configuración:
    • Ubica el archivo config.yaml. Por lo general, 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 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
    

Reinicia el agente de Bindplane para aplicar los cambios

  • Para reiniciar el agente de Bindplane en Linux, ejecuta el siguiente comando:

    sudo systemctl restart bindplane-agent
    
  • Para reiniciar el agente de Bindplane en Windows, puedes usar la consola de Servicios o ingresar el siguiente comando:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Configura Syslog para VMware vCenter

  1. Accede a la IU web de vCenter Server Management.
  2. Ve a Syslog > Forwarding Configuration > Configure.
  3. Selecciona Crear configuración de reenvío y, luego, ingresa la dirección IP del agente de Bindplane.
  4. En el menú desplegable Protocol, selecciona UDP o TCP, según la configuración real del agente de Bindplane.
  5. En la sección Puerto, ingresa el número de puerto del agente de Bindplane.
  6. Haz clic en Guardar.
  7. Haz clic en Enviar mensaje de prueba y verifica que se haya recibido.

Tabla de asignación de UDM

Campo de registro Asignación de UDM Lógica
Access Mask principal.process.access_mask Se convirtió de hexadecimal a decimal.
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 Se analiza como IP.
Client Port principal.port Se convirtió en un número entero.
cmd target.process.command_line
date timestamp Se analiza como aaaa-MM-dd y se combina con la hora como aaaa-MM-dd HH:mm:ss para cuando, se analiza como fecha.
date_time timestamp Se analiza como fecha con los formatos RFC 3339, TIMESTAMP_ISO8601 y SYSLOGTIMESTAMP.
desc metadata.description
eventid metadata.product_event_type Se combinó con la tarea como eventid - task.
host_name principal.hostname, principal.asset.hostname
http_method network.http.method
ip target.ip, target.asset.ip
kv_data1 Se analizan como pares clave-valor.
kv_data2 Se analizan como pares clave-valor.
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 no contiene @, se agrega @local.
kv_msg1.msgid network.email.mail_id
kv_msg1.proto security_result.about.labels
kv_msg1.relay intermediary.hostname, intermediary.ip ¿Se analizó como (HOSTNAME)? [IP] o HOSTNAME. Si relay_domain está presente, se establece en intermediary.hostname. Si relay_ip está presente, se combina con intermediary.ip.
kv_msg1.size network.sent_bytes Se convirtió en un número entero sin signo.
kv_msg1.stat security_result.summary
kv_msg1.verify security_result.description, security_result.action Si kv_msg1.verify es FAIL, security_result.action se establece en 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 es TCP, entonces es TCP.
level security_result.severity Si el nivel es INFO/Informativo/DEBUG/info/Information, entonces es INFORMATIONAL; si el nivel es ERROR/error, entonces es ERROR; si el nivel es WARNING, entonces es 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 es 2/Interactive, entonces INTERACTIVE; si logon_type es 3/8, entonces NETWORK; si logon_type es 4, entonces BATCH; si logon_type es 5, entonces SERVICE; si logon_type es 7, entonces UNLOCK; si logon_type es 9, entonces NEW_CREDENTIALS; si logon_type es 10, entonces REMOTE_INTERACTIVE; si logon_type es 11, entonces CACHED_INTERACTIVE; de lo contrario, MECHANISM_UNSPECIFIED.
mail_from network.email.from Si mail_from no contiene @, se agrega @local.
mail_to network.email.to Si mail_to no contiene @, se agrega @local.
message Se analizó con patrones de Grok.
namespace principal.namespace
port target.port Se convirtió en un número entero.
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 Se convirtió en un número entero.
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 Se analiza como IP.
Source Port principal.port Se convirtió en un número entero.
summary security_result.summary
target_host target.hostname, target.asset.hostname
target_url target.url
target_userid target.user.userid
time timestamp Se analiza como HH:mm:ss y se combina con la fecha como aaaa-MM-dd HH:mm:ss para cuando, se analiza como fecha.
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 Se establece en STATUS_UPDATE si msg contiene API_HEALTH o JobDispatcher, en USER_LOGIN si msg contiene logged in as y target_userid no está vacío, en SCAN_HOST si msg contiene Leave Validate., en NETWORK_UNCATEGORIZED si msg contiene Getting IP Address from host, en RESOURCE_WRITTEN si msg contiene Wrote vpxd health, en NETWORK_HTTP si has_principal y has_target son verdaderos y application_protocol no está vacío, en PROCESS_LAUNCH si process_id y cmd no están vacíos, en USER_UNCATEGORIZED si user_id no está vacío o eventid es 4776, en USER_LOGIN si eventid es 4624/4768/4769, en USER_LOGOUT si eventid es 4634/4647, en USER_RESOURCE_ACCESS si eventid es 5145, en STATUS_UPDATE si host_name no está vacío y en GENERIC_EVENT en cualquier otro caso.
extensions.auth.type Se establece en MACHINE si eventid es 4624/4768/4769.
metadata.log_type Se establece en VMWARE_VCENTER.
metadata.vendor_name Se debe establecer en VMWARE.
metadata.product_name Se establece en VCENTER.
security_result.action Se establece en ALLOW si response_status es 200 o si la acción es Allow.

¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.