Recopila registros de Secure Access Service Edge (SASE) de Versa Networks

Compatible con:

En este documento, se explica cómo transferir registros de Secure Access Service Edge (SASE) de Versa Networks a Google Security Operations con el agente de Bindplane.

SASE de Versa Networks es una plataforma unificada de seguridad y redes que genera mensajes de syslog para eventos de firewall, registros de amenazas, clasificación de aplicaciones, filtrado de URL, detecciones de IDS/IPS y eventos de alarma. El analizador extrae pares clave-valor de los mensajes de syslog y los asigna al modelo de datos unificado (UDM).

Antes de comenzar

Asegúrate de cumplir con los siguientes requisitos previos:

  • Una instancia de Google SecOps
  • Windows Server 2016 o posterior, o host de Linux con systemd
  • Conectividad de red entre el agente de Bindplane y el nodo de Versa Analytics
  • Si se ejecuta detrás de un proxy, asegúrate de que los puertos del firewall estén abiertos según los requisitos del agente de Bindplane
  • Acceso con privilegios a Versa SASE

Obtén credenciales de Google SecOps para el agente de Bindplane

Para autenticar el agente de Bindplane en Google SecOps, elige uno de los siguientes métodos:

  • Implementaciones nuevas: Usa la API de Chronicle (opción 1).
  • Implementaciones heredadas: Sigue usando el archivo de autenticación de transferencia (opción 2) hasta que se descontinúe la API de Ingestion el 20 de julio de 2027.
  1. Accede a la consola deGoogle Cloud y selecciona el proyecto de Google Cloud que está vinculado a tu instancia de Google SecOps.
  2. Ve a IAM y administración > Cuentas de servicio.
  3. Haga clic en Crear cuenta de servicio.
  4. Proporciona los siguientes detalles de configuración:
    • Nombre de la cuenta de servicio: Ingresa un nombre para la cuenta (por ejemplo, bindplane-ingest).
    • Descripción de la cuenta de servicio: Ingresa una descripción (por ejemplo, Bindplane agent log ingestion).
  5. Haz clic en Crear y continuar.
  6. En la sección Otorga a esta cuenta de servicio acceso al proyecto, haz clic en Seleccionar un rol y elige Editor de Chronicle.
  7. Haz clic en Continuar y, luego, en Listo.
  8. Haz clic en la cuenta de servicio que creaste y, luego, ve a la pestaña Claves.
  9. Haz clic en Agregar clave > Crear clave nueva.
  10. Selecciona JSON y haz clic en Crear. El archivo de claves se descargará en tu computadora.
  11. Guarda el archivo de claves como ingestion-auth.json en el directorio del recopilador de Bindplane (/opt/observiq-otel-collector/ingestion-auth.json en Linux o C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json en Windows) o actualiza creds_file_path en config.yaml para que coincida con la ruta de acceso en la que lo guardas.
  12. Ve a IAM y administración > Configuración y copia el Número de proyecto. Lo necesitarás para la configuración del exportador.

Opción 2: Descarga el archivo de autenticación de transferencia (heredado)

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

Obtén el ID de cliente de Google SecOps

  1. Accede a 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.

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 comando siguiente:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    
  3. Espera a que se complete la instalación.

  4. Ejecuta el siguiente comando para verificar la instalación:

    sc query observiq-otel-collector
    

    El servicio debería mostrarse como RUNNING.

Instalación en Linux

  1. Abre una terminal con privilegios de raíz o sudo.
  2. Ejecuta el comando siguiente:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    
  3. Espera a que se complete la instalación.

  4. Ejecuta el siguiente comando para verificar la instalación:

    sudo systemctl status observiq-otel-collector
    

    El servicio debería mostrarse como active (running).

Recursos de instalación adicionales

Para obtener más opciones de instalación y solucionar problemas, consulta la guía de instalación del agente de Bindplane.

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

Ubica el archivo de configuración

  • Linux:

    sudo nano /opt/observiq-otel-collector/config.yaml
    
  • Windows:

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

Edita el archivo de configuración

  • Reemplaza todo el contenido de config.yaml por la siguiente configuración:

    receivers:
      tcplog:
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/versa_firewall:
        protocol: https
        # Region of your instance, for example us, europe, asia-southeast1
        location: <LOCATION>
        # Project number of the Google Cloud project linked to the instance
        project: '<PROJECT_NUMBER>'
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: '<customer_id>'
        endpoint: chronicle.googleapis.com
        log_type: VERSA_FIREWALL
        raw_log_field: body
    
    service:
      pipelines:
        logs/versa_firewall_to_chronicle:
          receivers:
            - tcplog
          exporters:
            - chronicle/versa_firewall
    

Parámetros de configuración

Reemplaza los marcadores de posición que se indican más abajo:

  • Configuración del receptor:

    • listen_address: Dirección IP y puerto para escuchar:
      • 0.0.0.0 para escuchar en todas las interfaces (recomendado)
      • El puerto 514 es el puerto estándar de syslog (requiere acceso raíz en Linux; usa 1514 para acceso no raíz).
      • Versa usa transporte TCP, por lo que se requiere un receptor tcplog.
  • Configuración del exportador:

    • creds_file_path: Ruta de acceso completa al archivo de clave JSON de la cuenta de servicio (opción 1):
      • Linux: /opt/observiq-otel-collector/ingestion-auth.json
      • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • customer_id: Es el ID de cliente copiado de la consola de Google SecOps.
    • location: Reemplaza <LOCATION> por la región de tu instancia de Google SecOps (por ejemplo, us, europe o asia-southeast1). El exportador antepone chronicle.googleapis.com con este valor. Consulta Extremos regionales para obtener la lista completa.
    • project: Reemplaza <PROJECT_NUMBER> por el número de proyecto de IAM y administración > Configuración.
    • endpoint: Mantén la configuración como chronicle.googleapis.com.

Exportador de la API de transferencia heredada

  • Si usas el archivo de autenticación de transferencia de la opción 2, reemplaza el bloque exporters por lo siguiente. Establece creds_file_path en la ruta de acceso al archivo de autenticación de transferencia y, si tu instancia está fuera de EE.UU., reemplaza malachiteingestion-pa.googleapis.com por tu extremo regional (por ejemplo, europe-malachiteingestion-pa.googleapis.com).

    exporters:
      chronicle/versa_firewall:
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: '<customer_id>'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: VERSA_FIREWALL
        raw_log_field: body
    

Cómo guardar el archivo de configuración

  • Después de editarlo, guarda el archivo:
    • Linux: Presiona Ctrl+O, luego Enter y, por último, Ctrl+X
    • Windows: Haz clic en Archivo > Guardar.

Reinicia el agente de Bindplane para aplicar los cambios.

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

    sudo systemctl restart observiq-otel-collector
    
    1. Verifica que el servicio esté en ejecución:

      sudo systemctl status observiq-otel-collector
      
    2. Revisa los registros en busca de errores:

      sudo journalctl -u observiq-otel-collector -f
      
  • Para reiniciar el agente de Bindplane en Windows, elige una de las siguientes opciones:

    • Símbolo del sistema o PowerShell como administrador:

      net stop observiq-otel-collector && net start observiq-otel-collector
      
    • Consola de servicios:

      1. Presiona Win+R, escribe services.msc y presiona Intro.
      2. Busca observIQ OpenTelemetry Collector.
      3. Haz clic con el botón derecho y selecciona Reiniciar.
      4. Verifica que el servicio esté en ejecución:

        sc query observiq-otel-collector
        
      5. Revisa los registros en busca de errores:

        type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
        

Configura SASE de Versa Networks

Los administradores deben configurar recopiladores remotos en cada nodo de Versa Analytics para reenviar los registros a sistemas de terceros.

Habilita el reenvío de registros

  1. Accede al servidor de análisis de Versa.
  2. Ejecuta el comando cli para ir a la CLI.
  3. Cambia al modo de configuración ejecutando el comando configure y, luego, ingresa load merge terminal.
  4. Copia y pega los siguientes comandos para configurar el reenvío de registros (reemplaza <collector_ip> y <collector_port> por la dirección IP y el puerto de tu recopilador de syslog):

    set system analytics log-collector-exporter destination-address <collector_ip>
    set system analytics log-collector-exporter destination-port <collector_port>
    set system analytics log-collector-exporter transport tcp
    set system analytics log-collector-exporter log-types firewall-log
    set system analytics log-collector-exporter log-types threat-log
    commit
    
  5. Guarda la configuración:

    save
    

Habilita el registro de ID de sesión

Para registrar información relacionada con la IP, habilita el registro del ID de sesión:

  1. Accede a Versa Director.
  2. Cambia a la vista de director.
  3. Ve a Configuration > Devices > Tenant > Device para acceder a Appliance View.
  4. Selecciona Configuration > Others > System > Configuration > Configuration.
  5. En el panel Parámetros, haz clic en Editar.
  6. En la ventana Editar parámetros, selecciona LEF.
  7. En la sección Firewall, selecciona la casilla de verificación Incluir registro de ID de sesión.
  8. Haz clic en Aceptar.

Tabla de asignación de UDM

Campo de registro Asignación de UDM Lógica
accCkt additional.fields[].key: "accCkt"
additional.fields[].value.string_value: accCkt
Es el valor que se toma directamente del campo accCkt.
accCktId additional.fields[].key: "accCktId"
additional.fields[].value.string_value: accCktId
Es el valor tomado directamente del campo accCktId.
accCktName additional.fields[].key: "accCktName"
additional.fields[].value.string_value: accCktName
Es el valor que se toma directamente del campo accCktName.
accessType additional.fields[].key: "accessType"
additional.fields[].value.string_value: accessType
Es el valor que se toma directamente del campo accessType.
action security_result.action: action Si action, type, idpAction, avAction o urlAction son "allow", entonces ALLOW. Si action, type, idpAction, avAction o urlAction son "rechazar", "descartar", "bloquear" o "denegar", entonces BLOCK. Si idpAction es cualquier otro valor, se devuelve UNKNOWN_ACTION.
alarmCause security_result.detection_fields[].key: "alarmCause"
security_result.detection_fields[].value: alarmCause
Es el valor tomado directamente del campo alarmCause.
alarmClass security_result.detection_fields[].key: "alarmClass"
security_result.detection_fields[].value: alarmClass
Es el valor tomado directamente del campo alarmClass.
alarmClearable security_result.detection_fields[].key: "alarmClearable"
security_result.detection_fields[].value: alarmClearable
Es el valor que se toma directamente del campo alarmClearable.
alarmEventType metadata.product_event_type: alarmEventType Es el valor tomado directamente del campo alarmEventType.
alarmKey security_result.detection_fields[].key: "alarmKey"
security_result.detection_fields[].value: alarmKey
Es el valor que se toma directamente del campo alarmKey.
alarmKind security_result.detection_fields[].key: "alarmKind"
security_result.detection_fields[].value: alarmKind
Es el valor tomado directamente del campo alarmKind.
alarmOwner security_result.detection_fields[].key: "alarmOwner"
security_result.detection_fields[].value: alarmOwner
Es el valor tomado directamente del campo alarmOwner.
alarmSeqNo security_result.detection_fields[].key: "alarmSeqNo"
security_result.detection_fields[].value: alarmSeqNo
Es el valor que se toma directamente del campo alarmSeqNo.
alarmSeverity security_result.severity_details: alarmSeverity Es el valor tomado directamente del campo alarmSeverity.
alarmText security_result.summary: alarmText Valor tomado directamente del campo alarmText, con las comillas dobles quitadas.
alarmType security_result.description: alarmType Es el valor tomado directamente del campo alarmType.
appFamily metadata.product_event_type: appFamily
security_result.detection_fields[].key: "appFamily"
security_result.detection_fields[].value: appFamily
Es el valor tomado directamente del campo appFamily.
appId security_result.detection_fields[].key: "ID de aplicación"
security_result.detection_fields[].value: appId
Es el valor tomado directamente del campo appId.
appIdStr security_result.detection_fields[].key: "appIdStr"
security_result.detection_fields[].value: appIdStr
Es el valor tomado directamente del campo appIdStr.
applianceName principal.hostname: applianceName Es el valor que se toma directamente del campo applianceName, siteName o site.
appProductivity security_result.detection_fields[].key: "appProductivity"
security_result.detection_fields[].value: appProductivity
Es el valor que se toma directamente del campo appProductivity.
appRisk security_result.severity_details: appRisk Es el valor que se toma directamente del campo appRisk.
appSubFamily security_result.detection_fields[].key: "appSubFamily"
security_result.detection_fields[].value: appSubFamily
Es el valor tomado directamente del campo appSubFamily.
avAccuracy additional.fields[].key: "avAccuracy"
additional.fields[].value.string_value: avAccuracy
Es el valor que se toma directamente del campo avAccuracy.
avAction security_result.action: avAction Consulta action para conocer la lógica.
avMalwareName security_result.threat_name: avMalwareName Es el valor que se toma directamente del campo avMalwareName.
avMalwareType security_result.category_details: avMalwareType Es el valor que se toma directamente del campo avMalwareType.
classMsg security_result.description: classMsg Es el valor tomado directamente del campo classMsg, sin las comillas dobles.
clientIPv4Address target.ip: clientIPv4Address Es el valor tomado directamente del campo clientIPv4Address.
destIp target.ip: destIp
destinationIPv4Address: destIp
Es el valor tomado directamente del campo destIp.
destinationIPv4Address target.ip: destinationIPv4Address Es el valor tomado directamente del campo destinationIPv4Address o derivado del campo networkPrefix.
destinationIPv6Address target.ip: destinationIPv6Address Es el valor tomado directamente del campo destinationIPv6Address.
destinationPort target.port: destinationPort Valor tomado directamente del campo destinationPort y convertido en número entero.
destinationTransportPort target.port: destinationTransportPort Valor tomado directamente del campo destinationTransportPort y convertido en número entero.
deviceKey about.resource.attribute.labels[].key: "deviceKey"
about.resource.attribute.labels[].value: deviceKey
Es el valor que se toma directamente del campo deviceKey si no es "Unknown".
deviceName about.resource.attribute.labels[].key: "deviceName"
about.resource.attribute.labels[].value: deviceName
Es el valor que se toma directamente del campo deviceName si no es "Unknown".
duration network.session_duration.seconds: duration Es el valor tomado directamente del campo duration y convertido en un número entero.
egressInterfaceName additional.fields[].key: "egressInterfaceName"
additional.fields[].value.string_value: egressInterfaceName
Es el valor que se toma directamente del campo egressInterfaceName.
event.type metadata.event_type: event.type Si están presentes applianceName (o sourceIPv4Address o user o sourceIPv6Address) y destinationIPv4Address (o remoteSite o destinationIPv6Address o clientIPv4Address o hostname), entonces NETWORK_CONNECTION. De lo contrario, STATUS_UPDATE. Si applianceName está vacío, entonces GENERIC_EVENT.
eventType principal.resource.attribute.labels[].key: "eventType"
principal.resource.attribute.labels[].value: eventType
Es el valor que se toma directamente del campo eventType.
family security_result.detection_fields[].key: "family"
security_result.detection_fields[].value: family
Es el valor tomado directamente del campo family.
fc security_result.detection_fields[].key: "ForwardingClass"
security_result.detection_fields[].value: fc
Es el valor tomado directamente del campo fc.
fileTransDir additional.fields[].key: "fileTransDir"
additional.fields[].value.string_value: fileTransDir
Es el valor que se toma directamente del campo fileTransDir.
filename target.file.names: filename Es el valor tomado directamente del campo filename.
flowCookie metadata.collected_timestamp: flowCookie Es el valor que se toma directamente del campo flowCookie y se convierte en marca de tiempo con el formato UNIX.
flowId principal.resource.product_object_id: flowId Es el valor tomado directamente del campo flowId.
forwardForwardingClass security_result.detection_fields[].key: "forwardForwardingClass"
security_result.detection_fields[].value: forwardForwardingClass
Es el valor que se toma directamente del campo forwardForwardingClass.
fromCountry principal.location.country_or_region: fromCountry
target.location.country_or_region: fromCountry
Es el valor tomado directamente del campo fromCountry.
fromUser principal.user.userid: fromUser Es el valor que se toma directamente del campo fromUser si no está vacío, es "unknown" o "Unknown".
fromZone additional.fields[].key: "fromZone"
additional.fields[].value.string_value: fromZone
Es el valor tomado directamente del campo fromZone.
generateTime metadata.collected_timestamp: generateTime Es el valor que se toma directamente del campo generateTime y se convierte en marca de tiempo con el formato UNIX.
hostname target.hostname: hostname Es el valor que se toma directamente del campo hostname.
httpUrl target.url: httpUrl Es el valor tomado directamente del campo httpUrl.
icmpTypeIPv4 additional.fields[].key: "icmpTypeIPv4"
additional.fields[].value.string_value: icmpTypeIPv4
Es el valor tomado directamente del campo icmpTypeIPv4.
idpAction security_result.action: idpAction Consulta action para conocer la lógica.
ingressInterfaceName additional.fields[].key: "ingressInterfaceName"
additional.fields[].value.string_value: ingressInterfaceName
Es el valor tomado directamente del campo ingressInterfaceName.
ipsApplication additional.fields[].key: "ipsApplication"
additional.fields[].value.string_value: ipsApplication
Es el valor que se toma directamente del campo ipsApplication.
ipsDirection security_result.detection_fields[].key: "ipsDirection"
security_result.detection_fields[].value: ipsDirection
Es el valor que se toma directamente del campo ipsDirection.
ipsProfile security_result.detection_fields[].key: "ipsProfile"
security_result.detection_fields[].value: ipsProfile
Es el valor que se toma directamente del campo ipsProfile.
ipsProfileRule security_result.rule_name: ipsProfileRule Es el valor que se toma directamente del campo ipsProfileRule.
ipsProtocol network.ip_protocol: ipsProtocol Es el valor tomado directamente del campo ipsProtocol.
log_type metadata.description: log_type
metadata.log_type: log_type
Es el valor que se toma directamente del campo log_type.
mstatsTimeBlock metadata.collected_timestamp: mstatsTimeBlock Es el valor que se toma directamente del campo mstatsTimeBlock y se convierte en marca de tiempo con el formato UNIX.
mstatsTotRecvdOctets network.received_bytes: mstatsTotRecvdOctets Es el valor tomado directamente del campo mstatsTotRecvdOctets y convertido en un número entero sin signo.
mstatsTotSentOctets network.sent_bytes: mstatsTotSentOctets Es el valor tomado directamente del campo mstatsTotSentOctets y convertido en un número entero sin signo.
mstatsTotSessCount additional.fields[].key: "mstatsTotSessCount"
additional.fields[].value.string_value: mstatsTotSessCount
Es el valor tomado directamente del campo mstatsTotSessCount.
mstatsTotSessDuration network.session_duration.seconds: mstatsTotSessDuration Es el valor tomado directamente del campo mstatsTotSessDuration y convertido en un número entero.
mstatsType security_result.category_details: mstatsType Es el valor que se toma directamente del campo mstatsType.
networkPrefix target.ip: networkPrefix
target.port: networkPrefix
Es la dirección IP extraída del campo networkPrefix. Es el puerto extraído del campo networkPrefix y convertido en un número entero.
protocolIdentifier network.ip_protocol: protocolIdentifier Es el valor que se toma directamente del campo protocolIdentifier, se convierte en un número entero y se asigna al nombre del protocolo IP con una búsqueda.
recvdOctets network.received_bytes: recvdOctets Valor tomado directamente del campo recvdOctets y convertido en un número entero sin signo.
recvdPackets network.received_packets: recvdPackets Es el valor tomado directamente del campo recvdPackets y convertido en un número entero.
remoteSite target.hostname: remoteSite Es el valor tomado directamente del campo remoteSite.
reverseForwardingClass security_result.detection_fields[].key: "reverseForwardingClass"
security_result.detection_fields[].value: reverseForwardingClass
Es el valor que se toma directamente del campo reverseForwardingClass.
risk security_result.risk_score: risk Es el valor tomado directamente del campo risk y convertido en número de punto flotante.
rule security_result.rule_name: rule Es el valor que se toma directamente del campo rule.
sentOctets network.sent_bytes: sentOctets Es el valor tomado directamente del campo sentOctets y convertido en un número entero sin signo.
sentPackets network.sent_packets: sentPackets Valor tomado directamente del campo sentPackets y convertido en número entero.
serialNum security_result.detection_fields[].key: "serialNum"
security_result.detection_fields[].value: serialNum
Es el valor tomado directamente del campo serialNum.
signatureId security_result.detection_fields[].key: "signatureID"
security_result.detection_fields[].value: signatureId
Es el valor tomado directamente del campo signatureId.
signatureMsg security_result.detection_fields[].key: "signatureMsg"
security_result.detection_fields[].value: signatureMsg
Es el valor tomado directamente del campo signatureMsg.
signaturePriority security_result.severity: signaturePriority Si signaturePriority es "low" (no distingue mayúsculas de minúsculas), entonces LOW. Si signaturePriority es “medium” (no distingue mayúsculas de minúsculas), entonces MEDIUM. Si signaturePriority es "alto" (no distingue mayúsculas de minúsculas), entonces HIGH.
site principal.hostname: site
applianceName: site
Es el valor tomado directamente del campo site.
siteId additional.fields[].key: "siteId"
additional.fields[].value.string_value: siteId
Es el valor tomado directamente del campo siteId.
siteName principal.hostname: siteName
applianceName: siteName
Es el valor que se toma directamente del campo siteName.
sourceIPv4Address principal.ip: sourceIPv4Address Es el valor tomado directamente del campo sourceIPv4Address.
sourceIPv6Address principal.ip: sourceIPv6Address Es el valor que se toma directamente del campo sourceIPv6Address.
sourcePort principal.port: sourcePort Es el valor tomado directamente del campo sourcePort y convertido en un número entero.
sourceTransportPort principal.port: sourceTransportPort Valor tomado directamente del campo sourceTransportPort y convertido en número entero.
subFamily security_result.detection_fields[].key: "subFamily"
security_result.detection_fields[].value: subFamily
Es el valor que se toma directamente del campo subFamily.
tcpConnAborted additional.fields[].key: "tcpConnAborted"
additional.fields[].value.string_value: tcpConnAborted
Es el valor que se toma directamente del campo tcpConnAborted si no está vacío o no es "0".
tcpConnRefused additional.fields[].key: "tcpConnRefused"
additional.fields[].value.string_value: tcpConnRefused
Valor tomado directamente del campo tcpConnRefused si no está vacío o es "0".
tcpPktsFwd network.sent_packets: tcpPktsFwd Es el valor tomado directamente del campo tcpPktsFwd y convertido en un número entero.
tcpPktsRev network.received_packets: tcpPktsRev Es el valor tomado directamente del campo tcpPktsRev y convertido en un número entero.
tcpReXmitFwd additional.fields[].key: "tcpReXmitFwd"
additional.fields[].value.string_value: tcpReXmitFwd
Es el valor que se toma directamente del campo tcpReXmitFwd si no está vacío o no es "0".
tcpReXmitRev additional.fields[].key: "tcpReXmitRev"
additional.fields[].value.string_value: tcpReXmitRev
Es el valor que se toma directamente del campo tcpReXmitRev si no está vacío o no es "0".
tcpSAA additional.fields[].key: "tcpSAA"
additional.fields[].value.string_value: tcpSAA
Valor tomado directamente del campo tcpSAA si no está vacío o es "0".
tcpSSA additional.fields[].key: "tcpSSA"
additional.fields[].value.string_value: tcpSSA
Es el valor que se toma directamente del campo tcpSSA si no está vacío o no es "0".
tcpSessCnt additional.fields[].key: "tcpSessCnt"
additional.fields[].value.string_value: tcpSessCnt
Es el valor tomado directamente del campo tcpSessCnt.
tcpSessDur network.session_duration.seconds: tcpSessDur Valor tomado directamente del campo tcpSessDur y convertido en número entero.
tcpSynAckReXmit additional.fields[].key: "tcpSynAckReXmit"
additional.fields[].value.string_value: tcpSynAckReXmit
Valor tomado directamente del campo tcpSynAckReXmit si no está vacío o es "0".
tcpSynReXmit additional.fields[].key: "tcpSynReXmit"
additional.fields[].value.string_value: tcpSynReXmit
Es el valor que se toma directamente del campo tcpSynReXmit si no está vacío o no es "0".
tcpTWHS additional.fields[].key: "tcpTWHS"
additional.fields[].value.string_value: tcpTWHS
Es el valor que se toma directamente del campo tcpTWHS si no está vacío o no es "0".
tenantId principal.resource.attribute.labels[].key: "tenantId"
principal.resource.attribute.labels[].value: tenantId
Es el valor tomado directamente del campo tenantId.
tenantName observer.hostname: tenantName Es el valor tomado directamente del campo tenantName.
threatType security_result.detection_fields[].key: "threatType"
security_result.detection_fields[].value: threatType
Es el valor tomado directamente del campo threatType.
toCountry target.location.country_or_region: toCountry Es el valor tomado directamente del campo toCountry.
toZone additional.fields[].key: "toZone"
additional.fields[].value.string_value: toZone
Es el valor que se toma directamente del campo toZone.
traffType additional.fields[].key: "traffType"
additional.fields[].value.string_value: traffType
Es el valor que se toma directamente del campo traffType.
ts metadata.event_timestamp: ts Valor tomado directamente del campo ts y convertido en marca de tiempo.
type security_result.action: type Consulta action para conocer la lógica.
urlAction security_result.action: urlAction Consulta action para ver la lógica.
urlActionMessage security_result.summary: urlActionMessage Es el valor tomado directamente del campo urlActionMessage.
urlCategory principal.resource.attribute.labels[].key: "urlCategory"
principal.resource.attribute.labels[].value: urlCategory
Es el valor tomado directamente del campo urlCategory.
urlProfile additional.fields[].key: "urlProfile"
additional.fields[].value.string_value: urlProfile
Es el valor tomado directamente del campo urlProfile.
urlReputation security_result.severity_details: urlReputation Es el valor tomado directamente del campo urlReputation.
user principal.ip: user Es el valor tomado directamente del campo user.
vsnId principal.resource.attribute.labels[].key: "vsnId"
principal.resource.attribute.labels[].value: vsnId
Es el valor que se toma directamente del campo vsnId. Es un valor codificado. Es un valor codificado.
applianceName event.idm.read_only_udm.intermediary.hostname Asignado desde el registro de cambios
postNATSourceIPv4Address event.idm.read_only_udm.principal.nat_ip Se asignó desde el registro de cambios
postNATDestinationIPv4Address event.idm.read_only_udm.target.nat_ip Se asignó desde el registro de cambios
postNAPTsourceTransportPort event.idm.read_only_udm.principal.nat_port Se asignó desde el registro de cambios
postNAPTdestinationTransportPort event.idm.read_only_udm.target.nat_port Se asignó desde el registro de cambios
natRuleName event.idm.read_only_udm.security_result.rule_name Se asignó desde el registro de cambios
natEvent event.idm.read_only_udm.metadata.product_event_type Se asignó desde el registro de cambios
log_type event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
flowCookie event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
flowId event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
sourceNatPoolName event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
destNatPoolName event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
deviceKey event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
deviceName event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
observationTimeMilliseconds event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
threatSeverity event.idm.read_only_udm.security_result.detection_fields Se asignó desde el registro de cambios
dnsfBadCname event.idm.read_only_udm.security_result.detection_fields Se asignó desde el registro de cambios
dnsfEvType event.idm.read_only_udm.security_result.detection_fields Se asignó desde el registro de cambios
dnsfDomain event.idm.read_only_udm.security_result.detection_fields Se asignó desde el registro de cambios
dnsfMsgType event.idm.read_only_udm.security_result.detection_fields Se asignó desde el registro de cambios
dnsfProfileName event.idm.read_only_udm.security_result.detection_fields Se asignó desde el registro de cambios
dnsfIpReputation event.idm.read_only_udm.security_result.category_details Se asignó desde el registro de cambios
dnsfAction event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
HitCount event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
groupId event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
signatureRev event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
packetTime event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
moduleId event.idm.read_only_udm.additional.fields Asignado desde el registro de cambios
dnsfBadResolvedV4Addr event.idm.read_only_udm.target.ip y event.idm.read_only_udm.target.asset.ip Asignado desde el registro de cambios
dnsfIpGeoLocation event.idm.read_only_udm.target.location.country_or_region Se asignó desde el registro de cambios
sourceIPv4Address event.idm.read_only_udm.metadata.description Se asignó desde el registro de cambios
destinationIPv4Address event.idm.read_only_udm.metadata.description Se asignó desde el registro de cambios
host event.idm.read_only_udm.target.hostname Se asignó desde el registro de cambios
eipProfileName event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
traffScope event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
srcSGT event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
destSGT event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
ucsBand event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
ucsReason event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
urlLookupSrc event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
protocolInfo event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
ecsBand event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
ecsReason event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
appAuth event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
ucsScore event.idm.read_only_udm.security_result.detection_fields Se asignó desde el registro de cambios
policyActionName event.idm.read_only_udm.security_result.detection_fields Se asignó desde el registro de cambios
policyActionModule event.idm.read_only_udm.security_result.detection_fields Se asignó desde el registro de cambios
ecsScore event.idm.read_only_udm.security_result.detection_fields Se asignó desde el registro de cambios
applianceId event.idm.read_only_udm.intermediary.asset.product_object_id Se asignó desde el registro de cambios
inter_hostname event.idm.ready_only_udm.intermediary.hostname Se asignó desde el registro de cambios

Registro de cambios

Consulta el registro de cambios de este analizador

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